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 fest stellen 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 " Intigrated
Develepment 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 "Librarys", 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