Learning Embedded Systems with STM32 Nucleo Boards
Embedded programming has become more accessible than ever before. Development boards are inexpensive, software tools are easy to install, and the Arduino IDE provides a familiar environment for creating embedded applications. Combined with the STM32 Nucleo family of development boards, it offers an excellent platform for learning how modern microcontrollers interact with the physical world.
This book introduces embedded programming using the Arduino environment on STM32 Nucleo boards. You will learn how a microcontroller continuously reads inputs, processes information, and controls outputs in a predictable real-time loop. Through practical examples, you will discover how to control LEDs, read switches and sensors, generate PWM signals, drive motors, and exchange data with other devices, all while becoming familiar with the capabilities of STM32 microcontrollers.
Although the STM32 family includes devices with different performance levels, memory sizes, and peripheral sets, they all share the same architectural concepts. Digital and analog I/O, timers, interrupts, PWM, communication interfaces, and low-power operation are fundamental features found throughout the STM32 ecosystem. Understanding these building blocks will enable you to work confidently with a wide range of STM32 devices, from entry-level microcontrollers to more advanced applications.
By focusing on practical programming techniques rather than hardware complexity, this book develops skills that remain useful well beyond the examples presented. Whether you are taking your first steps in embedded systems or expanding your experience with STM32 microcontrollers, you will gain a solid understanding of both the Arduino development environment and the principles that underpin embedded software design.
32 new Projects, Practical Examples and Exercises with the Elektor Arduino Nano MCCAB Training Board
Electronics and microcontroller technology offer the opportunity to be creative. This practical microcontroller course provides you with the chance to bring your own Arduino projects and experience such moments of success. Ideally, everything works as you imagined when you switch it on for the first time. In practice, however, things rarely work as expected. At that point, you need knowledge to efficiently search for and find the reason for the malfunction.
In this book for advanced users, we delve deep into the world of microcontrollers and the Arduino IDE to learn new procedures and details, enabling you to successfully tackle and solve even more challenging situations.
With this book, the author gives the reader the necessary tools to create projects independently and also to be able to find errors quickly. Instead of just offering ready-made solutions, he explains the background, the hardware used, and any tools required. He sets tasks in which the reader contributes their own creativity and writes the Arduino sketch themselves.
If you don’t have a good idea and get stuck, there is, of course, a suggested solution for every project and every task, along with the corresponding software, which is commented on and explained in detail in the book.
This practical course will teach you more about the inner workings of the Arduino Nano and its microcontroller. You will get to know hardware modules that you can use to realize new and interesting projects. You will familiarize yourself with software methods such as ‘state machines,’ which can often be used to solve problems more easily and clearly.
The numerous practical projects and exercise sketches are once again realized on the Arduino Nano MCCAB Training Board, which you may already be familiar with from the course book ‘Microcontrollers Hands-on Course for Arduino Starters’, and which contains all the hardware peripherals and operating elements we need for the input/output operations of our sketches.
Readers who do not yet own the Arduino Nano MCCAB Training Board can purchase the required hardware separately, or alternatively, build it on a breadboard.
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.
This book covers a series of exciting and fun projects for the Arduino, such as a silent alarm, people sensor, light sensor, motor control, internet and wireless control (using a radio link). Contrary to many free projects on the internet all projects in this book have been extensively tested and are guaranteed to work!
You can use it as a projects book and build more than 45 projects for your own use. The clear explanations, schematics, and pictures of each project make this a fun activity. The pictures are taken of a working project, so you know for sure that they are correct.
You can combine the projects in this book to make your own projects. To facilitate this, clear explanations are provided on how the project works and why it has been designed the way it has That way you will learn a lot about the project and the parts used, knowledge that you can use in your own projects.
Apart from that, the book can be used as a reference guide. Using the index, you can easily locate projects that serve as examples for the C++ commands and Arduino functionality. Even after you’ve built all the projects in this book, it will still be a valuable reference guide to keep next to your PC.
The Arduino Uno is an open-source microcontroller development system encompassing hardware, an Integrated Development Environment (IDE), and a vast number of libraries. It is supported by an enormous community of programmers, electronic engineers, enthusiasts, and academics. The libraries in particular really smooth Arduino programming and reduce programming time. What’s more, the libraries greatly facilitate testing your programs since most come fully tested and working.
The Raspberry Pi 4 can be used in many applications such as audio and video media devices. It also works in industrial controllers, robotics, games, and in many domestic and commercial applications. The Raspberry Pi 4 also offers Wi-Fi and Bluetooth capability which makes it great for remote and Internet-based control and monitoring applications.
This book is about using both the Raspberry Pi 4 and the Arduino Uno in PID-based automatic control applications. The book starts with basic theory of the control systems and feedback control. Working and tested projects are given for controlling real-life systems using PID controllers. The open-loop step time response, tuning the PID parameters, and the closed-loop time response of the developed systems are discussed together with the block diagrams, circuit diagrams, PID controller algorithms, and the full program listings for both the Raspberry Pi and the Arduino Uno.
The projects given in the book aim to teach the theory and applications of PID controllers and can be modified easily as desired for other applications. The projects given for the Raspberry Pi 4 should work with all other models of Raspberry Pi family.
The book covers the following topics:
Open-loop and closed-loop control systems
Analog and digital sensors
Transfer functions and continuous-time systems
First-order and second-order system time responses
Discrete-time digital systems
Continuous-time PID controllers
Discrete-time PID controllers
ON-OFF temperature control with Raspberry Pi and Arduino Uno
PID-based temperature control with Raspberry Pi and Arduino Uno
PID-based DC motor control with Raspberry Pi and Arduino Uno
PID-based water level control with Raspberry Pi and Arduino Uno
PID-based LED-LDR brightness control with Raspberry Pi and Arduino Uno
Although the Arduino isn’t a novelty any longer, there are still many beginners who want to try programming and development with a microcontroller, and to them, it is all new. All beginnings can be difficult, though they should be light and enjoyable.
You do not need much or expensive equipment for the examples. The circuits are built on a small breadboard, and, if necessary, connected to an Arduino Uno, which you can program on a Windows PC. You will find clear examples of how to build all circuits, ensuring easy and error-free reproduction.
Projects Discussed
Current & Voltage – How it all began
Arduino Hardware
Arduino Programming
The Electrical Circuit
Measuring with the Multimeter
Circuit Diagrams and Breadboards
Creating Circuit Diagrams
Breadboard Views with Fritzing
Online Circuit Simulation
Indispensable: Resistors (Part 1)
Hands-on with Resistors (Part 2)
Variable Resistors
Diodes: One-way Street for Current
The Transistor Switch
Electromagnetism
Relays and Motors
op-amps: Operational Amplifiers
Capacitors
The NE555 Timer
PWM and Analogue Values with Arduino
7-Segment Temperature Display
Introduction to Soldering and LCDs
Mit dem Elektor Arduino Nano Trainingsboard (MCCAB) eigene Projekte realisieren
Der Mikrocontroller ist das wohl faszinierendste Teilgebiet der Elektronik, denn aufgrund der Vielzahl von Funktionen, die er auf seinem Chip vereinigt, ist er für den Entwickler ein universelles Multi-Tool zur Realisierung seiner Projekte. Praktisch jedes Gerät des täglichen Gebrauchs wird heute von einem Mikrocontroller gesteuert. Für einen elektronischen Laien blieb es aufgrund der Komplexität bisher allerdings ein Wunschtraum, eigene Ideen mit einem Mikrocontroller zu realisieren. Das Arduino-Konzept hat den Einsatz von Mikrocontrollern weitgehend vereinfacht, sodass jetzt auch Laien eigene Elektronik-Ideen mit einem Mikrocontroller verwirklichen können.
Buch & Hardware im Bundle: 'Learning by Doing'
Dieses im Bundle mitgelieferte Buch (im großen A4-Format) zeigt, wie man auch ohne große Erfahrung in Elektronik und Programmiersprachen eigene Projekte mit einem Mikrocontroller realisieren kann. Es ist ein Mikrocontroller-Praxiskurs für Einsteiger, denn nach einem Überblick über die Interna des Mikrocontrollers und einer Einführung in die Programmiersprache C liegt der Schwerpunkt des Kurses auf den praktischen Übungen. Der Leser eignet sich die erforderlichen Kenntnisse durch 'Learning by Doing' an: in dem umfangreichen Praxisteil mit 12 Projekten und 46 Übungen wird das im vorderen Teil des Buches Gelernte mit vielen Beispielen unterlegt. Die Übungen sind dabei so aufgebaut, dass der Bearbeiter eine Aufgabenstellung erhält, die er mit seinem im Theorieteil des Buches aufgebauten Wissen löst. Für jede Übung gibt es anschließend eine ausführlich erklärte und kommentierte Musterlösung, die dem Bearbeiter bei Problemen weiterhilft und die er mit seiner eigenen Lösung vergleichen kann.
Arduino IDE
In der Arduino IDE, einer Software-Entwicklungsumgebung, die kostenlos auf den eigenen PC heruntergeladen werden kann und die das gesamte Softwarepaket enthält, das für ein eigenes Mikrocontroller-Projekt benötigt wird, schreibt der Bearbeiter mit dem Editor der IDE seine Programme („Apps“) in der Programmiersprache C. Der in die Arduino IDE integrierte Compiler übersetzt sie in die Bits und Bytes, die der Mikrocontroller versteht und die dann über ein USB-Kabel in den Speicher des Mikrocontrollers auf dem Elektor Arduino Nano Trainingsboard (MCCAB) geladen werden.
Externe Sensoren, Motoren oder Baugruppen abfragen oder steuern
Das Elektor Arduino Nano Trainingsboard (MCCAB) enthält neben einem Mikrocontrollermodul Arduino Nano alle für die Übungen benötigten Bauteile wie Leuchtdioden, Schalter, Taster, akustische Signalgeber usw. Auch externe Sensoren, Motoren oder Baugruppen können mit diesem Mikrocontroller-Übungssystem abgefragt oder gesteuert werden.
Technische Daten (Arduino Nano Trainingsboard MCCAB)
Stromversorgung
Über die USB-Verbindung des zur Erstellung der Programme sowieso angeschlossenen PCs oder ein externes Netzteil (nicht im Lieferumfang enthalten)
Betriebsspannung
+5 Vcc
Eingangsspannung
Alle Eingänge
0 V bis +5 V
VX1 und VX2
+8 V bis +12 V (nur bei Verwendung eines externen Netzteils)
Mikrocontrollermodul
Arduino Nano
Hardwareperipherie
LCD
2x16 Zeichen
Potenziometer P1 & P2
JP3: Auswahl der Betriebsspannung von P1 & P2
Verteiler
SV4: Verteiler für die BetriebsspannungenSV5, SV6: Verteiler für die Ein-/Ausgänge des Mikrocontrollers
Schalter und Taster
RESET-Taster auf dem Arduino Nano-Modul6x Tastschalter K1 … K66x Schiebeschalter S1 … S6JP2: Verbindung der Schalter mit den Eingängen des Mikrocontrollers
Summer
Piezo-Summer Buzzer1 mit Steckbrücke auf JP6
Leuchtanzeigen
LED L auf dem Arduino Nano-Modul, verbunden mit GPIO D1311x LED: Zustandsanzeige für die Ein-/AusgängeJP6: Verbindung der LEDs LD10 … LD20 mit den GPIOs D2 … D12
Serielle SchnittstellenSPI & I²C
JP4: Auswahl des Signals an Pin X der SPI-Steckerleiste SV12SV9 bis SV12: SPI-Interface (3,3 V/5 V) bzw. I²C-Interface
Schaltausgang für externe Geräte
SV1, SV7: Schaltausgang (maximal +24 V/160 mA, extern zugeführt)SV2: 2x13 Pins zum Anschluss externer Module
3x3 LED-Matrix (9 rote LEDs)
SV3: Spalten der 3x3 LED-Matrix (Ausgänge D6 … D8)JP1: Verbindung der Reihen mit den GPIOs D3 … D5
Software
Library MCCABLib
Steuerung der Hardware-Komponenten (Schalter, Taster, Leuchtdioden, 3x3 LED-Matrix, Summer) auf dem MCCAB Trainingsboard
Betriebstemperatur
bis +40 °C
Abmessungen
100 x 100 x 20 mm
Technische Daten (Arduino Nano)
Mikrocontroller
ATmega328P
Architektur
AVR
Betriebsspannung
5 V
Flashspeicher
32 KB, davon 2 KB vom Bootloader belegt
SRAM
2 KB
Taktfrequenz
16 MHz
Analoge IN-Pins
8
EEPROM
1 KB
DC-Strom pro I/O-Pin
40 mA an einem I/O-Pin, insgesamt maximal 200 mA an allen Pins gemeinsam
Eingangsspannung
7-12 V
Digitale I/O-Pins
22 (6 davon sind PWM-fähig)
PWM-Ausgänge
6
Stromverbrauch
19 mA
Abmessungen
18 x 45 mm
Gewicht
7 g
Lieferumfang
Elektor Arduino Nano MCCAB Trainingsboard
Arduino Nano
Buch: Mikrocontroller-Praxiskurs für Arduino-Einsteiger
This complete Arduino Uno-based microcontroller programming course features a textbook, a component kit, hands-on projects, and a comprehensive online course with simulations. It is ideal for step-by-step learning of embedded systems programming with Arduino using a practical, hands-on approach.
A Practical Introduction to Embedded Systems with the Arduino Uno
This course is designed for people who are new to embedded systems and looking for a structured, example-driven way to get started.
A kit of parts comprising LEDs and resistors, switches, sensors and actuators, displays, a breadboard and wires, and more is included. These are used in the course to illustrate example applications.
No prior experience with Arduino or embedded development is required. Each section features hands-on examples and mini projects designed to reinforce key concepts and inspire deeper exploration. By the end of the course, you’ll be able not only to reproduce the examples but also to build on them with your own ideas and applications.
What Will You Learn?
Microcontroller programming with Arduino using the Uno R3 board
Working with Digital I/O, read buttons and encoders, control LEDs and relays
Read analog inputs, voltages, and analog sensors
Generating analog output signals and PWM
Use serial communication like UART, I²C and SPI to control displays and read digital sensors and SD cards
Managing time
Working with interrupts
Real-time sensor input and control via buttons, LEDs, and displays
Control actuators like relays and servo motors
Who Is It For?
Students and self-learners exploring embedded systems
Makers and IoT enthusiasts looking to improve their hardware skills
Educators and trainers seeking ready-to-teach material
What's Inside the Box?
Access to the full course on the Elektor Academy Pro Learning Platform
Uno R3 microcontroller board + USB cable
Book: Programming Microcontrollers in C/C++ Using Arduino
Downloadable project files for every module
Component Box:
2× LED, red, 5 mm
LED, green, 5 mm
3× Resistor, 470 Ω, 0.25 W
LDR
Potentiometer, 10 kΩ, linear
Pushbutton
Rotary encoder module
Relay module
DHT22 Humidity & Temperature Sensor
TM1637-compatible 4-digit 7-segment display
MPU-6050 IMU with headers
SSD1306-compatible I²C OLED display
Micro SD card adapter with header
Buzzer
SG90 Micro Servo
ILI9341-compatible SPI 240×320 TFT display
20× Jumper wires
Breadboard
All Programming Courses (and differences in content)
Course
Arduino
Raspberry Pi Pico with Arduino C/C++
ESP32 with Arduino C/C++
Raspberry Pi Pico with MicroPython
ESP32 with MicroPython
Online Course
Access to Arduino Course
Access to Pico with Arduino C/C++ Course
Access to ESP32 with Arduino C/C++ Course
Access to Pico with MicroPython Course
Access to ESP32 with MicroPython Course
Board
Uno R3
Raspberry Pi Pico
ESP32
Raspberry Pi Pico
ESP32
Book
Programming Microcontrollers in C/C++ Using Arduino
Programming Microcontrollers in C/C++ Using Arduino
Programming Microcontrollers in C/C++ Using Arduino
Programming Microcontrollers in MicroPython
Programming Microcontrollers in MicroPython
Kit
40-piece Component Box
40-piece Component Box
40-piece Component Box
40-piece Component Box
40-piece Component Box
Projects Using Arduino IDE and the LVGL Graphics Library
The ESP32 is probably one of the most popular microcontrollers used by many people, including students, hobbyists, and professional engineers. Its low cost, coupled with rich features makes it a popular device to use in many projects. Recently, a board called the ESP32 Cheap Yellow Display (CYD for short) is available from its manufacturers. The board includes a standard ESP32 microcontroller together with a 320x240 pixel TFT display. Additionally, the board provides several connectors for interfaces such as GPIO, serial port (TX/RX), power and Ground. The inclusion of a TFT display is a real advantage as it enables users to design complex graphics-based projects without resorting to an external LCD or graphics displays.
The book describes the basic hardware of the ESP32 CYD board and provides details of its on-board connectors. Many basic, simple, and intermediate-level projects are given in the book based on the ESP32 CYD, using the highly popular Arduino IDE 2.0 integrated development environment. The use of both the basic graphics functions and the use of the popular LVGL graphics library are discussed in the book and projects are given that use both types of approaches.
All the projects given in the book have been tested and are working. The block diagram, circuit diagram, and the complete program listings and program descriptions of all the projects are given with explanations. Readers can use the LVGL graphics library to design highly popular eye-catching full-color graphics projects using widgets such as buttons, labels, calendars, keypads, keyboards, message boxes, spinboxes, sliders, charts, tables, menus, bars, switches, drop-down lists, animations, and many more widgets.
With Examples for Arduino UNO, Raspberry Pi Pico and ESP32
Programming small electronic systems has never been more accessible. Tasks that once demanded expensive tools, specialized hardware, and deep electrical engineering expertise can now be tackled with low-cost development boards and approachable software. At the centre of this shift is the Arduino environment, which provides a unified and familiar way to program a wide range of microcontroller platforms—from classic AVR boards like the Arduino UNO to modern ARM-based boards such as the Raspberry Pi Pico, and powerful Wi-Fi-enabled devices like the ESP32.
This book introduces embedded programming through the core idea that defines all microcontrollers: reading inputs, processing information, and controlling outputs in a predictable loop. The Arduino environment abstracts much of the hardware complexity, allowing you to focus on behaviour rather than implementation details. With just a few lines of code, you can blink LEDs, read sensors, control motors, and communicate with other devices.
While the Arduino UNO, Raspberry Pi Pico, and ESP32 boards differ greatly in performance and features, they share the same fundamental building blocks: digital and analog I/O, timers, serial communication, PWM, interrupts, and power management. Learning these concepts within the Arduino framework builds skills that transfer easily across platforms and scale toward more advanced applications.
By exploring multiple boards while maintaining a consistent programming approach, this book helps you progress from simple experiments to confidently produce well-structured designs—showing that embedded development can be both practical and enjoyable.
This complete ESP32 microcontroller programming course features a textbook, a component kit, hands-on projects, and a comprehensive online course with simulations. It is ideal for step-by-step learning of embedded systems programming with Arduino using a practical, hands-on approach.
A Practical Introduction to Embedded Systems with the ESP32
This course is designed for people who are new to embedded systems and looking for a structured, example-driven way to get started.
A kit of parts comprising LEDs and resistors, switches, sensors and actuators, displays, a breadboard and wires, and more is included. These are used in the course to illustrate example applications.
No prior experience with Arduino or embedded development is required. Each section features hands-on examples and mini projects designed to reinforce key concepts and inspire deeper exploration. By the end of the course, you’ll be able not only to reproduce the examples but also to build on them with your own ideas and applications.
What Will You Learn?
Microcontroller programming with the ESP32 using the Arduino IDE
Working with Digital I/O, read buttons and encoders, control LEDs and relays
Read analog inputs, voltages, and analog sensors
Generating analog output signals and PWM
Use serial communication like UART, I²C and SPI to control displays and read digital sensors and SD cards
Managing time
Working with interrupts
Real-time sensor input and control via buttons, LEDs, and displays
Control actuators like relays and servo motors
Who Is It For?
Students and self-learners exploring embedded systems
Makers and IoT enthusiasts looking to improve their hardware skills
Educators and trainers seeking ready-to-teach material
What's Inside the Box?
Access to the full course on the Elektor Academy Pro Learning Platform
ESP32 microcontroller board + USB cable
Book: Programming Microcontrollers in C/C++ Using Arduino
Downloadable project files for every module
Component Box:
2× LED, red, 5 mm
LED, green, 5 mm
3× Resistor, 470 Ω, 0.25 W
LDR
Potentiometer, 10 kΩ, linear
Pushbutton
Rotary encoder module
Relay module
DHT22 Humidity & Temperature Sensor
TM1637-compatible 4-digit 7-segment display
MPU-6050 IMU with headers
SSD1306-compatible I²C OLED display
Micro SD card adapter with header
Buzzer
SG90 Micro Servo
ILI9341-compatible SPI 240×320 TFT display
20× Jumper wires
Breadboard
All Programming Courses (and differences in content)
Course
Arduino
Raspberry Pi Pico with Arduino C/C++
ESP32 with Arduino C/C++
Raspberry Pi Pico with MicroPython
ESP32 with MicroPython
Online Course
Access to Arduino Course
Access to Pico with Arduino C/C++ Course
Access to ESP32 with Arduino C/C++ Course
Access to Pico with MicroPython Course
Access to ESP32 with MicroPython Course
Board
Uno R3
Raspberry Pi Pico
ESP32
Raspberry Pi Pico
ESP32
Book
Programming Microcontrollers in C/C++ Using Arduino
Programming Microcontrollers in C/C++ Using Arduino
Programming Microcontrollers in C/C++ Using Arduino
Programming Microcontrollers in MicroPython
Programming Microcontrollers in MicroPython
Kit
40-piece Component Box
40-piece Component Box
40-piece Component Box
40-piece Component Box
40-piece Component Box
This complete STM32 microcontroller programming course features a textbook, a component kit, hands-on projects, and a comprehensive online course. It is ideal for step-by-step learning of embedded systems programming with Arduino using a practical, hands-on approach.
A Practical Introduction to Embedded Systems with the STM32
This course is designed for people who are new to embedded systems and looking for a structured, example-driven way to get started. A kit of parts comprising LEDs and resistors, switches, sensors and actuators, displays, a breadboard and wires, and more is included. These are used in the course to illustrate example applications.
No prior experience with Arduino or embedded development is required. Each section features hands-on examples and mini projects designed to reinforce key concepts and inspire deeper exploration. By the end of the course, you’ll be able not only to reproduce the examples but also to build on them with your own ideas and applications.
What Will You Learn?
Microcontroller programming in C/C++ with the STM32 using the Arduino IDE
Working with Digital I/O, read buttons and encoders, control LEDs and relays
Read analog inputs, voltages, and analog sensors
Generating analog output signals and PWM
Use serial communication like UART, I²C and SPI to control displays and read digital sensors and SD cards
Managing time
Working with interrupts
Real-time sensor input and control via buttons, LEDs, and displays
Control actuators like relays and servo motors
Debug programs using breakpoints and stepping through code
Who Is It For?
Students and self-learners exploring embedded systems
Makers and IoT enthusiasts looking to improve their hardware skills
Educators and trainers seeking ready-to-teach material
What's Inside the Box?
Access to the full course on the Elektor Academy Pro Learning Platform
STM32 NUCLEO-F411RE microcontroller board
Book: Arduino for STM32
Downloadable project files for every module
Component Box:
2× LED, red, 5 mm
LED, green, 5 mm
3× Resistor, 470 Ω, 0.25 W
LDR
Potentiometer, 10 kΩ, linear
Pushbutton
Rotary encoder module
Relay module
DHT22 Humidity & Temperature Sensor
TM1637-compatible 4-digit 7-segment display
MPU-6050 IMU with headers
SSD1306-compatible I²C OLED display
Micro SD card adapter with header
Buzzer
SG90 Micro Servo
ILI9341-compatible SPI 240×320 TFT display
20× Jumper wires
Breadboard