Programming the Finite State Machine with 8-Bit PICs in Assembly and C
Andrew Pratt provides a detailed introduction to programming PIC microcontrollers, as well as a thorough overview of the Finite State Machine (FSM) approach to programming. Most of the book uses assembly programming, but do not be deterred. The FSM gives a structure to a program, making it easy to plan, write, and modify. The last two chapters introduce programming in C, so you can make a direct comparison between the two techniques. The book references the relevant parts of the Microchip datasheet as familiarity with it is the best way to discover detailed information.
This book is aimed at Microsoft Windows and Linux users. To keep your costs to a minimum and to simplify the toolchain, specific applications are provided as a free download to enable you to use an FTDI serial lead as the programmer. The assembler used is the open-source "gpasm". All programming can be done in a text editor. There are detailed instructions on how to perform the necessary installations on Windows, Linux Debian, and derivatives such as Ubuntu and Fedora. For programming in C, Microchip's XC8 compiler is used from the command line. In addition to the programming applications, two serial read and serial write applications can be used for communicating with the PICs from a computer.
A voltmeter project including practical instructions on building a circuit board from scratch is included. All theory is covered beforehand, including how to do integer arithmetic in assembly.
Two PICs are covered: the PIC12F1822 and the PIC16F1823. Both can run at 32 MHz with an internal oscillator. You do not need to buy a factory-made development board and programmer. With relatively inexpensive parts including a serial lead, microcontroller, a few resistors, and LEDs, you can get started exploring embedded programming.
Links
Updated Programmer
Dieser komplette Mikrocontroller-Programmierkurs auf Basis des Arduino Uno umfasst ein Lehrbuch, ein Komponenten-Kit, praxisnahe Projekte sowie einen umfassenden Online-Kurs mit Simulationen. Er eignet sich ideal für das schrittweise Erlernen der Embedded-Programmierung mit Arduino anhand eines praktischen, hands-on Ansatzes.
Eine praxisnahe Einführung in Embedded Systems mit dem Arduino Uno
Dieser Kurs richtet sich an Personen ohne Vorkenntnisse im Bereich Embedded Systems, die einen strukturierten und beispielbasierten Einstieg suchen.
Ein Kit bestehend aus LEDs und Widerständen, Schaltern, Sensoren und Aktoren, Displays, einem Breadboard und Kabeln sowie weiteren Komponenten ist enthalten. Diese werden im Kurs verwendet, um Beispielanwendungen zu veranschaulichen.
Vorkenntnisse mit Arduino oder Embedded-Entwicklung sind nicht erforderlich. Jeder Abschnitt enthält praktische Beispiele und Mini-Projekte, die wichtige Konzepte festigen und zur weiteren Vertiefung anregen. Am Ende des Kurses werden Sie nicht nur in der Lage sein, die Beispiele nachzuvollziehen, sondern auch eigene Ideen und Anwendungen umzusetzen.
Was werden Sie lernen?
Mikrocontroller-Programmierung mit Arduino unter Verwendung des Uno R3 Boards
Arbeiten mit digitalen Ein- und Ausgängen, Auslesen von Tastern und Encodern, Steuern von LEDs und Relais
Auslesen analoger Eingänge, Spannungen und analoger Sensoren
Erzeugung analoger Ausgangssignale und PWM
Verwendung serieller Kommunikation wie UART, I²C und SPI zur Steuerung von Displays und zum Auslesen digitaler Sensoren und SD-Karten
Zeitmanagement
Arbeiten mit Interrupts
Echtzeit-Sensordatenerfassung und Steuerung über Taster, LEDs und Displays
Steuerung von Aktoren wie Relais und Servomotoren
Für wen ist dieser Kurs geeignet?
Studierende und Selbstlerner im Bereich Embedded Systems
Makers und IoT-Enthusiasten, die ihre Hardware-Kenntnisse verbessern möchten
Lehrkräfte und Trainer, die sofort einsetzbares Unterrichtsmaterial suchen
Was ist im Lieferumfang enthalten?
Zugang zum vollständigen Kurs auf der Elektor Academy Pro-Lernplattform
Uno R3 Mikrocontroller-Board (+ USB-Kabel)
Buch: Programming Microcontrollers in C/C++ Using Arduino
Downloadbare Projektdateien für jedes Modul
Komponenten-Set:
2× LED, rot, 5 mm
LED, grün, 5 mm
3× Widerstand, 470 Ω, 0,25 W
LDR
Potentiometer, 10 kΩ, linear
Taster
Drehencoder-Modul
Relaismodul
DHT22 Feuchtigkeits- und Temperatursensor
TM1637-kompatibles 4-stelliges 7-Segment-Display
MPU-6050 IMU mit Stiftleisten
SSD1306-kompatibles I²C OLED-Display
Micro-SD-Kartenadapter mit Stiftleiste
Buzzer
SG90 Mikro-Servo
ILI9341-kompatibles SPI 240×320 TFT-Display
20× Jumperkabel
Breadboard
Alle Programmierkurse (und Unterschiede im Inhalt)
Kurs
Arduino
Raspberry Pi Pico with Arduino C/C++
ESP32 with Arduino C/C++
Raspberry Pi Pico with MicroPython
ESP32 with MicroPython
Online-Kurs
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
Buch
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-teiliges Komponenten-Set
40-teiliges Komponenten-Set
40-teiliges Komponenten-Set
40-teiliges Komponenten-Set
40-teiliges Komponenten-Set
Build your own AI microcontroller applications from scratch
The MAX78000FTHR from Maxim Integrated is a small development board based on the MAX78000 MCU. The main usage of this board is in artificial intelligence applications (AI) which generally require large amounts of processing power and memory. It marries an Arm Cortex-M4 processor with a floating-point unit (FPU), convolutional neural network (CNN) accelerator, and RISC-V core into a single device. It is designed for ultra-low power consumption, making it ideal for many portable AI-based applications.
This book is project-based and aims to teach the basic features of the MAX78000FTHR. It demonstrates how it can be used in various classical and AI-based projects. Each project is described in detail and complete program listings are provided. Readers should be able to use the projects as they are, or modify them to suit their applications. This book covers the following features of the MAX78000FTHR microcontroller development board:
Onboard LEDs and buttons
External LEDs and buttons
Using analog-to-digital converters
I²C projects
SPI projects
UART projects
External interrupts and timer interrupts
Using the onboard microphone
Using the onboard camera
Convolutional Neural Network
Open-Source-Code mit Arduino IDE und PlatformIO
Autonomes Fahren: GPS, Accelerometer, Gyroskop
PS3-Controller
Mikrocontroller wie der Arduino und Einplatinenrechner wie der Raspberry Pi haben sich zu beliebten Komponenten entwickelt. Dritter im Bunde ist der ESP32 der Firma Espressif. Mikrocontroller dieser Baureihe zeichnen sich durch eine Vielzahl implementierter Funktionen aus, die bei einem Arduino konventioneller Prägung mit einem Atmel-AVR-Mikrocontroller erst mit weiterer Hardware möglich sind. Prominentes Beispiel sind hier die WiFi- und Bluetooth-Funktionalitäten. Gegenüber einem Raspberry Pi zeichnen sie sich durch einen deutlich geringeren Preis aus.
Allgemeine Informationen für die Realisierung eines Roboterauto-Projekts mit dem ESP32 sind leicht zu finden. Dabei handelt es sich aber oft nur um Ausführungen zu einem Teilaspekt, ohne inhaltliche oder funktionale Abstimmung. So ist nicht nur die Beschaffung der benötigten Informationen mühselig und zeitaufwändig, sie kann auch außerordentlich fehlerträchtig sein.
Ansatzpunkt dieses Buches ist, diese Lücke zu schließen. Es geht auf verschiedene Möglichkeiten eines Chassis ein, vermittelt nötige Kenntnisse und führt schrittweise von einer einfachen Motorsteuerung zu einem komplexen sensor- und sprachgesteuerten Roboterauto. Hacks rund um GPS und eine PlayStation 3 runden die Sache ab.
Inhalt
Bei der Reihenfolge der Kapitel wurde versucht – beginnend bei der Darstellung von grundlegenden Informationen – über die Lösung einfacher Aufgaben zu etwas anspruchsvolleren Techniken zu führen.
Der Mikrocontroller ESP32
Die Software erstellen
Die Stromversorgung
Rund um die Hardware
Das Chassis
Der Gleichstrommotor
Kabellose Steuerung über WiFi
Mit Sensoren Hindernisse erkennen
Eine eigene Roboterauto-App
Servo und Lichtsensor
GPS
Accelerometer / Gyroskop
PS3-Controller
Roboterauto-App
Hinweis zur Software
Die Dateien haben das Suffix (.cpp). Grund ist die Entwicklung mit PlatformIO. Mit Copy & Paste sollten sie auch in der Arduino-IDE verwendet werden können.
Architecture, Programming and Applications
The MSP430 is a popular family of microcontrollers from Texas Instruments. In this book we will work with the smallest type, which is the powerful MSP430G2553. We will look at the capabilities of this microcontroller in detail, as it is well-suited for self-made projects because it is available in a P-DIP20 package.
We will take a closer look at the microcontroller and then build, step by step, some interesting applications, including a 'Hello World' blinking LED and a nice clock application, which can calculate the day of the week based on the date.
You also will learn how to create code for the MSP microcontroller in assembler. In addition to that, we will work with the MSP-Arduino IDE, which makes it quite easy to create fast applications without special in-depth knowledge of the microcontrollers.
All the code used in the book is available for download from the Elektor website.
AVR Architecture and Programming An in-depth look at the 8-bit AVR architecture found in ATtiny and ATmega microcontrollers, mainly from a software and programming point of view. Explore the AVR architecture using C and assembly language in Microchip Studio (formerly Atmel Studio) with ATtiny microcontrollers. Learn the details of how AVR microcontrollers work internally, including the internal registers and memory map of ATtiny devices. Program ATtiny microcontrollers using an Atmel-ICE programmer/debugger, or use a cheap hobby programmer, or even an Arduino Uno as a programmer. Most code examples can be run using the Microchip Studio AVR simulator. Learn to write programs for ATtiny microcontrollers in assembly language. See how assembly language is converted to machine code instructions by the assembler program. Find out how programs written in the C programming language end up as assembly language and finally as machine code instructions. Use the Microchip Studio debugger in combination with a hardware USB programmer/debugger to test assembly and C language programs, or use the Microchip Studio AVR simulator. DIP packaged ATtiny microcontrollers are used in this volume for easy use on electronic breadboards, targeting mainly the ATtiny13(A) and ATtiny25/45/85. Learn about instruction timing and clocks in AVR microcontrollers using ATtiny devices. Be on your way to becoming an AVR expert with advanced debugging and programming skills.
Der Elektor Super Servo Tester kann Servos steuern und Servosignale messen. Es können bis zu vier Servokanäle gleichzeitig getestet werden.
Der Super Servo Tester wird als Bausatz geliefert. Alle zum Zusammenbau des Super Servo Testers erforderlichen Teile sind im Bausatz enthalten. Für den Zusammenbau des Bausatzes sind grundlegende Lötkenntnisse erforderlich. Der Mikrocontroller ist bereits programmiert.
Der Super Servo Tester verfügt über zwei Betriebsmodi: Steuerung/Manuell und Messen/Eingänge.
Im Control/Manual Modus generiert der Super Servo Tester an seinen Ausgängen Steuersignale für bis zu vier Servos oder für den Flugregler oder ESC. Die Signale werden über die vier Potentiometer gesteuert.
Unter Measure/Inputs misst der Super Servo Tester die an seine Eingänge angeschlossenen Servosignale. Diese Signale können beispielsweise von einem Regler, einem Flugregler, dem Empfänger oder einem anderen Gerät stammen. Die Signale werden auch an die Ausgänge weitergeleitet, um die Servos oder den Flugregler bzw. ESC zu steuern. Die Ergebnisse werden auf dem Display angezeigt.
Technische Daten
Betriebsmodi
Control/Manual & Measure/Inputs
Kanäle
3
Servosignaleingänge
4
Servosignalausgänge
4
Alarm
Summer & LED
Anzeige
0,96' OLED (128 x 32 Pixel)
Eingangsspannung an K5
7-12 VDC
Eingangsspannung an K1
5-7,5 VDC
Eingangsstrom
30 mA (9 VDC an K5, nichts an K1 und K2 angeschlossen)
Abmessungen
113 x 66 x 25 mm
Gewicht
60 g
Lieferumfang
Widerstände (0,25 W)
R1, R3
1 kΩ, 5%
R2, R4, R5, R6, R7, R9, R10
10 kΩ, 5%
R8
22 Ω, 5%
P1, P2, P3, P4
10 kΩ, lin/B, vertikales Potentiometer
Kondensatoren
C1
100 µF 16 V
C2
10 µF 25 V
C3, C4, C7
100 nF
C5, C6
22 pF
Halbleiter
D1
1N5817
D2
LM385Z-2.5
D3
BZX79-C5V1
IC1
7805
IC2
ATmega328P-PU, programmiert
LED1
LED, 3 mm, rot
T1
2N7000
Außerdem
BUZ1
Piezo-Summer mit Oszillator
K1, K2
2-reihiger, 12-poliger Pinheader, 90°
K5
Barrel jack
K4
1-reihige, 4-polige Stiftbuchse
K3
2-reihiger, 6-fach geschachtelter Pinheader
S1
Slide Switch DPDT
S2
Slide Switch SPDT
X1
Crystal, 16 MHz
28-polige DIP-Buchse für IC2
Elektor Platine
OLED-Display, 0,96', 128 x 32 Pixel, 4-pin I²C-Interface
Links
Elektor Magazine
Elektor Labs
Wie enigszins bekend is met moderne microprocessor systemen als Arduino, kent ongetwijfeld ook de problemen met dit soort kaarten. Ze zijn te duur om voor elk project een aparte kaart aan te schaffen en zijn bovendien nogal fors van formaat.
Het aardige van de ATtiny is dat de schijn bedriegt. Het lijkt een klein IC met een beperkt toepassingsgebied, maar het heeft een verbazingwekkend scala aan (speelse) mogelijkheden.
Dit boek beschrijft de enorme veelzijdigheid van de ATtiny microcontroller aan de hand van ongeveer vijftig leuke elektronica projecten, speciaal gericht op de beginner. De meeste ontwerpen zijn volledig uitgewerkt, enkele zijn meer als ontwerpidee gepresenteerd. De inhoudsopgave laat zien dat we ons op vele terreinen zullen begeven, van zonnevolger tot helling indicator. Dit boek is beslist geen theorieboek. Het is een boek dat gelezen zal worden met de soldeerbout in de hand.
Voor het programmeren van de ATtiny maken we dankbaar gebruik van een Arduino kaart. Als de Arduino ingesteld word als programmer, kunnen we er de meeste Arduino “sketches” mee overzetten naar de ATtiny. We wensen u veel plezier met het nabouwen van de schakelingen.
Mehr als 50 Grundlagenprojekte mit MicroPython und dem RP2040-Mikrocontroller
Der Raspberry Pi Pico ist eine leistungsstarke Mikrocontroller-Platine, die speziell für das Physical Computing – also hardwarenahe Anwendungen – entwickelt wurde. Der Raspberry Pi Pico kann so programmiert werden, dass er eine einzelne Aufgabe sehr effizient ausführt und ermöglicht so schnelle Steuerungs- und Überwachungsanwendungen in Echtzeit. Der 'Pico', wie wir ihn nennen, basiert auf dem schnellen, effizienten und kostengünstigen Dual-Core ARM Cortex-M0+ RP2040 Mikrocontroller-Chip, der mit bis zu 133 MHz läuft und über 264 KB SRAM und 2 MB Flash-Speicher verfügt. Neben dem großen Speicher hat der Pico noch weitere attraktive Eigenschaften, darunter eine große Anzahl von GPIO-Pins sowie gängige Schnittstellen wie ADC, SPI, I²C, UART und PWM. Als Krönung bietet der Chip schnelle und genaue Timer, eine Hardware-Debug-Schnittstelle und einen internen Temperatursensor.
Zur Programmierung lassen sich leicht die gängigen Hochsprachen wie MicroPython oder C/C++ verwenden. Dieses Buch ist eine Einführung in die Verwendung des Pico mit der Programmiersprache MicroPython. In allen Projekten wird die Thonny-Entwicklungsumgebung (IDE) eingesetzt. Über 50 Projekte decken folgende Themen ab:
Installation von MicroPython auf dem Raspberry Pi Pico
Timer-Interrupts und externe Interrupts
Projekte mit Analog-Digital-Wandler (ADC)
Verwendung des internen sowie externer Temperatursensoren
Datenlogger
Projekte zur PWM, UART, I²C-Bus und SPI-Bus
Wi-Fi und Bluetooth für die Kommunikation mit Smartphones
Projekte mit dem Digital-Analog-Wandler (DAC)
Alle in diesem Buch vorgestellten Projekte wurden vollständig getestet und sind funktionsfähig. Es werden keine Programmier- oder Elektronikkenntnisse vorausgesetzt, um sie nachzuvollziehen. Für alle beschriebenen Projekte gibt es kurze Beschreibungen, Blockdiagramme, detaillierte Schaltpläne und vollständige MicroPython-Programmlistings. Die Listings sind auch auf der zum Buch gehörenden Elektor-Webseite zu finden.
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.
Zeitsteuerung, Scheduler, PIO und Zustandsmaschinen
Multitasking ist der Schlüssel zu leistungsfähigen Embedded-Systemen, und zugleich eine der größten Herausforderungen in der Mikrocontroller-Programmierung. Dieses Buch zeigt Ihnen Schritt für Schritt, wie Sie von einem einfachen Ein-Task-Programm zu einem strukturierten, reaktionsfähigen und skalierbaren System gelangen. Dabei steht nicht nur das Wie, sondern vor allem das Warum im Mittelpunkt.
Sie lernen:
warum scheinbare Parallelität entsteht
weshalb blockierende Programme instabil werden
wie Aufgaben effizient und kontrolliert parallel ablaufen
Ausgehend vom klassischen Superloop vermittelt das Buch moderne Multitasking-Strategien – von nicht-blockierender Programmierung und Tick-Systemen bis zu Task-Schedulern, Zustandsmaschinen und ereignisgesteuerten Konzepten.
Der Fokus liegt auf der Praxis: Sensoren, Displays, Kommunikation und reale Anwendungen werden Schritt für Schritt integriert und mit verständlich kommentierten Beispielprogrammen erklärt.
Fortgeschrittene Themen umfassen:
Multicore-Programmierung mit dem Raspberry Pi Pico
asynchrones Programmieren mit uasyncio
RTOS-Grundlagen mit FreeRTOS
die Kombination aus Multicore und RTOS
Dabei werden auch die Grenzen dieser Techniken, insbesondere unter MicroPython, klar aufgezeigt.
Das Buch richtet sich an ambitionierte Einsteiger und fortgeschrittene Entwickler, die Embedded-Systeme fundiert verstehen und robuste, wartbare Multitasking-Anwendungen entwickeln möchten.
Dit is een ideaal boek voor hobbyisten, studenten en ingenieurs die op een eenvoudige manier C en het gebruik van een mbed ARM microcontroller willen leren, rechtstreeks op internet zonder ingewikkelde software installatie.
ARM mbed microcontroller NXP LPC1768
De projecten in dit boek zijn bedoeld voor beginners op het gebied van ARM microcontrollers of de programmeertaal C. Dat wil niet zeggen dat de projecten allemaal eenvoudig zijn, maar wel dat ze gemakkelijk te begrijpen zijn. We maken bijvoorbeeld gebruik van USB communicatie, een onderwerp dat door de mbed zo eenvoudig wordt gemaakt dat het geschikt is voor een beginners boek.
Cloud technologie
De mbed NXP LPC1768 maakt gebruik van cloud technologie, een revolutionair concept voor software ontwikkeling. Dit houdt in dat u geen software hoeft te installeren om de mbed te kunnen programmeren! Het enige dat u nodig heeft is een internet browser zoals Microsoft Internet Explorer, en een USB poort op uw PC. U kunt vanaf elke willekeurige PC waar dan ook ter wereld toegang krijgen tot uw project en er aan verder werken. Wanneer u klaar bent kunt u met een paar eenvoudige klikjes met uw muis het programma overzetten naar uw mbed hardware. Uiteraard kunt u de projecten ook downloaden en op uw eigen PC opslaan wanneer u dat liever heeft.
Onderwerpen die aan de orde komen
Leer het programmeren van een ARM microcontroller via cloud technologie. Geen moeilijke software installatie op uw eigen PC.
Leer de programmeertaal C door leuke en interessante projecten uit te voeren. Geen ervaring of kennis noodzakelijk.
Voorbeelden van projecten in dit boek: knipperlicht, tijdschakelaar, donkerschakelaar, digitale thermometer, mensen detector, USB communicatie, pratende microcontroller, fout zoeken, geluidsschakelaar, en nog veel meer - totaal 35 projecten.
Voorbeelden van C onderwerpen in dit boek: variabelen, opdrachten, functies, programmaverloop, pointers (inleidend).