The Arduino programming environment is bootstrapped with many preprocessor definition contant values, specifically created to make the programming experience more accessible to non-programmers. Some specific examples include:
- Analog Pins:
A0
: 14A1
: 15
- Modes:
INPUT
: 0OUTPUT
: 1
- Values:
HIGH
: 1LOW
: 0
Please post thoughts in the comments. I'd like to flesh out the lists below before making a decision.
- Easily memorized by users
- Increased accessibility for those familiar with Arduino IDE programming
- Potentially reduce user code errors (?)
- Global scope pollution
Given that J5 can support multiple different boards concurrently (I think), it's probably not a good idea for constants like A0 through An to be global. Different boards will have a different number of analog inputs. Exposing them on the board as suggested by @phated is a better way to go.
Lots of the constants in the header files linked to above are very specific to a particular microcontroller. Most of the constants are probably not needed and if they are, exposing them on the board is also the better way to go.