====== Wie man eine Leuchtdiode zum Blinken bringt ====== ===== Was du schon weißt ===== Was du schon weißt: * Wie der //Arduino// als Batterie funktioniert * Wie man eine Leuchtdiode mit einem Widerstand in den Stromkreis einbaut * Wie das Steckbrett funktioniert. ===== eine neue Schaltung ===== Wir haben den //Arduino// als Batterie verwendet, um eine Leuchtdiode zm Leuchten zu bringen. Aber der //Arduino// ist ein keiner Computer, der seine Kontakte je nach Bedarf ein- und ausschalten kann. Das wollen wir nutzen, um eine Leuchtdiode blinken zu lassen.\\ Im Prinzip bauen wir wieder einen Stromkreis mit dem //Arduino//, einer Leuchtdiode, einem Widerstand, dem Steckbrett und Kabel.\\ Diesmal beginnen wir aber den Stromkreis **nicht** beim Kontakt 5V, sondern bei einem schaltbaren Kontakt, etwa **D2**. Wenn du den Aufbau alleine versuchen willst, bedenke, dass * nur bei stromlosen //Arduino// gesteckt werden soll * keine Kurzschlüsse entstehen dürfen * die Leuchtdiode nur mit Widerstand in einen Stronkreis eingebaut werden darf Lasse zur Sicherheit deine Schaltung kontrollieren! Die Schaltung sollte nun etwa so aussehen: {{ :faecher:informatik:schrecksekunde:led-schalt.png }} Statt des rechten unteren Kabels kannst du auch den Widerstand verwenden, um den Stromkreis von der Leuchtdiode auf zur waagerechten Leitung zu schließen. Wenn man nun den //Arduino// an das USB-Kabel anschließt, ...\\ passiert **nichts**!\\ Das liegt daran, dass der Kontakt D2 nicht automatisch geschlossen wird. Dafür müssen wir den //Arduino// programmieren. Das Programm, in dem wir die Programme für den //Arduino// schreiben, die so genannte //Arduino-IDE//, sieht wie folgt aus: {{ :faecher:informatik:arduino:arduino-ide.png?300 }} Dort schreiben wir folgenden Quelltext hinein: void setup() { pinMode(2, OUTPUT); digitalWrite(2, HIGH); } void loop() { } Statt zu tippen, kannst du den Quelltext mit der Maus markieren, kopieren und einfügen. Lass' dir dabei helfen, wenn du nicht weißt, wie das geht. Ist der Quelltext eingefügt, so muss man nur auf mit der Maus auf den wie ein Pfeil aussehenden Knopf klicken, dann wird das Programm auf den //Arduino// gespielt und ausgeführt. **Dazu muss der //Arduino// natürlich mit dem USB-Kabel angeschlossen sein.** In einigen Fällen kann es dabei zu Fehlern kommen, die sich dadurch bemerkbar machen, dass der untere Teil der //Arduino-IDE// orangefarben wird. Melde dich in dem Fall! Wir wollen kurz den Quellcode erklären:\\ Ein Programm für den //Arduino// muss immer die zwei Teile haben, die mit **setup** bzw. **loop** gekennzeichnet sind.\\ Der **setup**-Teil, wird nur einmal zu Beginn des Progammes aufgerufen und die dort stehenden Befehle der Reihe nach aufgerufen.\\ In diesem Fall wird dem //Arduino// mitgeteilt, dass er den Kontakt D2 als Stromausgang vewenden soll/darf. Dabei wird aber das "D" weggelassen. Das macht der Befehl: pinMode(2, OUTPUT); Danach wird der Kontakt D2 eingeschaltet, was der Befehl digitalWrite(2, HIGH); erledigt. Nachdem alle Befehle des **setup**-Teils ausgeführt wurden, wird mit dem **loop**-Teil fortgefahren. In unserem Falle steht dort nichts drin!\\ Sind die Befehle des **loop**-Teils ausgeführt worden, beginnt der //Arduino// noch einmal damit, die Befehle des **loop**-Teils der Reihe nach auszuführen.\\ Daher stammt auch der Name: loop bedeutet so viel wie Kreis. Wenn alles richtig gemacht wurde, dann leuchtet die Leuchtdiode nun wieder die ganze Zeit. ===== Und jetzt das Blinken... ===== Nun verändern wir das Programm, sodass die Leuchtdiode blinkt. Der **setup**-Teil muss dafür nur noch einen Befehl enthalten: void setup() { pinMode(2, OUTPUT); } Der **loop**-Teil schaltet jetzt die Leuchtdiode im Wechsel ein und aus. Dafür könnte er so aussehen: void loop() { digitalWrite(2, HIGH); delay(1000); digitalWrite(2, LOW); delay(1000); } Insgesamt sieht der Quelltext also wie folgt aus: void setup() { pinMode(2, OUTPUT); } void loop() { digitalWrite(2, HIGH); delay(1000); digitalWrite(2, LOW); delay(1000); } Wenn du den Quelltext in die //Arduino-IDE// eingegeben und per Knopfdruck hochgelade hast (//Arduino// per USB-Kabel anschließen nicht vergessen!), dann sollte die Leuchtdiode im Wechsel eine Sekunde lang leuchten und eine Sekunde lang aus sein. Der Befehl delay(1000); sorgt dafür, dass der //Arduino// 1000 Millisekunden, also eine Sekunde lang wartet, bevor er mit dem nächsten Befehl fortfährt. ===== Ziel erreicht ===== **Herzlichen Glückwunsch! Du weißt nun, wie man mit dem //Arduino// eine Leuchtdiode ansteuert.** ===== Weitere Ideen ===== Wenn du noch Zeit hast, kannst du folgendes ausprobieren: * Verändere die Zeit, die die Leuchtdiode leuchtet oder dunkel ist. * Lasse die Leuchtdiode in einem anderen Rhythmus blinken. * Baue eine zweite Leuchtdiode (bitte mit **eigenem** Widerstand) ein. Du kannst beide gleichzeitig leuchten lassen oder genau im Wechsel. ===== Wie geht's weiter? ===== Der nächste Teil des Workshops findet sich auf der Seite [[faecher:informatik:schrecksekunde:taster|Wie man auf einen Tastendruck reagiert]].