Im vorangehenden Posten hast du den analogWrite-Befehl kennengelernt. Diesen wollen wir in diesem Posten etwas vertiefen, indem wir eine LED pulsieren lassen (LED wird langsam heller und wieder langsam dunkler).
Ausserdem wirst du die äusserst wichtige Abfrage-Funktion kennenlernen, ohne die im Programmieren fast nichts laufen würde
Du kannst eine LED pulsieren lassen und kannst mit Abfragen arbeiten.
Bevor wir zum Programmieren kommen, lies unbedingt diese Einführung!
Abfrage (IF und ELSE)
Die Abfrage ist für dich nichts Neues. In deinem Alltag machst du sie die ganze Zeit. Du fragst dich am Morgen zum Beispiel "ist es schon Zeit?" Wenn ja, dann musst du unbedingt aufbrechen, sonst kannst du noch etwas chillen.
Genau gleich ist es auch beim Programmieren. In diesem Posten werden wir eine LED heller und dunkler werden lassen. Dafür brauchen wir den analogWrite-Befehl. Wir starten beim Wert 0 (0V) und werden immer heller. Wenn wir einmal das Maximum von 255 (5V) erreicht haben, dann dürfen wir den Wert nicht mehr vergrössern, sondern müssen ihn von nun an verringern.
Und dies passiert mit der sogenannten IF-Abfrage ("IF" ist englisch und heisst auf Deutsch: "Wenn"). Du wirst weiter unten sehen, wie dies gemeint ist.
Aufbau
Der Aufbau ist genau gleich wie beim Posten von LED1:
Lade folgenden Sketch auf deinen Arduino:
Ok, das ist jetzt vielleicht etwas zu schnell gegangen. Schauen wir den Sketch noch einmal genauer an!
Die Variablen, welche ganz zu beginn definiert werden, brauchen wir weiter unten im Sketch.
Der Setup sollte dir nun mittlerweile klar sein.
Und nun zum Loop. Zu Beginn lassen wir die LED leuchten und zwar mit dem Wert der Variable "helligkeit". Dieser ist ja zu Beginn = 0 und deshalb wird die LED noch nicht leuchten.
Danach wird die Variable verändert. Und zwar wird zum vorherigen Wert der Wert von der Variablen "Schritt" addiert (also +5).
Dann kommen wir zur ominösen IF-Abfrage.
Eigentlich ist die viel einfacher, als sie ausschaut. Es heisst so viel wie: Wenn die Helligkeit ein Maximum erreicht hat, dann soll sie nicht mehr länger 5 addieren, sonder subtrahieren. Oder wenn die Helligkeit ein Minimum erreicht hat, soll sie nicht mehr länger 5 subtrahieren, sondern wieder 5 addieren.
Damit garantieren wir, dass der Wert von "helligkeit" nie grösser als 255 und nie kleiner als 0 wird.
Aufgabe:
Spiele etwas mit dem Sketch herum. Verändere einige Variablen und untersuche, was dann genau passiert.
In den Vertiefungsaufgaben wollen wir dem Sketch etwas auf den Grund gehen. Bildet dafür Zweiergruppen.
Vertiefungsaufgabe 1:
Untersucht den Sketch. Manipuliert und verändert genau gleich wie bei der obigen Aufgabe EIN bestimmtes Element vom Sketch. Untersucht, was nun passiert und versucht dies zu erklären.
Wiederholt dies mit ein paar anderen Elementen des Sketchs. (z.B. könnt ihr ja mal schauen, was passiert, wenn man die ganze IF-Abfrage löscht...).
Vertiefungsaufgabe 2:
Verwendet nun einen anderen Pin als Pin 3. Denke daran, du der Pin braucht eine PWM-Funktion.
Vertiefungsaufgabe 3:
Versucht nun, die LED etwas schneller oder langsamer pulsieren zu lassen. Achtung: es gibt verschiedene Wege, dies zu erreichen. Findet ihr sie?
Vertiefungsaufgabe 4:
Die LED soll nun ganz zu Beginn nicht bei 0 beginnen und heller werden, sondern bei 255 beginnen und dunkler werden.
Gratuliere! In diesem Posten hast du sehr viel über das Programmieren kennen gelernt! Alles, was du hier gelernt hast, wirst du in späteren Posten wieder gebrauchen.
Bildet Zweier- oder Dreiergruppen
Hier kommt eine Erweiterungsaufgabe für echte Tüftler:
Lasse zwei LED in die entgegengesetzte Richtung pulsieren. Wenn die eine LED heller wird, dann wird die andere dunkler.
Tipp: Definiere neue Variablen (wie z.b. "helligkeit1" und "helligkeit2")