The Arduino programming language is a subset of C/C++. The compiler used to transform code into object files is avr-g++. A program called avrdude is used to upload the program into the microcontroller. You cannot used all of the main c++ features with Arduino. The Arduino.h library contains all of the Arduino specific functions and subroutines.
Arduino programming is 'pure' C/C++ with added arduino function libraries and a little preprocessing performed before passing on the source to the AVR Gcc compiler. This adds an abstraction layer that simplifies various hardware concepts.
Some differences in the Arduino language versus C++:
Adafruit - Arduino hole dimensions dwg
2.1 mm power jack accepts 7 to 12 VDC (6 is lowest, 20 V is max).
Vin connection goes to the input side of the 2.1 mm power jack regulator, and the USB input regulator. You may also take power off of this connection when power is supplied to the 2.1 mm power jack or the USB Type B connector.
Regulated voltage may be supplied to the 5V or 3.3V pins, provided no input power is provided to the 2.1 mm power jack or the USB Type B connector. Not a recommended power input method.
You may draw up to 400 mA from the 5V pin if power is supplied to the USB Type B power input. More may be drawn from the 2.1 mm power jack (if supplied).
You may draw up to 50 mA from the 3.3V pin if power is supplied to the USB Type B power input, or the 2.1 mm power jack.
The minimum voltage for a pin to be "HIGH" is 0.6 * Vcc = 3.0 V (provided Vcc is 2.4 to 5.5 V). The maximum input voltage is 5.5 V. Anything at 1.5V and below is considered "LOW".
See the section 'Arduino Logic Levels' in the excellent logic level tutorial and reference by Sparkfun
VIN
I2C on D21 / SCL & D20 / SDA.
SPI
4X hardware UARTs:
54 digital pins, 16 analog input pins, 15 PWM pins, max 20 mA per pin
Do you need help developing or customizing a IoT product for your needs? Send me an email requesting a free one hour phone / web share consultation.
The information presented on this website is for the author's use only. Use of this information by anyone other than the author is offered as guidelines and non-professional advice only. No liability is assumed by the author or this web site.