www.kappmeier.net
Elektronik-Basteleien
17. Juni 2025
ARDUINO - was ist das und warum?
Vorgeplänkel
Wenn wir elektronische Geräte benutzen ist in der Regel ein
Computer am Werk. Auch wenn dies nur ein Toaster ist, oder in
unserem Falle des DEALERs ein Audio-Vorverstärker, kann dort
ein kleiner Mikrocontroller beteiligt sein. Beim DEALER gilt
es die Relais zu schalten, das Display zu bedienen, das
Infrarot-Signal auszulesen, den Dreh-/ Drücktaster abzufragen
und die Lautstärke zu stellen. Da im Rahmen des Projektes
mehrfach die Nachfragen nach dem Programm kamen, beschloss ich
dazu etwas in dem nachfolgenden Rahmen zu veröffentlichen.
Warum Arduino?
ARDUINO ist die Bezeichnung für ein Gesamtpaket. Ursprünglich
bedeutete "Arduino" den Verbund aus der Arduino IDE
und dem Arduino UNO Board. Dieses Board enthält den
ATmega 328P Mikrocontroller von AVR, samt Arduino-Bootloader
und u.a. eine serielle Schnittstelle welche über USB am
Rechner angeschlossen wird. Arduino ist mittlerweile ein
Gattungsbegriff für den Bereich Mikrocontroller. Neben dem
ATmega 328P sind mittlerweile auch andere Controller
hinzugekommen.
Der erwähnte Bootloader macht aus dem 328P erst einen
"Arduino", womit wir beim "warum" sind, zumindest einem
Grund. Üblicherweise werden Mikrocontroller über eine ISP
Schnittstelle programmiert. ISP steht für
"In-System-Programming".
Dafür wird i.d.R. ein spezielles Gerät benötigt. Einige
Controller brauchen noch andere zus. Schritte (wie z.B. das
auf GND legen bestimmter Pins) um Programme zu empfangen.
Im "echten" Arduino Umfeld enthält ein Mikrocontroller einen
Bootloader. Mit diesem kleinen Programm, welches direkt beim
Start des µC ausgeführt wird, wartet dieser an seiner
seriellen Schnittstelle auf bestimmte Daten. Dies ist dann
i.d.R. der neue Programmcode. Bekommt er nichts springt er
nach kurzer Zeit in sein vorhandenes Programm und führt dies
aus.
Als Beispiel wie es umständlicher geht zeigen die Controller
der Expressif Serie (ESP32 oder 8266). Diese müssen zum
Programmieren aus sein, dann wird eine Taste gedrückt
gehalten, Kabel gesteckt und mit Strom versorgt. Während den
Entwicklungsarbeiten ist dies ein durchaus lästiger Vorgang.
Nach jeder kleinen Programm-Änderung, die getestet werden
soll, heißt es : Kabel ziehen > Taste drücken >
Kabel stecken > in der IDE Programmieren klicken >
wieder Kabel ziehen > neu stecken um dann feststellen, das
es noch nicht klappt und wieder Kabel
ziehen.... ein Teufelskreis ;-)
Beim original Arduino-System ist die anders. Arduino UNO
Platine per USB verbinden, in der Arduino IDE einmal korrekt
einstellen. Dann das Programm schreiben/laden, zum
Programmieren heißt es nun : auf den Übertragungsknopf
klicken > kurz warten > fertig.
Einen Fehler gefunden? Programm ändern > Knopf
drücken > warten > fertig.
Unter der Haube führt die IDE einen Reset des µC aus, sendet
das HEX File und macht wieder einen Reset. Fertig. Das Ganze
vereinfacht die Entwicklung ungemein.
Zusätzlich hat die serielle Schnittstelle den Vorteil das der
µC darüber auch andere Daten empfangen oder Daten zurück an
die IDE senden kann, welche diese dann im "Seriellen Monitor"
anzeigt, also brauchen wir keinen Bildschirm am µC.
Womit wir bei der IDE sind. IDE steht für " Integrated
Development Environment
", zu deutsch " Integrierte Entwicklungsumgebung ".
Dieses ist die Oberfläche für die vielen, zum Programmieren
notwendigen Werkzeuge. Dies sind u.a. Compiler, Linker, der
Texteditor mit "Syntax-Highlighting", einige Bibliotheken,
Beispielprogramme sowie Werkzeugen zum Übertragen auf den
Controller. Ich verwende die aktuelle Version 2.3.4 (Stand
05.2025). Immer noch verbreitet und von vielen favorisiert ist
die 1.8
Ein weiterer Grund für einen Arduino ist die Offenheit der
Plattform und die große Verbreitung. Es gibt quasi zu jedem
Bereich eine Bibliothek, den sogenannten "Libraries
", oder zumindest Beispiel-Programme. Natürlich bleibt einem
weiterhin der klassische Weg der Programmierung offen, mit den
"Librarys" ist zumindest der Einstieg einfacher.
Kleiner Tipp: In der IDE gibt es oben links zwei
Button. Links der Kompilier-Button, rechts davon der Kompilier
UND Übertragungsbutton. Als Anfänger sollte man häufig von dem
linken Kompilier-Button Gebrauch machen, damit
kleinere Schreib- oder Flüchtigkeitsfehler
sofort gezeigt werden. Schreibt man stumpf erst mal alles
zusammen, ist man zunächst fleißig dabei und korrigiert einen
Riesen Haufen Fehler. Allerdings macht das kompilieren
erst Sinn, wenn die Programmteile komplett sind, es führt
natürlich zu Fehlern wenn man einen Funktionsaufruf eingetippt
hat, die dazugehörige Funktion noch gar nicht vorhanden ist
;-)
Hausprogrammiersprache beim Arduino ist "C" bzw.
"C++". Wie dies funktioniert gibt es
im nächsten Teil : ARDUINO - Hallo Welt
Zurück -
Startseite -
Impressum