Metainformationen zur Seite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:schrecksekunde:led2 [2018/02/26 10:15] m.lange angelegt |
faecher:informatik:schrecksekunde:led2 [2018/03/16 21:11] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Wie man eine Leuchtdiode zum Blinken bringt ====== | ====== 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 }} | ||
+ | <note tip>Statt des rechten unteren Kabels kannst du auch den Widerstand verwenden, um den Stromkreis von der Leuchtdiode auf zur waagerechten Leitung zu schließen.</note> | ||
+ | |||
+ | 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: | ||
+ | <code cpp> | ||
+ | void setup() { | ||
+ | pinMode(2, OUTPUT); | ||
+ | digitalWrite(2, HIGH); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | <note tip>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.</note> | ||
+ | |||
+ | 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.** | ||
+ | <note important>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!</note> | ||
+ | |||
+ | 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: | ||
+ | <code cpp> | ||
+ | pinMode(2, OUTPUT); | ||
+ | </code> | ||
+ | Danach wird der Kontakt D2 eingeschaltet, was der Befehl | ||
+ | <code cpp> | ||
+ | digitalWrite(2, HIGH); | ||
+ | </code> | ||
+ | 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: | ||
+ | <code cpp> | ||
+ | void setup() { | ||
+ | pinMode(2, OUTPUT); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Der **loop**-Teil schaltet jetzt die Leuchtdiode im Wechsel ein und aus. Dafür könnte er so aussehen: | ||
+ | <code cpp> | ||
+ | void loop() { | ||
+ | digitalWrite(2, HIGH); | ||
+ | delay(1000); | ||
+ | digitalWrite(2, LOW); | ||
+ | delay(1000); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Insgesamt sieht der Quelltext also wie folgt aus: | ||
+ | <code cpp> | ||
+ | void setup() { | ||
+ | pinMode(2, OUTPUT); | ||
+ | } | ||
+ | |||
+ | |||
+ | void loop() { | ||
+ | digitalWrite(2, HIGH); | ||
+ | delay(1000); | ||
+ | digitalWrite(2, LOW); | ||
+ | delay(1000); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | 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 | ||
+ | <code cpp> | ||
+ | delay(1000); | ||
+ | </code> | ||
+ | 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]]. |