Das erste Blinken
In diesem Kapitel schreibst du dein erstes eigenes Programm und bringst damit eine LED zum Blinken. Dazu wird die LED mit ihrer Anode (längerer Anschluss) nicht mehr fest an 5 V oder 3,3 V angeschlossen, sondern an einen Pin des Mikrocontrollers (in der Abbildung ist es Pin 13). Das unten stehende Programm schaltet diesen Pin dann abwechselnd an (5 V) und aus (0 V) - man sagt dazu auch „HIGH“ und „LOW“. Wenn er „HIGH“ ist, fließt Elektrizität aus dem Pin durch die LED und den Widerstand zum Minuspol (GND). Wenn er LOW ist, fließt nichts… und die Leuchtdiode ist aus.
So sieht das Programm dazu aus:
Aufgabe 4.1
Aufgabe 4.2
Ab welcher Dauer der Pausen kann dein Auge das Blinken nicht mehr erkennen? Man sagt, Menschen hätten nur eine Erkennungsfrequenz von etwa 20 Hertz (Hz), könnten also nur etwa 20 Bilder pro Sekunde erkennen. Passt die von die gemessene Pausendauer zu diesem Wert?
Aufgabe 4.3
Wie andere hohe Masten müssen auch Windkraftanlagen ein rotes Blinklicht an ihrer Spitze haben, um Flugzeuge zu warnen. Da die Spitze des Mastes bei einem Windrad aber nicht wirklich die Spitze der Gefahrenzone ist, blinkt ihr rotes Licht in einem besonderen Rhythmus: 1 Sekunde an, dann 0,5 Sekunden aus, dann wieder eine Sekunde an, dann aber 1,5 Sekunden aus.
Programmiere so ein Dauerblinklicht und übertrage das Programm. Läuft es?
Aufgabe 4.4
Info: Wie findet man Fehler?
Die Entwicklungsumgebung zeigt dir teilweise auf deutsch und teilweise auf englisch an, wo sie einen Fehler vermutet. Hier einige häufige Fehler:
Problem beim Hochladen
Wahrscheinlich hast du nicht die richtige Schnittstelle ausgewählt. Das Hochladen schlägt auch fehl, wenn du an Pin 0 und/oder Pin 1 etwas angeschlossen hast, da diese beiden Datenleitungen für die USB Kommunikation verwendet werden.
expected ‘;‘ before…
Auf deutsch: ich erwarte einen Strichpunkt vor der Zeile, die markiert ist. Diese Strichpunkte vergisst man am Anfang oft.
expected ‘)‘ before…
Es fehlt eine Klammer oder du hast einen Strichpunkt an Stelle eines Kommas in einer Klammer gesetzt.
a function definition is…
Prüfe die geschweiften Klammern.
..was not declared in this scope…
Der Compiler ist auf etwas Unbekanntes gestoßen. Vielleicht hast du dich bei einer Anweisung vertippt - oder ein Anweisung vergessen.
Aufgabe 4.5
Bei einem dieser Programme blinkt die LED nur ein Mal, beim anderen leuchtet sie nur dauerhaft. Welches ist welches? Und warum ist das so?
Aufgabe 4.6
Aufgabe 4.7
Lege dir in deinem Protokoll eine Seite mit einer Befehlsübersicht an, in die du alle etwa 30 Anweisungen und Funktionen des Arduino mit einem Beispiel eintragen kannst. Bislang sind es nur fünf. Kannst du sie und ihre exakte Schreibweise schon auswendig?
Aufgabe 4.9: Miniprojekt
baue ein Lauflicht/Eine Lichtorgel, mit mindestens 5 LEDs, die verschiedene Leuchtmuster ablaufen lässt.
- Mache einen Projektplan (Lastenheft) - überlege dir also vorher was das Lauflicht machen soll und schreibe das auch auf.
- Setze das Projekt dann um. Halte Probleme und Lösungen fest.
- Kontrolliere, ob dein Lastenheft wirklich erfüllt ist.
Tipp: Du kannst es schaffen, alle LEDs des Lauflichts hinter einen Schutzwiderstand1) zu schalten - wie?