Technology is constantly changing. New microcontrollers become available every year. The one thing that has stayed the same is the C programming language used to program these microcontrollers. If you would like to learn this standard language to program microcontrollers, then this book is for you!
Arduino is the hardware platform used to teach the C programming language as Arduino boards are available worldwide and contain the popular AVR microcontrollers from Atmel.
Atmel Studio is used as the development environment for writing C programs for AVR microcontrollers. It is a full-featured integrated development environment (IDE) that uses the GCC C software tools for AVR microcontrollers and is free to download.
At a glance:
Start learning to program from the very first chapter
No programming experience is necessary
Learn by doing – type and run the example programs
A fun way to learn the C programming language
Ideal for electronic hobbyists, students and engineers wanting to learn the C programming language in an embedded environment on AVR microcontrollers
Use the free full-featured Atmel Studio IDE software for Windows
Write C programs for 8-bit AVR microcontrollers as found on the Arduino Uno and MEGA boards
Example code runs on Arduino Uno and Arduino MEGA 2560 boards and can be adapted to run on other AVR microcontrollers or boards
Use the AVR Dragon programmer/debugger in conjunction with Atmel Studio to debug C programs
The Arduino Nano is a small, complete, and breadboard-friendly board based on the ATmega328 (Arduino Nano 3.x). It has more or less the same functionality of the Arduino Duemilanove but in a different package. It lacks only a DC power jack and works with a Mini-B USB cable instead of a standard one.
Specifications
Microcontroller
ATmega328
Operating Voltage (logic level)
5 V
Input Voltage (recommended)
7-12 V
Input Voltage (limits)
6-20 V
Digital I/O Pins
14 (of which 6 provide PWM output)
Analog Input Pins
8
DC Current per I/O Pin
40 mA
Flash Memory
16 KB (ATmega168) or 32 KB (ATmega328) of which 2 KB used by bootloader
SRAM
1 KB (ATmega168) or 2 KB (ATmega328)
EEPROM
512 bytes (ATmega168) or 1 KB (ATmega328)
Clock Speed
16 MHz
Dimensions
0.73 x 1.70' (18 x 45 mm)
Power
The Arduino Nano can be powered via the Mini-B USB connection, 6-20 V unregulated external power supply (pin 30), or 5 V regulated external power supply (pin 27). The power source is automatically selected to the highest voltage source.
Memory
The ATmega168 has 16 KB of flash memory for storing code (of which 2 KB is used for the bootloader), 1 KB of SRAM and 512 bytes of EEPROM
The ATmega328 has 32 KB of flash memory for storing code, (also with 2 KB used for the bootloader), 2 KB of SRAM and 1 KB of EEPROM.
Input and Output
Each of the 14 digital pins on the Nano can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 5 V.
Each pin can provide or receive a maximum of 40 mA and has an internal pull-up resistor (disconnected by default) of 20-50 kOhms.
Communication
The Arduino Nano has a number of facilities for communicating with a computer, another Arduino, or other microcontrollers.
The ATmega168 and ATmega328 provide UART TTL (5V) serial communication, which is available on digital pins 0 (RX) and 1 (TX). An FTDI FT232RL on the board channels this serial communication over USB and the FTDI drivers (included with the Arduino software) provide a virtual com port to software on the computer.
The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the Arduino board. The RX and TX LEDs on the board will flash when data is being transmitted via the FTDI chip and USB connection to the computer (but not for serial communication on pins 0 and 1).
A SoftwareSerial library allows for serial communication on any of the Nano's digital pins.
Programming
The Arduino Nano can be programmed with the Arduino software (download).
The ATmega168 or ATmega328 on the Arduino Nano comes with a bootloader that allows you to upload new code to it without the use of an external hardware programmer. It communicates using the original STK500 protocol (reference, C header files).
You can also bypass the bootloader and program the microcontroller through the ICSP (In-Circuit Serial Programming) header using Arduino ISP or similar; see these instructions for details.
Automatic (Software) Reset
Rather than requiring a physical press of the reset button before an upload, the Arduino Nano is designed in a way that allows it to be reset by software running on a connected computer.
One of the hardware flow control lines (DTR) of theFT232RL is connected to the reset line of the ATmega168 or ATmega328 via a 100 nF capacitor. When this line is asserted (taken low), the reset line drops long enough to reset the chip.
The Arduino software uses this capability to allow you to upload code by simply pressing the upload button in the Arduino environment. This means that the bootloader can have a shorter timeout, as the lowering of DTR can be well-coordinated with the start of the upload.
The Arduino Nano ESP32 (with and without headers) is a Nano form factor board based on the ESP32-S3 (embedded in the NORA-W106-10B from u-blox). This is the first Arduino board to be based fully on an ESP32, and features Wi-Fi, Bluetooth LE, debugging via native USB in the Arduino IDE as well as low power.
The Nano ESP32 is compatible with the Arduino IoT Cloud, and has support for MicroPython. It is an ideal board for getting started with IoT development.
Features
Tiny footprint: Designed with the well-known Nano form factor in mind, this board's compact size makes it perfect for embedding in standalone projects.
Wi-Fi and Bluetooth: Harness the power of the ESP32-S3 microcontroller, well-known in the IoT realm, with full Arduino support for wireless and Bluetooth connectivity.
Arduino and MicroPython support: Seamlessly switch between Arduino and MicroPython programming with a few simple steps.
Arduino IoT Cloud compatible: Quickly and easily create IoT projects with just a few lines of code. The setup takes care of security, allowing you to monitor and control your project from anywhere using the Arduino IoT Cloud app.
HID support: Simulate human interface devices, such as keyboards or mice, over USB, opening up new possibilities for interacting with your computer.
Specifications
Microcontroller
u-blox NORA-W106 (ESP32-S3)
USB connector
USB-C
Pins
Built-in LED pins
13
Built-in RGB LED pins
14-16
Digital I/O pins
14
Analog input pins
8
PWM pins
5
External interrupts
All digital pins
Connectivity
Wi-Fi
u-blox NORA-W106 (ESP32-S3)
Bluetooth
u-blox NORA-W106 (ESP32-S3)
Communication
UART
2x
I²C
1x, A4 (SDA), A5 (SCL)
SPI
D11 (COPI), D12 (CIPO), D13 (SCK). Use any GPIO for Chip Select (CS)
Power
I/O Voltage
3.3 V
Input voltage (nominal)
6-21 V
Source Current per I/O pin
40 mA
Sink Current per I/O pin
28 mA
Clock speed
Processor
Up to 240 MHz
Memory
ROM
384 kB
SRAM
512 kB
External Flash
128 Mbit (16 MB)
Dimensions
18 x 45 mm
Downloads
Datasheet
Schematics
Now you can connect your Arduino boards with the official Arduino USB cable. Through a USB-C to USB-C with a USB-A adapter connection, this data USB cable can easily connect your Arduino boards with your chosen programming device. The Arduino USB cable has a nylon braided jacket in the typical Arduino colors white and teal. The connectors have an aluminum shell that protects your cable from harm at the same time as looking cool. Length: 100 cm Aluminium shell with logo Nylon braided jacket white and teal
The Elektor MultiCalculator Kit is an Arduino-based multifunction calculator that goes beyond basic calculations. It offers 22 functions including light and temperature measurement, differential temperature analysis, and NEC IR remote control decoding. The Elektor MultiCalculator is a handy tool for use in your projects or for educational purposes.
The kit features a Pro Mini module as the computing unit. The PCB is easy to assemble using through-hole components. The enclosure consists of 11 acrylic panels and mounting materials for easy assembly. Additionally, the device is equipped with a 16x2 alphanumeric LCD, 20 buttons, and temperature sensors.
The Elektor MultiCalculator is programmable with the Arduino IDE through a 6-way PCB header. The available software is bilingual (English and Dutch). The calculator can be programmed with a programming adapter, and it is powered through USB-C.
Modes of Operation
Calculator
4-Ring Resistor Code
5-Ring Resistor Code
Decimal to Hexadecimal and Character (ASCII) conversion
Hexadecimal to Decimal and Character (ASCII) conversion
Decimal to Binary and Character (ASCII) conversion
Binary to Decimal and Hexadecimal conversion
Hz, nF, capacitive reactance (XC) calculation
Hz, µH, inductive reactance (XL) calculation
Resistance calculation of two resistors connected in parallel
Resistance calculation of two resistors connected in series
Calculation of unknown parallel resistor
Temperature measurement
Differential temperature measurement T1&T2 and Delta (δ)
Light measurement
Stopwatch with lap time function
Item counter
NEC IR remote control decoding
AWG conversion (American Wire Gauge)
Rolling Dice
Personalize startup message
Temperature calibration
Specifications
Menu languages: English, Dutch
Dimensions: 92 x 138 x 40 mm
Build time: approx. 5 hours
Included
PCB and though-hole components
Precut acrylic sheets with all mechanical parts
Pro Mini microcontroller module (ATmega328/5 V/16 MHz)
Programming adapter
Waterproof temperature sensors
USB-C cable
Downloads
Software
This USB Stick contains more than 300 Arduino-related articles published in Elektor Magazine. The content includes both background articles and projects on the following topics:
Software & hardware development: Tutorials on Arduino software development using Arduino IDE, Atmel Studio, Shields, and essential programming concepts.
Learning: The Microcontroller Bootcamp offers a structured approach to programming embedded systems.
Data acquisition & measurement: Projects such as a 16-bit data logger, lathe tachometer, and an AC grid analyzer for capturing and analyzing real-time signals.
Wireless communication: Learn how to implement wireless networks, create an Android interface, and communicate effectively with microcontrollers.
Robotics and automation: This covers the Arduino Nano Robot Controller, supporting boards for automation, and explores various Arduino shields to enhance functionality.
Self-build projects: Unique projects such as laser projection, Numitron clock and thermometer, ELF receiver, Theremino, and touch LED interfaces highlight creative applications.
Whether you're a beginner or an experienced maker, this collection is a valuable resource for learning, experimenting, and pushing the boundaries of Arduino technology.
With this kit you can built all the projects described in the book 'Mastering the Arduino Uno R4'. The kit comes with several LEDs, sensors, actuators, and other components. The purpose of the kit is to make a flying start with hardware and software aspects of projects designed around the Arduino Uno microcontroller system.
Included
1x RFID reader module
1x DS1302 clock module
1x 5 V stepper motor
1x '2003' stepper motor drive board
5x Green LED
5x Yellow LED
5x Red LED
2x Rocker switch
1x Flame sensor
1x LM35 sensor module
1x Infrared receiver
3x Light-dependent resistors (LDRs)
1x IR remote controller
1x Breadboard
4x Pushbutton (with four caps)
1x Buzzer
1x Piezo sounder
1x Adjustable resistor (potentiometer)
1x 74HC595 shift register
1x 7-segment display
1x 4-digit 7-segment display
1x 8x8 Dot-matrix display
1x 1602 / I²C LCD module
1x DHT11 Temperature and humidity module
1x Relay module
1x Sound module
Set of Dupont cables
Set of Breadboard cables
1x Water sensor
1x PS2 Joystick
5x 1 k-ohm resistor
5x 10 k-ohm resistor
5x 220-ohm resistor
1x 4x4 keypad module
1x 9g Servo (25 cm)
1x RFID card
1x RGB module
1x 9 V battery DC jack
Not included
Mastering the Arduino Uno R4 (Book)
Arduino Uno R3/R4 (Board)
Learn the basics of electronics by assembling manually your Arduino Uno, become familiar with soldering by mounting every single component, and then unleash your creativity with the only kit that becomes a synth!
The Arduino Make-Your-Uno kit is really the best way to learn how to solder. And when you are done, the packaging allows you to build a synth and make your music.
A kit with all the components to build your very own Arduino Uno and audio synthesizer shield.
The Make-Your-Uno kit comes with a complete set of instructions in a dedicated content platform. This includes video material, a 3D interactive viewer for following detailed instructions, and how to program your board once it is finished.
This kit contains:
Arduino Make-Your-Uno
1x Make-Your-Uno PCB
1x USB C Serial adapter Board
7x Resistors 1k Ohm
2x Resistors 10k Ohm
2x Resistors 1M Ohm
1x Diode (1N4007)
1x 16 MHz Crystal
4x Yellow LEDs
1x Green LED
1x Push-Button
1x MOSFET
1x LDO (3.3 V)
1x LDO (5 V)
3x Ceramic capacitors (22pF)
3x Electrolytic capacitors (47uF)
7x Polyester capacitors (100nF)
1x Socket for ATMega 328p
2x I/O Connectors
1x Connector header 6 pins
1x Barrel jack connector
1x ATmega 328p Microcontroller
Arduino Audio Synth
1x Audio Synth PCB
1x Resistor 100k Ohm
1x Resistor 10 Ohm
1x Audio amplifier (LM386)
1x Ceramic capacitors (47nF)
1x Electrolytic capacitors (47uF)
1x Electrolytic capacitors (220uF)
1x Polyester capacitor (100nF)
4x connectors pin header
6x potentiometer 10k Ohm with plastic knobs
Spare parts
2x Electrolytic capacitors (47uF)
2x Polyester capacitor (100nF)
2x Ceramic capacitors (22pF)
1x Push-Button
1x Yellow LEDs
1x Green LED
Mechanical parts
5x Spacers 12 mm
11x Spacers 6 mm
5x screw nuts
2x screws 12 mm
Develop innovative hardware-based projects in C
The Raspberry Pi has traditionally been programmed using Python. Although this is a very powerful language, many programmers may not be familiar with it. C on the other hand is perhaps the most commonly used programming language and all embedded microcontrollers can be programmed using it.
The C language is taught in most technical colleges and universities and almost all engineering students are familiar with using it with their projects. This book is about using the Raspberry Pi with C to develop a range of hardware-based projects. Two of the most popular C libraries, wiringPi and pigpio are used.
The book starts with an introduction to C and most students and newcomers will find this chapter invaluable. Many projects are provided in the book, including using Wi-Fi and Bluetooth to establish communication with smartphones.
Many sensor and hardware-based projects are included. Both wiringPi and pigpio libraries are used in all projects. Complete program listings are given with full explanations. All projects have been fully tested and work.
The following hardware-based projects are provided in the book:
Using sensors
Using LCDs
I²C and SPI buses
Serial communication
Multitasking
External and timer interrupts
Using Wi-Fi
Webservers
Communicating with smartphones
Using Bluetooth
Sending data to the cloud
Program listings of all Raspberry Pi projects developed in this book are available on the Elektor website. Readers can download and use these programs in their projects. Alternatively, they can customize them to suit their applications.
Programming and Projects for the Minima and WiFi
Based on the low-cost 8-bit ATmega328P processor, the Arduino Uno R3 board is likely to score as the most popular Arduino family member, and this workhorse has been with us for many years. Eleven years later, the long-overdue successor, the Arduino Uno R4, was released. It is built around a 48 MHz, 32-bit Arm Cortex-M4 microcontroller and provides significantly expanded SRAM and Flash memory. Additionally, a higher-precision ADC and a new DAC are added to the design. The Uno R4 board also supports the CAN Bus with an interface.
Two versions of the board are available: Uno R4 Minima, and Uno R4 WiFi. This book is about using these new boards to develop many different and interesting projects with just a handful of parts and external modules. All projects described in the book have been fully tested on the Uno R4 Minima or the Uno R4 WiFi board, as appropriate.
The project topics include the reading, control, and driving of many components and modules in the kit as well as on the relevant Uno R4 board, including
LEDs
7-segment displays (using timer interrupts)
LCDs
Sensors
RFID Reader
4x4 Keypad
Real-time clock (RTC)
Joystick
8×8 LED matrix
Motors
DAC (Digital-to-analog converter)
LED matrix
WiFi connectivity
Serial UART
CAN bus
Infrared controller and receiver
Simulators
… all in creative and educational ways with the project operation and associated software explained in great detail.
An 8-in-1 test & measurement instrument for the electronics workbench
A well-equipped electronics lab is crammed with power supplies, measuring devices, test equipment and signal generators. Wouldn‘t it be better to have one compact device for almost all tasks? Based on the Arduino, a PC interface is to be developed that’s as versatile as possible for measurement and control. It simply hangs on a USB cable and – depending on the software – forms the measuring head of a digital voltmeter or PC oscilloscope, a signal generator, an adjustable voltage source, a frequency counter, an ohmmeter, a capacitance meter, a characteristic curve recorder, and much more.
The circuits and methods collected here are not only relevant for exactly these tasks in the "MSR" electronics lab, but many details can also be used within completely different contexts.
Errata/Updates
In the programs printed, all instances of “be()” should read: sei().
Technology is constantly changing. New microcontrollers become available every year and old ones become redundant. The one thing that has stayed the same is the C programming language used to program these microcontrollers. If you would like to learn this standard language to program microcontrollers, then this book is for you!
ARM microcontrollers are available from a large number of manufacturers. They are 32-bit microcontrollers and usually contain a decent amount of memory and a large number of on-chip peripherals. Although this book concentrates on ARM microcontrollers from Atmel, the C programming language applies equally to other manufacturer’s ARMs as well as other microcontrollers.
Features of this book
Use only free or open source software.
Learn how to download, set up and use free C programming tools.
Start learning the C language to write simple PC programs before tackling embedded programming - no need to buy an embedded system right away!
Start learning to program from the very first chapter with simple programs and slowly build from there.
No programming experience is necessary!
Learn by doing - type and run the example programs and exercises.
Sample programs and exercises can be downloaded from the Internet.
A fun way to learn the C programming language.
Ideal for electronic hobbyists, students and engineers wanting to learn the C programming language in an embedded environment on ARM microcontrollers.