Microcontrollers are widely used in embedded devices and make the devices reliable and cheap for our requirements. They contain CPU, RAM, ROM and some form of Input/Output ports. Microcontrollers are generally a computer on a single integrated circuit which is better suited for sensing inputs and more better than a microprocessor.
Arduino Uno consists of both physical programmable circuit board ie., a microcontroller and a piece of software. There are various versions of Arduino boards such as Arduino Uno, Arduino Due, Arduino Leonardo, Arduino Mega, but mostly Arduino Uno is widely used in the market.
If you are planning to develop a project based on IoT, Arduino Uno is the best option and a very economical one. The pre-requisite to use Arduino in a project is to have simple and basic programming skills in C and C++. The software used in Arduino Uno is the IDE (Integrated Development Environment).
Microcontrollers VS Arduino
Many people get confused between a microcontroller and an Arduino. Well, a microcontroller is a 40 pin chip that has a built-in microprocessor. Arduino is a package of a microcontroller, crystal, on-board power supply, bootloader which can be programmed in a simpler way in IDE.
Generally speaking, every Arduino is a microcontroller but not every microcontroller is an Arduino.
Technical Specifications
- Arduino Uno was developed by Arduino.cc which is open-source and is based on Microchip ATmega328P microcontroller.
- Operating Voltage: 5 Volts
- Input Voltage: 7 to 20 Volts
- Digital I/O Pins: 14 (of which 6 provide PWM output)
- Analog Input Pins: 6
- DC Current per I/O Pin: 20 mA
- DC Current for 3.3V Pin: 50 mA
- Flash Memory: 32 KB of which 0.5 KB used by bootloader
- SRAM: 2 KB
- EEPROM: 1 KB
- Clock Speed: 16 MHz
- Length: 68.6 mm
- Width: 53.4 mm
- Weight: 25 g
Connectivity
The Arduino can be connected to the PC through a USB cable which is used to run the controller. IDE is compatible with Windows, MAC or Linux systems. Preferrable Windows is used. To power the board, a battery or an AC to DC adapter can be used. It can also be connected to other Arduino/ Genuino development boards or a microprocessor like Raspberry Pi for complex projects.
General pin functions
- LED: There is a built-in LED driven by digital pin 13. When the pin is high value, the LED is on, when the pin is low, it’s off.
- VIN: The input voltage to the Arduino/Genuino board when it’s using an external power source (as opposed to 5 volts from the USB connection or another regulated power source). You can supply voltage through this pin, or, if supplying voltage via the power jack, access it through this pin.
- 5V: This pin outputs a regulated 5V from the regulator on the board. The board can be supplied with power either from the DC power jack (7 – 20V), the USB connector (5V), or the VIN pin of the board (7-20V). Supplying voltage via the 5V or 3.3V pins bypasses the regulator, and can damage the board.
- 3V3: A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50 mA.
- GND: Ground pins.
- IOREF: This pin on the Arduino/Genuino board provides the voltage reference with which the microcontroller operates. A properly configured shield can read the IOREF pin voltage and select the appropriate power source or enable voltage translators on the outputs to work with the 5V or 3.3V.
- Reset: Typically used to add a reset button to shields which block the one on the board
- 14 digital pins and 6 analog pins on the Uno can be used as an input or output, which operate at 5 V.
- The Uno has 6 analog inputs, labeled A0 through A5, each of which provides 10 bits of resolution (i.e. 1024 different values).
- Serial / UART: pins 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data. These pins are connected to the corresponding pins of the ATmega8U2 USB-to-TTL serial chip.
- External interrupts: pins 2 and 3. These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value.
- PWM (pulse-width modulation): 3, 5, 6, 9, 10, and 11. Can provide 8-bit PWM output with the analogWrite() function.
- SPI (Serial Peripheral Interface): 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI communication using the SPI library.
- TWI (two-wire interface) / I²C: A4 or SDA pin and A5 or SCL pin. Support TWI communication using the Wire library.
- AREF (analog reference): Reference voltage for the analog inputs.[7]