LEDs finden sich heute in so vielen Geräten des täglichen Bedarfes, dass wir sie wahrscheinlich gar nicht mehr bewusst wahrnehmen.
Die Bauformen von LEDs fallen sehr unterschiedlich aus. Von rund über eckig von konisch zulaufend bis zylinderförmig, von groß bis sehr klein von matt bis klar ist alles vertreten.
Eine LED verfügt über zwei Anschlüsse, die sogenannten Elektroden. Eine Elektrode bei einer LED ist immer länger als die andere. Die längere
Elektrode wird als Anode, die kürzere als Kathode bezeichnet.
Eine besondere Eigenschaft jeder Diode ist, dass sie den elektrischen Strom nur in einer Richtung hindurchlässt; sie wirkt wie ein Ventil. Dies wird im Schaltsymbol durch den Richtungspfeil
angedeutet; der Strom fließt in Richtung des Pfeiles, von der Anode (+) zur Kathode ( -).
Anode: längere Elektrode
Kathode: kürzere Elektrode
Auf der Kathodenseite ist der runde Leuchtkörper der LED abgeflacht.
Um eine LED zum Leuchten zu bringen, legt man an ihre Elektroden eine Spannung UF an, die, je nach LED-Typ, zwischen 1,6V und 2,9V beträgt. Diesen Wert nennt man auch Durchflussspannung UF. Für jede Diode lässt sich der UF-Wert dem zugehörigen Datenblatt entnehmen.
Der Widerstandswert von Kohleschichtwiderstände ist durch Farbringe codiert. Die Größe des Widerstandskörpers ist ein Maß für seine elektrische Belastbarkeit: je
größer der zylindrische Körper, desto höher die Belastbarkeit oder der Leistungswert. Er wird in der Einheit Watt (W) angegeben.
Die Farbcodierung kann über eine Farbtabelle entschlüsselt werden.
Jeder Widerstand besitzt einen Wert, der ein Maß dafür ist, wie stark der Stromfluss begrenzt wird. Die Widerstandseinheit ist das Ohm und wird mit dem griechischen Buchstaben Omega abgekürzt. In dieser Lektion werden wir als
LED-Vorwiderstand vornehmlich mit einem 470 Ohm oder 220 Ohm Widerstand arbeiten.
Die folgende Abbildung zeigt eine Ausführungsform der von uns benutzten Widerstände (links), während im rechten Teil das
Schaltsymbol zu sehen ist.
Abbildung 4 - Ohmsche Widerstände mit Farbcodierung (links), Schaltzeichen: Widerstand (rechts)
Wenn über einer roten LED 1,6 Volt abfallen müssen und insgesamt 5 Volt zur Verfügung stehen,
bleiben für den Vorwiderstand noch 3,4 Volt übrig. Durch die gesamte Schaltung fließt ein Strom von 10 mA ... 20 mA.
- Gegeben: Ug = 5 Volt, UF = 1,6 Volt, Igesamt = 15
mA.
Zur Berechnung wird das Ohmsche Gesetz benötigt.
Sind zwei der drei Größen U, R und I bekannt, lässt sich die dritte immer berechnen. Die
Dreiecksform des Ohmschen Gesetzes ist für diejenigen, die Schwierigkeiten bei der Umstellung von Rechentermen haben, vielleicht einfacher zu
handhaben, weil aus der Grafik direkt der Gleichungsterm ablesbar ist.
Man wählt die gesuchte Größe (z. B. I); sie lässt sich als Bruch
aus U und R darstellen, da in diesem Fall im Dreieck das U "über" dem R steht und kann schreiben: I = U/R.
Ist U gesucht, dann sind R und I im Dreieck auf gleicher Höhe;
es gilt U = R * I.
Wenn die Durchflussspannung UF bei einer LEDrot
1,6 Volt beträgt und eine Durchflussstromstärke IF von 10 ... 20 mA vorliegen soll,
errechnet sich der Vorwiderstand über das Ohmsche Gesetz.
Abbildung 5
Bei einem angenommenen Stromfluss von IF = 10 ... 20 mA durch eine rote LED wird bei einer Betriebsspannung von U = 5V über dem Vorwiderstand eine Spannung von 3,4 V abfallen müssen.
Nach dem Ohmschen Gesetz ergibt sich für den Widerstandswert R = 3,4V / 10 ... 20mA = 0,34 ... 0,17 kOhm = 340 ...170 Ohm. Ich habe nur 470 Ohm und 220 Ohm Widerstände in der Bastelbox und entscheide
mich für einen 220 Ohm Widerstand. In diesem Fall wird sich IF bei 15mA einstellen. Der 470 Ohm Widerstand ist möglicherweise zu hoch, als das die LED durchschalten kann.
Eine rote LED mit 220 Ohm Vorwiderstand wird an PB.2 des Controllers ATtiny13A angeschlossen und
über ein Programm im Sekundentakt zum Blinken gebracht.
Das Programm wird vorher compiliert (übersetzt) und anschließend in den Speicher des Controllers übertragen.
Sekundenblinker |
Material |
- 1x Steckbrett
- 1x Batterie-Pack (3x AA)
- 1x Nullkraftsockel
- 1x ATtiny13A
- 1x LED
- 1x Widerstand, 220 Ohm
- diverse Steckdrähte
|
Aufgaben |
Eine LED soll ...
- im Sekundentakt blinken (led01.bas).
- einmal flashen (led02.bas).
- 10x hintereinander im Sekundentakt an- und ausgehen (led03.bas).
- Baue die Schaltung auf.
- Starte das Programm BASCOM.
- Übertrage das Programm led0x.bas in den BASCOM Editor und speichere es anschließend ab.
- Compiliere das Programm mit F7. Wenn kein Fehler angezeigt wird, gehe zum nächsten Schritt.
- Brenne das Programm in den ATtiny13A.
- Nimm den Controller aus dem Nullkraftsockel und platziere ihn in der auf dem Steckbrett aufgebauten Schaltung. Schließe die
Spannungsversorgung an.
- Überprüfe, ob die Aufgabenstellung erfüllt ist und die LED im Sekundentakt blinkt. Nimm als Nachweisgerät gegebenenfalls auch ein
USB-Oszilloskop zu Hilfe, das über PB.2 und GND angeschlossen wird.
|
Setze den Controller seitenrichtig in den Nullkraftsockel des Programmers und verbinde ihn über USB-Kabel mit einem PC.
Über Programmieren - Zum Chip senden - Programmieren brenne das Programm in den Flash-Speicher des Controllers.
Schaltskizze zum Sekundenblinker
Wie arbeitet das Programm led01.bas?
Zeile 16
An PORTB.2 ist die LED mit Vorwiderstand angeschlossen. Um das Programm lesbarer zu
machen, wird dem Port der Aliasname Led gegeben.
Zeile 17
Mit
- Config Led = 1 oder Config Led = output
wird PORTB.2 als Ausgang geschaltet.
Zeile 18
setzt PB.2 auf HIGH oder 1. Damit kann ein Strom durch den Vorwiderstand und die LED zum Minuspol (GND) fließen. Die LED
geht an.
Zeilen 20 - 23
In der Endlosschleife Do ...
Loop stehen zwei Befehle.
schaltet PB.2 auf 0, wenn er vorher auf 1 war oder auf 1, wenn er vorher auf 0 war.
verzögert die Arbeit des Mikrocontrollers um 500 ms = 0,5s mit Nichtstun. Anschließend springt er zurück in Programmzeile
21 und schaltet die LED wieder um.
Eine rote LED mit 220 Ohm Vorwiderstand an PB2 des Controllers ATtiny13A leuchtet einmal kurz
auf.
Während des Programmentwurfes wird mit Hilfe des Simulators der BASCOM-IDE (integrierte Entwicklungsumgebung) das fehlerfreie Arbeiten des Programmes überprüft.
Schaltskizze zum Sekundenblinker
Schaltskizze und Programmaufbau können aus Übung 1 übernommen werden. Das neue Programm sollte unter dem Namen
led02.bas abgespeichert werden.
Wie arbeitet das Programm led02.bas?
Zeile 15 - 17
Die Programmzeilen entsprechen denen aus der Übung 1. Einziger Unterschied: in Zeile 17 wird die Led auf 0 (LOW) gesetzt;
sie ist aus.
Zeilen 19 - 24
In der Endlosschleife Do ...
Loop stehen vier Befehle.
verzögert die Arbeit des Mikrocontrollers um 5s mit Nichtstun. Die LED ist aus.
schaltet PB.2 auf 1. Die LED geht für eine kurze Zeit von 100µs an.
- Waitms 1
verzögert die Arbeit des Mikrocontrollers um 1 ms = 0,001s mit Nichtstun.
- Led = 0
schaltet PB.2 auf 0; die LED geht aus.
Anschließend Rücksprung in Programmzeile 19.
- Über Optionen - Simulator wird das Feld Run Simulator after Compilation aktiviert.
- Mit F7 (Compilieren) wird das fertige Programm compiliert und anschließend im Simulator aktiviert.
- Wird der Schalter nicht aktiviert (Voreinstellung), gelangt man über F2 (Simulate Program) oder das
rote Controller Icon zum Simulator.
Vor dem Aufruf des Simulators sollten alle Pausenbefehle auskommentiert sein, um den reinen Programmablauf überprüfen zu können. Setze dazu in den Programmzeilen 20
und 22 vor die Befehle Wait 5 und Waitms 1 das Zeichen '
(Apostroph).
Abbildung 6 - Auskommentierte Programmzeilen sind grün unterlegt.
Compiliere mit F7
das fertiggestellte Programm. F2 startet den Simulator. Die Schalter Hardware Emulation und Display IO Register in der Icon-Zeile des AVR Simulators sollten aktiviert sein.
Abbildung 7 - AVR Simulator mit Hardware Simulation. Quellcode (links), IO Registerauszug (Mitte), Hardware Simulation (rechts)
Mit jedem Tastendruck von F8 wird eine Programmzeile abgearbeitet; Kommentarzeilen werden
übersprungen.
Die gelben Punkte links neben den Zeilennummern markieren ausführbaren Programmcode; es sind die Zeilen, zu denen mit jedem Tastendruck von F8 weiter
vorangeschritten wird.
In Zeile 16 wird Portb.2 auf 1 gesetzt. 2x F8 drücken bringt den Zeiger in Zeile 17.
Gleichzeitig erscheint im IO-Registerfenster DDRB 04. Portb.2 auf 1 setzen heißt, dass das DDRB-Register (Datenrichtungs-Register) an Bitposition 2 auf 1 (Ausgang) gesetzt wird.
Im 2-er System (Binärsystem) entspricht der Zahl 0b00000100 die Dezimalzahl 4 und die wird im IO Register DDRB mit
04 rot angezeigt.
Mit einem 2-fachen Tastendruck auf F8 wechselt der Zeiger über Zeile 21 (LED einschalten) in Zeile 22; im IO Register ist jetzt der Wert 04 im Register PORTB eingetragen, da in Zeile 21 PORTB.2 auf 1 gesetzt wurde.
Die eingeschaltete LED wird in der Hardware-Simulation an Bitposition 2 angezeigt.
Mit jedem weiteren Tastendruck von F8 rückt der Zeiger eine Programmzeile weiter; die Abläufe in den angesprochenen Registern DDRB.2 und PORTB.2 an der Bitposition 2 lassen sich auf diese Weise schrittweise verfolgen. Die Reaktion am Ausgang PORTB.2 kann an der LED im Hardware Simulator sichtbar gemacht werden.
Eine rote LED mit 220 Ohm Vorwiderstand an PB2 des Controllers ATtiny13A blinkt 10x im Sekundentakt
auf.
Während des Programmentwurfes wird mit Hilfe des Simulators der BASCOM-IDE (integrierte Entwicklungsumgebung) das fehlerfreie Arbeiten des Programmes überprüft.
Schaltskizze zum 3x Signalblinker
Schaltskizze und Programmaufbau können aus Übung 1 übernommen werden. Das neue Programm sollte unter dem Namen
led03.bas abgespeichert werden.
Wie arbeitet das Programm led03.bas?
Zeile 16
Die Variable N wird als Integer-Variable definiert. Jede Variable in einem Programm muss am Anfang definiert
werden.
Zeile 18 - 20
wurde in Übung 1 bereits besprochen.
Zeile 22 - 27
Neu ist die Schleife
Die Laufvariable N startet bei 1 und wird nach jedem Durchlauf um den Wert 1 erhöht, bis sie
einen Wert erreicht hat, der größer ist als 10. Dann fährt das Programm in der Zeile fort, die auf Next folgt. Innerhalb der Schleife stehen vier Befehle. Die LED an PortB.2 wird eingeschaltet (Zeile
23), 500 ms gewartet und anschließend wieder ausgeschaltet (Zeile 25) mit anschließender Pause von ebenfalls 500 ms.
Nach 10 Durchläufen ist das Programm in Zeile 29 beendet.
Eine DUO-LED mit 220 Ohm Vorwiderstand an PB.0 und PB.1 leuchtet für
3s rot auf und schaltet dann auf grün um. In diesem Moment beginnt eine gelbe LED an PB.2 im Sekundentakt 10s lang zu blinken.
Anschließend leuchtet die DUO-LED wieder rot und die gelbe LED ist aus.
Während des Programmentwurfes wird mit Hilfe des Simulators der BASCOM-IDE (integrierte Entwicklungsumgebung) das fehlerfreie Arbeiten des Programmes überprüft.
Countdown |
Material |
- 1x Steckbrett
- 1x Batterie-Pack (3x AA)
- 1x Nullkraftsockel
- 1x ATtiny13A
- 1x LED gelb
- 1x DUO-LED
- 2x Widerstand, 220 Ohm
- diverse Steckdrähte
|
Wie arbeitet das Programm led04.bas?
Zeile 17
Die Variable N wird als Integer-Variable definiert. Jede Variable in einem Programm muss am Anfang definiert
werden.
Zeilen 19 - 21
Den Portpins PB.0, PB.1 und PB.2 werden entsprechende Namen gegeben. Dies macht ein Programm
leichter lesbar.
Zeilen 23 - 25
Alle drei Port-Pins werden als Ausgang gesetzt und die gelbe LED ausgeschaltet (Zeile
27).
Zeilen 29 - 42
Zunächst wird die DUO-LED für 3s auf rot geschaltet und dann auf grün umgeschaltet, indem man
die Elektrodenanschlüsse umpolt.
In der nachfolgenden For ... Next -Schleife wird die gelbe LED jetzt 10-mal im Sekundentakt
ein- und ausgeschaltet. In Zeile 42 wird sie dann ausgeschaltet.
Da alles in einer Endlosschleife abläuft, wiederholt sich dieser Programmzeilenblock beliebig oft.
Weiter geht´s mit dem Kapitel Drucktaster