Dass es Grundschüler*innen ab Klassenstufe 3 gelingt, Mikrocontroller zu programmieren, kann anhand des Projekts „Vom rollfähigen zum programmierbaren Fahrzeug“ nachvollzogen werden. Der Beitrag ist zu finden im „Begleitband 5 zum Perspektivrahmen Sachunterricht“ der GDSU, erschienen im Klinkhardt-Verlag unter ISBN 978-3-7815-2433-0. Details dieses Projekts sind auch hier ausgeführt.
In dem Projekt werden relativ teure Calliope minis (ca. 40 € pro Stück) als Mikrocontroller eingesetzt, weil deren Programmierung relativ einfach erscheint.
Mit einem Arduino-Clone und ergänzender Hardware kann viel Geld gespart werden, allerdings muss in Kauf genommen werden, dass die Programmierung textgestützt erfolgen muss.
Hier eine Zusammenstellung der benötigten Bauteile. Die elektrischen und elektronischen sind mit Preisen vom Jahresende 2025 versehen, um den Unterschied zur Anschaffung eines Calliope mini ermessen zu können (Bezugsquelle).
Für ein programmierbares Fahrzeug werden die unten gezeigten Teile benötigt mit Gesamtkosten von etwa 15 €. Mit Heißkleber können sie leicht auf dem Tragbrettchen befestigt werden.

Das Tragbrettchen ist 9 x 14 cm groß. Angedacht ist 6 mm starkes Sperrholz, das von vielen Baumärkten vorgehalten und zugeschnitten wird. Feste Pappe genügt aber auch. Die Teile werden mit Heißkleber fixiert. Zur Stromversorgung dient ein 9V Batterieblock. Da er austauschbar bleiben muss, kann doppelseitiges Klebeband o. ä ein Abrutschen verhindern.
Arduino Nano und Motorentreiber können einfach ins Breadboard gesteckt werden. Elektrische Verbindungen werden mit Jumperkabeln hergestellt.

Die Abbildung unten links zeigt die nötigen Kabelverbindungen. Rechts davon das dazu passende Anschlussschema.

Die Löcher des Breadboards, in die Stifte des des Arduinos und des Motorentreibers passen, bzw. in die die Jumperkabel gesteckt werden, sind durch Kontaktbleche im Innern auf in der unten dargestellten Weise miteinander verbunden.

Die Bleche sind unterseits von einem doppelseitigen Klebeband verdeckt. Sie können einzeln herausgelöst werden können. Der Teil in der Mitte verdeutlicht die Anordnung der Bleche und wie lang sie sind: Zwei lange Paare an den Seiten des Breadbords, quer dazu in zwei Reihen viele kurze Bleche, die immer jeweils 5 Löcher miteinander verbinden.
Mit diesem Wissen kann nachvollzogen werden, dass sowohl beim Nano als auch beim Motorentreiber alle Kontakte elektrisch voneinander getrennt sind. Für die gewünschten Funktionen müssen sie über Leitungsdrähte miteinander verbunden werden.
Beim Hantieren des Fahrzeugs können hochstehende Jumperkabel Probleme machen: Sie werden entweder aus den Löchern gezogen oder die Kontaktenden brechen ab, wenn die Drähte zu oft umgebogen werden. Für eine häufige Verwendung der Fahrzeuge empfiehlt es sich, die Sache von vornherein stabil zu machen, indem die Kabel flach an das Breadbord angeschmiegt werden.
Um das zu realisieren, müssen die Isolierhülsen entfernt und die Enden – wie unten gezeigt – umgeknickt werden. Mit etwas Heißkleber o. ä. kann sichergestellt werden, dass sich die blanken Teile auf dem Breadboard nicht berühren.

Zum Programmieren wird ein Editor benötigt, die Arduino IDE. Sie ist kostenfrei und kann zur Installation auf dem Rechner hier heruntergeladen werden. Empfohlen sei die „Legacy IDE (1.8.19)“ auf der Downloadseite weiter unten.
Die IDE ähnelt einer Textverarbeitung, unterscheidet sich aber auch von ihr:

