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

1 - Leuchtdioden - LEDs

Kurzinformationen

Bauformen

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.

Die Elektroden

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.

 

Ventilwirkung

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.

Durchlassspannungen

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.

2 - Widerstände

Kurzinformation

Widerstandswert, Leistung

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)

3 - Berechnung des Vorwiderstandes einer LED

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.

4 - Übung 1

Sekundenblinker

ATtiny13A

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

  1. im Sekundentakt blinken (led01.bas).
  2. einmal flashen (led02.bas).
  3. 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.

Ein Programm brennen

Kurzinformation

Programmer und Nullkraftsockel

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

Das Programm led01.bas

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

  • Led = 1

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.

  • Toggle Led

schaltet PB.2 auf 0, wenn er vorher auf 1 war oder auf 1, wenn er vorher auf 0 war.

  • Waitms 500

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.

5 - Übung 2

Flasher

ATtiny13A

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.

Das Programm led02.bas

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.

  • Wait 5

verzögert die Arbeit des Mikrocontrollers um 5s mit Nichtstun. Die LED ist aus.

  • Led = 1

schaltet PB.2 auf 1. Die LED geht für eine kurze Zeit von 100µs an.

  1. Waitms 1

verzögert die Arbeit des Mikrocontrollers um 1 ms = 0,001s mit Nichtstun.

  1. Led = 0

schaltet PB.2 auf 0; die LED geht aus.

Anschließend Rücksprung in Programmzeile 19.

Simulator einschalten

Kurzinformation

Compilieren und Simulieren

  • Ü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.

5.1 - Simulation des Programmes

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.

6 - Übung 3

Signalblinker 10x

ATtiny13A

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.

Das Programm led03.bas

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

  • For ... Next

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.

7 - Übung 4

Countdown

ATtiny13A

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

Schaltskizze

Das Programm led04.bas

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

Kommentar schreiben

Kommentare

  • olaf (Sonntag, 10. Dezember 2017 08:35)

    wow...die mit Abstand beste Site, die ich bisher zu diesem Thema gesehen habe :-))
    Vielen Dank dafür. Hilft super beim Erklären!!

  • David Eisenblätter (Sonntag, 11. Februar 2018 13:38)

    Sehr schön erklärt, und zufällig heute, wo ich nochmal nach einer detailierten Gedankenstütze diesbezüglich gesucht habe!

    Vielen vielen Dank!

    David.

Bitte geben Sie den Code ein
* Pflichtfelder
Druckversion Druckversion | Sitemap
© Reinhard Rahner - Gettorf