Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

Leuchtdiode (LED)

1 - LED Schaltung am Arduino UNO testen

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

Abbildung 1 - Einen LED Schaltkreis testen

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.

2 - LED blinkt im Sekundentakt

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
  • Baue die Schaltung nach Vorlage auf.
  • Gib das Programm LED1 ein und speichere es ab.
  • Überprüfe, ob die LED im Sekundentakt aufleuchtet.
  • Erhöhe die Blinkfrequenz so lange, bis das Ein- und Ausschalten mit bloßem Auge nicht mehr wahrgenommen werden kann. Wann ist das der Fall? Notiere deine Beobachtung.

Schaltskizze und Schaltungsaufbau

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Abbildung 2  -  Schaltbild und Schaltskizze mit LED Schaltkreis an P10

Programm LED1.ino

Sketch 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.

3 - LED flasht einmal auf

Material Wie in der vorangegangenen Übung.
Aufgaben
  • Schreibe ein Programm LED2.ino, bei dem die LED an P10 nur einmal kurz aufleuchtet.
  • Gib das Programm in den Arduino Editor ein.
  • Speicher es unter dem Namen LED2.ino ab.
  • Starte das Programm und überprüfe, ob die LED einmal kurz aufleuchtet.

4 - LED blinkt 10x

Material Wie in der vorangegangenen Übung.
Aufgaben
  • Gib das Programm LED3.ino in den Editor ein, starte es und beobachte, wie die Schaltung reagiert. 
  • Versuche das Programm Zeile für Zeile zu erklären.

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.

5 - Duo-LED

Material

1x  Arduino UNO

1x  Schaltnetzteil

1x  Duo-LED

1x  Widerstand 470 Ohm (gelb-violett-braun)

1x  USB-Kabel

Aufgaben
  • Baue die Schaltung nach Abbildung 3 auf.
  • Informiere dich im Internet über den Aufbau und die Wirkungsweise einer Duo-LED.
  • Schreibe ein Programm, das eine Duo-LED folgenden Zyklus in einer Endlosschleife durchlaufen lässt: rot 2s, grün 3s danach LED aus 1s. Hilfestellung gibt der Pseudocode weiter unten.
Abbildung 3 - Schaltungsaufbau mit Duo-LED an P10 und P11

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)

6 - Countdown

Material

1x  Arduino UNO

1x  Steckernetzteil

1x  Duo-LED,

1x  gelbe LED

2x  470 Ohm Widerstand (gelb-violett-braun)

1x  USB Kabel
Aufgaben
  • Baue mit einer gelben LED und einer DUO LED eine Schaltung nach Vorlage auf, die einen Countdown von 10 Sekunden ausführt. Die DUO LED soll die ersten drei Sekunden rot aufleuchten. Danach schaltet sie auf grün um. Sobald die DUO LED auf grün umschaltet, geht die gelbe LED über einen Zeitraum von 10 Sekunden einmal pro Sekunde an und aus (Countdown läuft). Am Ende des Countdown – nach 10 Sekunden – schaltet die DUO LED auf rot zurück. Speicher das fertige Programm unter dem Namen LED3.ino ab.
  • Anschlussbelegungen: DUO-LED an P11 und P10
  • Gelbe LED an P12

Schaltskizze und Schaltungsaufbau

Abbildung 4 - Schaltungsaufbau mit Duo-LED an P10 und P11 und einer gelben LED an P12

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.

7 - Was ist eigentlich ein Tastverhältnis?

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.

8 - Dunkle Zeiten für LEDs

Aufgabe
  • Benutze die Schaltung aus Abbildung 2.
  • Verändere die Pausenzeiten für die Ein- und Ausschaltphase wie in der Tabelle angegeben.
  • Speichere das veränderte Programm unter einem neuen Namen ab und starte es.
  • Beobachte die LED genau und schreibe auf, welche Veränderung du bei der LED feststellen konntest.

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.

9 - Eine LED dimmen

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
  • Baue die Schaltung nach Abb. 2 auf.
  • Übertrage den Sketch LED3_PWM2.ino in den Editor und speichere es ab.
  • Starte den Sketch und beobachte die LED. Sie sollte ihre Helligkeit ständig verändern.
Abbildung 2 - PWM Schaltung

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.

Druckversion Druckversion | Sitemap
© Reinhard Rahner - Gettorf