/* Dies ist ein Beispiel, an dem nachvollzogen werden soll,
wie sich die Arduino IDE von einem Textverarbeitungs-
programm unterscheidet. Dass diese Textzeilen kein Teil
der Programmierung sein sollen, ist durch Schrägstrich mit
Stern am Anfang und Stern mit Schrägstrich am Ende festgelegt.
Außerhalb dieser Markierungen wird Textcode automatisch
erkannt und farblich hervorgehoben. Um Erklärungen in der
gleichen Zeile des Programmcodes zu platzieren, müssen dem
Erklärtext zwei Schrägstriche vorangestellt werden. */
void setup(){
}
void loop(){
analogWrite(13,150); //mit diesem und dem Befehl darunter
delay(1000); //wird die LED auf dem Nano für 1 Sekunde an-
analogWrite(13,0); //und mit diesem und dem Befehl darunter
delay(1000); //für 1 Sekunde ausgeschaltet
}
/* Die LED blinkt also im Sekundentakt*/
Um das den Schüler*innen zu vermitteln, sollte ihnen der oben links angezeigten Text beispielsweise in einem Textverarbeitungsprogramm vorgehalten werden. Aufgabe soll sein, ihn durch „Copy & Paste“ in die Arduino IDE einzufügen. Dabei sind sowohl das Kopierverfahren bedeutsam als auch der Umstand, dass die IDE den Text analysiert und unter anderem darin enthaltenen Code farbig hervorhebt.

Auf das „Copy & Paste“ Verfahrung sollte vertieft eingegangen werden, um damit einfache „Sketche“ erstellen zu können, die – wie in der Abbildung rechts gezeigt – aus mehrfach wiederholten Befehlen bestehen. Die Befehlsfolge lässt ein Fahrzeug zwei Sekunden lang geradeaus fahren, kreiseln und schließlich stoppen.
Der eine Motor wird über die Arduino-Pins 6 und 9, der andere über 10 und 11 angesteuert. Damit ein Motor anläuft, muss einer der zwei Pins auf „0“ gesetzt, der andere mit einem Zahlwert (hier 150) versehen sein. Werden beide Pins auf „0“ gesetzt, bleibt der Motor stehen. Das zeitliche Nacheinander wird über „delay“ geregelt.
In der IDE sieht das Programm wie folgt aus:

Um das Programm auf den Mikrocontroller zu übertragen, muss – wie die Abbildung unten zeigt – eine Verbindung zwischen dem Rechner, auf dem die IDE läuft, und dem Mikrocontroller hergestellt werden. Dazu dient ein USB-Kabel.

Steht die Verbindung, genügt ein Klick auf den Pfeil in der Kopfzeile der IDE.
Achtung! Befindet sich der Nano bei der Programmierung auf dem fertig montierten Fahrzeug, sollte es aufgebockt werden. Die Motoren springen nämlich sofort nach Übertragung des Codes an.
Der Zusammenhang zwischen Programmcode und Fahrzeugbewegungen muss den Schüler*innen einsichtig gemacht werden. Mögliche Fragen sind:
- Mit welchem Befehl wird Zugriff auf die Motorpins genommen?
- Wie viele Pins müssen programmiert werden, um einen Motor zum Laufen zu bringen?
- Was tut sich, wenn ein Motorpin auf „0“ und der andere auf „150“ gesetzt wird?
- Wie kann man herausfinden, welcher Motor von welchen Pins gesteuert wird?
- Wie kann ein Motor gestoppt werden?
- Wie reagiert ein Fahrzeug, wenn nur ein Motor läuft?
- Wie reagiert ein Fahrzeug, wenn ein Motor links-, der andere rechtsherum dreht?
- …
Solche Fragen sollten mit gezielten Programmieraufgaben flankiert werden.
Das Fahrzeug soll 2 Sekunden geradeaus fahren, dann …
- … rechts abbiegenund nach weiten 2 Sekunden stoppen stoppen.
- … umkehren und etwa auf der Höhe der Startlinie stoppen.
- …
Wichtig ist, nur Aufgaben zu stellen, die mit den bekannten Befehlen lösbar sind. Copy & Paste soll das Erstellen erleichtern. Einzig die Zahlen müssen den Erfordernissen angepasst werden. „Shortcuts“ (siehe unten) sind dabei hilfreich.
