Arduino
What are the alternatives for Raspberry PI?
If you are planning a project that does not require high-level
programming and Linux-class operating systems in our boxed project, we
can opt out of Raspberry Pi which is quite delicate hardware and poorly
works e.g. in extreme temperatures or high dustiness.
We can successfully use low-level programming on 8-bit AVR controllers
in many projects in the field of automation, robotics or interligent
buildings.
Such controllers do not have an operating system, multi-threading and operate on the principle of single real-time loop.
However, in many projects, lack of these functions – completely does not matter.
Nevertheless, the design and independent construction of systems based on such microcontrollers is quite difficult
especially for beginner electronics. Highly different voltage standards
require the use of many voltage regulating systems, resistors,
condensers, voltage dividers, zener diodes, etc.
The solution to these problems is the Arduino Platform which is great startup platform – a ready-to-use kit containing a microcontroller, power supply and output (ports)
The first project using this platform can be started after a few minutes of fun with programming.
The great advantage of Arduino is the huge popularity of this platform and the support of the community.
Many companies produce equipment sets that can be expanded. There are
also a lot of software libraries created by programmers – enthusiasts of
electronics and robotics.
What is Arduino?
Arduino is a platform for embedded electronic systems, based mainly on 8-bit microcontrollers from the AVR family. The exception is Arduino Due using a 32-bit ARM Cortex core. In other words, it is a printed circuit board with a microcontroller and its terminals capable of operating external devices such as sensors, motor controllers, displays, etc. Thanks to the goldpin terminals, the modules can be connected using publicly available connecting cables.
Most versions of Arduino do not require any external programmer. Just connect to your computer with a miniUSB-USB cable.
One of the advantages of the platform is its own, free environment with countless libraries, examples, tutorials to support various types of external devices.
Who should use Arduino?
Arduino is designed for both beginners and advanced electronics programmers.
The person starting the adventure with this type of systems will save a lot of time and nerves when configuring programmers, checking connections, installing drivers. It is widely known that it is best to learn from examples. There are plenty of them for Arduino on the project website and on the entire Internet.
More advanced users will like the numerous libraries, both the default ones (among others: EEPROM, Ethernet, Display, Servo, SPI, TWI, WiFi), as well as files shared by manufacturers of electronic modules.
What are the Arduino versions and how they differs to each other?
Arduino Uno
The simplest version of the module. On the plate you will find:
Atmega328 microcontroller (Flash 32kB, SRAM 2kB, 16MHz clock speed)
14 digital inputs / outputs – to which you can connect e.g. LEDs, buttons, displays, etc.
6 PWM outputs – used for e.g. regulation of the rotational speed of motors, setting servo position
6 analog inputs – to support all types of sensors, transducers with analog output
Communication interfaces:
UART – one of the easiest ways to exchange data with a PC
I2C / TWI – support for sensors, time systems
SPI – communication with fast transducers or external memories
Power supply: USB or external source (e.g. AC adapter)
Arduino Uno is a good choice for relatively simple, small projects. It can be successfully implemented on e.g. motor control, lighting controller with user interface, LCD display. The module is also recommended for users who are just entering the world of microcontrollers and embedded systems.
Arduino Leonardo
Another version on which we find:
ATmega32u4 microcontroller (Flash 32kB, SRAM 2.5kB, 16MHz clock speed)
20 digital inputs / outputs – to which you can connect e.g. LEDs, buttons, displays, etc.
7 PWM outputs
12 analog inputs – twice as many as the Uno version, this means you can connect more sensors with an analog output
Communication interfaces:
UART – one of the easiest ways to exchange data with a PC
I2C / TWI – support for sensors, time systems
SPI – communication with fast transducers or external memories
USB – allows you to connect popular computer devices
Power supply: USB or external source (e.g. AC adapter)
If our project is to use a device connecting via USB, Arduino Leonardo will be the perfect choice. The system has an integrated USB controller, which makes it stand out from the others.
The manufacturer also provides versions with “low profile”. The board has no connectors, the user can solder them at his own discretion. All components are in surface soldered cases. This option is useful when our project is supposed to pay off in a small space,
Arduino Mega 2560
The version is intended for the implementation of more complex projects. It has up to 54 digital inputs / outputs, more memory and more communication interfaces than Arduino UNO and Leonardo. The plate has:
ATmega2560 from the AVR family (Flash 256kB, SRAM 8kB, 4kb EEPROM, 16MHz clock speed)
54 general-purpose digital inputs / outputs
14 PWM outputs
16 analog inputs –
Communication interfaces:
4 xUART – one of the easiest ways to exchange data with a PC
I2C / TWI – support for sensors, time systems
SPI – communication with fast transducers or external memories
Power supply: USB or external source (e.g. AC adapter)
The module is more expensive than previous versions, but has more possibilities. The Atmega2560 microcontroller has rich peripherals and a large amount of memory. 256kB Flash – allows support for extended code, 4kB EEPROM for saving a large amount of data.
Arduino Mega ADK
In addition to the advantages of Arduino Mega, ADK also has the ability to connect to Android via a USB interface controlled by the MAX34210 chip. The module specification is similar to the Arduino Mega:
ATmega2560 from the AVR family (Flash 256kB, SRAM 8kB, 4kb EEPROM, 16MHz clock speed)
54 general-purpose digital inputs / outputs
14 PWM outputs
16 analog inputs –
Communication interfaces:
4 xUART – one of the easiest ways to exchange data with a PC
I2C / TWI – support for sensors, time systems
SPI – communication with fast transducers or external memories
Power supply: USB or external source (e.g. AC adapter)
The ADK version is designed for projects that use to communicate with Android. The built-in USB controller also allows you to connect a camera, game controller or motion controller.
Arduino Leonardo Ethernet
The main advantage of the module is its easy connection to the network. The module has a network socket with an Ethernet controller. The board also has a microSD memory card slot. Specification similar to Arduino Leonardo:
Atmega32u4 microcontroller (Flash 32kB, SRAM 2.5kB, 16MHz clock speed)
20 digital inputs / outputs – to which you can connect e.g. LEDs, buttons, displays, etc.
7 PWM outputs – for e.g. speed control of motors, setting servo position
12 analog inputs – to support all types of sensors, transducers with analog output
Communication interfaces:
UART – one of the easiest ways to exchange data with a PC
I2C / TWI – support for sensors, time systems
SPI – communication with fast transducers or external memories
Power supply: external source (e.g. AC adapter)
The Ethernet version is designed for projects requiring a network connection. Another convenience is the integrated microSD card slot where you can save more data than in the memory of the microcontroller itself.
Arduino Due
Thanks to the Arduino Due, the user can create systems using a microcontroller with a 32-bit Cortex M3 core from ARM based on the Arduino libraries. The specification is as follows:
Supply voltage: 7V to 12V (recommended), 6V-20V (maximum)
Microcontroller: AT91 SAM3X8E, 32-bit ARM Cortex M3 core
Maximum clock frequency: 84MHz
SRAM memory: 96 kB Flash memory: 512 kB
Pins I / O: 54 PWM channels: 12
Number of analogue inputs: 12 (A / C converter channels)
D / A converter (digital to analog)
DMA controller
Serial interfaces: UART, SPI, I2C, CAN, USB
JTAG debugger
Board dedicated to users who want to learn about the latest solutions in the world of microcontrollers. It has definitely more possibilities than versions based on AVR, rich peripherals including a digital-to-analog converter.