Material |
1x Arduino UNO 1x LED rot 1x 470 W Widerstand (gelb-violett-braun) 1x USB Verbindungskabel |
Aufgabe | Baue die Schaltung nach Abbildung 1 auf und überprüfe die LED auf Funktionstüchtigkeit. Verbinde den Widerstand einmal mit GND und in einem zweiten Versuch mit dem Anschluss 5V. Notiere deine Beobachtungen. |
Schaltskizze und Schaltungsaufbau
In dieser Übung haben wir gesehen, dass sich eine LED durch unterschiedliches Verkabeln ein- und ausschalten lässt. Dazu musste die Verbindung zwischen LED und der Spannungsversorgung jeweils neu gesteckt werden.
In der folgenden Schaltung übergeben wir das mechanische Umstecken des Drahtes an den Arduino. Er soll elektronisch dafür sorgen, dass die LED ein- und ausgeschaltet wird und uns entlasten, jedesmal einen oder mehrere Drähte umstecken zu müssen. Wie das geht, zeigt die folgende Schaltung.
Etwas Hintergrundwissen zu Leuchtdioden findest du im Register BASIC Stamp (BS) im Kapitel über Leuchtdioden und im Register Propeller Kontroller im Kapitel Blinklichter.
Material |
1x Arduino Uno 1x Steckernetzteil 1x LED 1x 470 Ohm Widerstand (gelb-violett-braun) 1x USB-Verbindungskabel |
Aufgaben |
|
Schaltskizze und Schaltungsaufbau
Programm LED1.ino
Wie arbeitet Programm LED1.ino?
In der Methode void setup() werden die Ein- und Ausgänge definiert. P10 ist der Port, der die LED mit dem Arduino verbindet.
Die Methode loop() startet mit dem Befehl
digitalWrite(10,1);
und weist damit dem Ausgang P10, der mit der Anode der LED verbunden ist, den Wert 1 zu. Damit ist sie in Durchlassrichtung geschaltet und fängt an zu leuchten.
delay(500)
lässt den Arduino für 500ms verschnaufen bis dann mit
digitalWrite(10,0);
P10 auf 0 gesetzt wird. Die LED ist nicht mehr in Durchlassrichtung gepolt und damit erlischt sie.
Der Arduino gönnt sich eine weitere Pause von 500ms. Anschließend geht alles wieder von vorne los.
HIGH oder 1 und LOW oder 0
Statt 1 im Argument des Befehls digitalWrite erkennt der Compiler auch das Schlüsselwort HIGH; statt 0 entsprechend auch LOW. Probiere es aus.
Programm oder Sketch?
Bei Arduino werden Programm als Sketch bezeichnet. Ich schließe mich dieser Bezeichnung nicht an, um nicht neue Begriffe für Altbekanntes einzuführen. Das belastet nur unnötig.
Material | Wie in der vorangegangenen Übung. |
Aufgaben |
|
Material | Wie in der vorangegangenen Übung. |
Aufgaben |
|
Sketch LED3.ino
Wie arbeitet Programm LED3.ino?
Erinnern wir uns, die Methode loop ist eine Endlosschleife, die immer wieder durchlaufen, während void setup nur einmal, beim Start des Programms, abgearbeitet wird. Darin liegt die Lösung für die anstehende Aufgabe.
Nach der Festlegung von Pin 10 als Ausgang, wird eine FOR...NEXT Schleife aufgerufen, die genau 10 mal durchlaufen wird. Als Zähler ist die Variable i eingesetzt, mit einem Startwert von 1; bei jedem Durchlauf wird ihr Wert um 1 erhöht. Die Schleife wird so lange wiederholt, bis der Wert von i größer als 10 ist (Abbruchbedingung).
Anschließend macht das Programm weiter in der Methode loop - da steht nichts drin und da arbeitet sich der Prozessor so lange ab, bis der Stecker am Arduino gezogen wird.
Material |
1x Arduino UNO 1x Schaltnetzteil 1x Duo-LED 1x Widerstand 470 Ohm (gelb-violett-braun) 1x USB-Kabel |
Aufgaben |
|
Pseudocode
Lege alle Ein- und Ausgabeports in der Methode setup() fest.
Alle Wiederholungsvorgänge platziere in der Methode loop().
Setze Pin 10 der LED auf 0
Setze Pin 11 der LED auf 1 (Durchlassrichtung für rote LED)
Pause von 2 Sekunden
Setze Pin 10 der LED auf 1
Setze Pin 11 der LED auf 0 (Durchlassrichtung für grüne LED)
Pause von 5 Sekunden
Setze Pin 10 der LED auf 0 (beide LED in Sperrichtung)
Material |
1x Arduino UNO 1x Steckernetzteil 1x Duo-LED, 1x gelbe LED 2x 470 Ohm Widerstand (gelb-violett-braun) 1x USB Kabel |
Aufgaben |
|
Schaltskizze und Schaltungsaufbau
Pseudocode
Bei der Programmentwicklung soll dir der Pseudocode eine Hilfe sein.
Lege alle Ein- und Ausgabeports in der Methode setup() fest.
Alle Wiederholungsvorgänge platziere in der Methode loop().
Setze Pin 10 der DUO-LED auf 0
Setze Pin 11 der DUO-LED auf 1
Pause von 3 Sekunden
Setze Pin 10 der DUO-LED auf 1
Setze Pin 11 der DUO-LED auf 0
Wiederhole 10 mal
Setze Pin 12 der LED gelb auf 1
Pause von 0,5 Sekunden
Setze Pin 12 der LED gelb auf 0
Pause von 0,5 Sekunden
Eine mögliche Programmumsetzung siehst du im folgenden Bild. Sie kann von deinem Programm abweichen. Hauptsache, die LEDs machen das, was von ihnen in der Aufgabenstellung verlangt wurde.
In den vorherigen Übungen waren die Ein- und Auszeiten der LED ziemlich lang und ihre jeweiligen Zeitanteile gleich lang.
Was passiert eigentlich, wenn Ein- und Ausschaltzeiten einer LED deutlich voneinander abweichen und diese Wechsel sehr schnell erfolgen? Das werden wir jetzt untersuchen. Bevor das geschieht, hast du vielleicht schon eine Vermutung?
In den beiden folgenden Darstellungen sind die Ein- und Ausschaltzeiten für zwei LEDs dargestellt. Die obere Darstellung zeigt deutlich, dass die LED fast dreimal so lange eingeschaltet ist als die in der unteren Darstellung.
Das Zahlenverhältnis aus tein zur Periodenzeit T wird auch Tastverhältnis genannt. Es ist ein reiner Zahlenwert der zwischen 0 und 1 liegt. Wir werden gleich bei der Beschreibung des Befehls analogWrite sehen, dass das Tastverhältnis auch mit einem Zahlenbereich zwischen 0 und 255 angegeben werden kann.
Die Veränderung von ON und OFF Zeiten bei konstanter Periodendauer wird auch als Puls-Weiten-Modulation (PWM) bezeichnet. In den Abschnitten BASIC Stamp (BS) - Standardservo und Propeller Kontroller - Servos erfährst du mehr darüber.
Aufgabe |
|
Meine Beobachtungen
Die LED verhält sich in dieser Übung so, als ob sie sich dimmen lässt. Bei einem Tasterverhältnis von 0,5 leuchtet die LED relativ hell, bei 0,95 noch heller, aber möglicherweise erkennen wir den Unterschied mit bloßem Auge nur schwer und bei 0,05 ist nur noch ein schwaches Leuchten zu erkenn.
Wir wissen jetzt, was Puls-Weiten-Modulation bedeutet und werden diese auf eine LED anwenden. Dazu stellt die Sprache Arduino-C den Befehl analogWrite bereit.
analogWrite()
Syntax
analogWrite(pin, wert)
Parameter
pin: PWM Output-Pin am Arduino wert: int wert des Tastverhältnisses liegt zwischen 0 (immer ON) bis 255 (immer OFF)
Bemerkung
Das PWM Signal hat eine Frequenz von ca. 490Hz, außer an Pin5 und 6 des UNO, dort liegen ca. 980Hz an. Die Funktion kann nur über die Pin eingesetzt werden, die mit einer Tilde (~) gekennzeichnet sind. Bei einem UNO sind das P3, 5, 6, 9, 10 und 11.
Aufgabe |
|
Das Programm LED3_PWM2.ino
Wie arbeitet das Programm LED3PWM2.ino?
Im fixen Teil des Programms wird der Variablen ledPin der Wert 11 zugewiesen; die benutzte LED ist an P11~ angeschlossen.
Im Methodenblock setup wird P11~ auf OUTPUT gesetzt und anschließend die Methode loop aufgerufen.
Die for...- Schleife ist neu. Eine Kurzbeschreibung findest du unter Mikrocontroller - Arduino UNO.