Das erste Arduino-Programm (LED blinken lassen), zuerst die dumme Variante
Dies wird unser erstes Arduino-Programm sein. Was ich im Titel angedeutet habe, mit der dummen Variante, werde ich im nächsten Beitrag erklären. Diese dumme Variante hat aber einen grossen didaktischen Vorteil: Sie ist eklatant einfach und damit lässt sich der Ablauf eines Arduino-Programmes sehr gut erklären.
Erst zur Schaltung: Wir übernehmen die bisherige Schaltung und ziehen Arduino-seitig den Stecker am roten Kabel aus und stecken ihn in Pin 7. Das ist hardware-mässig schon alles. Siehe nächstes Bild. Die LED wird jetzt nur noch leuchten, wenn der Pin 7 per Programm auf HIGH gesetzt worden ist.
Und jetzt gehts an die Programm-Erstellung. Am Compi muss die Entwicklungs-Umgebung laufen und immer noch (oder wieder) über USB mit dem Uno verbunden sein.
Wenn immer noch das Leer-Programm ersichtlich ist, ist das die richtige Voraussetzung. Andernfalls Menu File / New. Ich zeig's nochmals im nächsten Bild.
Man sieht zwei Funktionen, setup und loop. Jede Funktion hat einen Deklarations-Teil, nämlich void setup(), bzw. void loop(), sowie einen Body. Der jeweilige Body ist alles, was zwischen den beiden geschweiften Klammern steht. Die Programmiersprache, die wir hier programmieren, heisst C++. Obwohl wir hier (für einfache Anwendungen) nur mit einem Minimum an C++ konfrontiert werden, müssen wir uns an die Regeln des C++ halten.
Eine an dieser Stelle schon mal sehr wichtige Regel ist die strikte Gross- / Kleinschreibung. Also void darf nicht Void oder VOID heissen. setup darf nicht Setup heissen.
Das zweite, was man hier an dieser Stelle gut erklären kann (und muss), sind die Kommentare. Man sieht hier zwei davon, in jeder Funktion einen. Alles was auf einer Zeile hinter // geschrieben ist, wird vom Compiler (Programm-Übersetzer) im Arduino-System ignoriert. Die Kommentare sind Texte, die der Programmierer einfügt, damit der (menschliche) Leser des Programmes dieses besser versteht. Das kann jemand anderes sein, oder der Programmierer selber zu einem späteren Zeitpunkt, wenn er selbst nicht mehr weiss, was er früher verbrochen hat .
Nun werden Arduino-Befehle in die beiden Funktionen setup() und loop() eingefügt. Nach dem compilieren (übersetzen) und uploaden des Programms zum Arduino werden diese Befehle einer nach dem anderen ausgeführt.
Der Unterschied zwischen setup() und loop(): In der Funktion setup() werden die Befehle sequentiell nach dem Programm-Start (das ist automatisch nach dem Upload) einmalig ausgeführt. In der Funktion loop() werden die Befehle unmittelbar nach dem Beenden des setup() sequentiell ausgeführt. Aber wenn der Programm-Ablauf das Ende der loop() Funktion erreicht hat, beginnt er wieder von oben. Das ist der Grund, warum die Funktion loop() heisst (Schleife). Hier ist es sogar eine Endlos-Schleife, die mit dem Loopen erst am Nimmerleinstag aufhört, oder wenn man dem Arduino den Strom wegnimmt oder wenn man die Reset-Taste betätigt.
Wir fügen nun die Arduino-Befehle gemäss folgendem Bild in die beiden Funktionen ein.
Ich habe die existierenden Kommentare gelöscht, dafür meine eigenen eingebaut. Diese Kommentare erklären eigentlich alles, was es bezüglich Programm hier zu erklären gibt.
Nun müsstest du das Programm hochladen (wie schon erwähnt mit dem Rechts-Pfeil in der grünen Kopf-Zeile).
Wenn nun deine LED ziemlich schnell blinkt (zweimal ein und aus pro Sekunde), hast du die kritische Hürde geschafft und dein erstes Arduino-Programm zum Laufen gebracht. Herzliche Gratulation! Du darfst deinen Erfolg hier gern posten, dann freue ich mich mit dir.
Falls es nicht gelungen ist, besteht ein Problemchen, das es zu lösen gilt. Lies nochmals alle meine Anweisungen genau durch. Prüfe ob du alles genau so gemacht hast. Bedenke: Ein Compiler ist pingelig. Ein fehlender Strichpunkt am Ende eines Befehls kann die Ursache sein. Wenn du allein nicht weiterkommst, melde dich bei mir. Ich versuche gerne zu helfen.
Ich habe oben geschrieben, dass diese Kommentare eigentlich alles erklären, was es bezüglich Programm zu erklären gilt. Nun, das stimmt nicht ganz. Ich habe doch noch einiges zu erklären. Das mache ich aber im nächsten Beitrag und dann erkläre ich auch gleich, warum das eine dumme Lösung ist.
Halt, ich habe noch etwas vergessen: Bevor wir heute mit Arbeiten aufhören, müssen wir noch das Programm speichern. Das geht im File-Menu mit der "Save as"-Funktion. Speichere das Programm dort, wo die Entwicklungs-Umgebung es vorschlägt. Gib ihm einen coolen Namen, z.B. "Dummes Blink-Programm". Eine Datei-Endung ist nicht nötig, das macht die IDE automatisch. Mehr dazu erkläre ich später.