Arduino/LED
LED - Light Emitting Diode
Een light-emitting diode of LED is een lichtbron (lampje) op basis van halfgeleidertechnologie. LEDs worden al heel lang gebruikt voor signalering - bijvoorbeeld om aan te geven of een apparaat ingeschakeld is. Voor dit soort gebruik is niet heel veel licht nodig. Tegenwoordig kun je LEDs ook gebruiken als verlichting: LED-lampen vormen een zeer efficiënte manier van verlichting, en gaan bovendien erg lang mee.
De LEDs die wij gebruiken in combinatie met de Arduino zijn bedoeld voor signalering. We gebruiken onder andere de volgende kleuren: rood, geel groen, en infrarood (voor afstandsbediening). In enkele voorbeelden gebruiken we ook een RGB-LED waarmee je alle mogelijk kleuren kunt maken.
Een LED is, zoals de naam al aangeeft, een diode: deze laat de stroom maar in één richting door. Alleen in die richting brandt de LED. Als je de LED andersom aansluit, laat deze geen stroom door en geeft geen licht.
De meeste signalerings-LEDS hebben aansluitpinnen van verschillende lengte. De langste aansluitpin is dan de positieve aansluiting (anode). Soms heeft de kunststof behuizing een platte kant: dat is de negatieve aansluiting (kathode).
- De platte kant komt overeen met de dwarsstreep in het symbool voor de LED (als diode).
Standaard-schakelingen
LED met serieweerstand
De eenvoudigste schakeling om een LED te laten branden: sluit deze in combinatie met een serieweerstand aan op een spanningsbron. De serieweerstand beperkt de stroom door de LED, en de stroom die de spanningsbron moet leveren.
Je kunt de 5V en GND van de Arduino gebruiken als spanningsbron. Als serieweerstand gebruik je dan een weerstand van 220 Ohm of 330 Ohm.
Deze schakeling kun je gebruiken om te controleren of je de LED en de weerstand goed aangesloten hebt.
LED aan Arduino-uitvoer (actief-hoog)
De gebruikelijke schakeling om een LED aan te sturen vanuit een Arduino is om de LED te laten branden door naar de overeenkomstige pin de waarde HIGH (1) te schrijven. De spanning op de pin is dan 5V.
- in de setup-functie: pin in output-mode:
pinMode(13, OUTPUT)
- LED aanschakelen:
digitalWrite(13, HIGH)
- LED uitschakelen:
digitalWrite(13, LOW)
LED aan Arduino-uitvoer (actief-laag)
We kunnen er ook voor zorgen dat de LED brandt als de betreffende uitvoer LOW is, de spanning op de uitvoer-pin is dan 0V. In dit geval verbinden we de positieve kant (Anode) aan 5V, en de negatieve kant (Kathode) aan de uitvoer-pin. Daarbij moeten we natuurlijk ook weer zorgen voor een serie-weerstand.
- in de setup-functie: pin in output-mode:
pinMode(13, OUTPUT)
- LED aanschakelen:
digitalWrite(13, LOW)
- LED uitschakelen:
digitalWrite(13, HIGH)
Problemen...
De LED brandt niet
Dit kan verschillende oorzaken hebben. Het meest voor de hand ligt dat je de LED verkeerd aangesloten hebt: een LED werkt maar in één richting. Maar het kan ook zijn dat je ergens een bedradingsfout gemaakt hebt. Je kunt dit het beste controleren door de signaaldraad (geel in de figuur) los te maken van de Arduino-pin, en direct te verbinden met een 5V pin op het Arduino-bord of op het breadboard. De LED moet dan continu branden.
- de LED kan kapot zijn (komt niet zo vaak voor; probeer een andere LED)
De LED brandt erg flauw
Ook dit kan verschillende oorzaken hebben:
- de serieweerstand is te groot. Bij een spanning van 5V gebruiken we meestal een serieweerstand van 220 Ohm (rood rood bruin) of 330 Ohm (oranje oranje bruin).
- bij 220 Ohm en 5V, en een spanning over de LED van 2V, is de stroom door de LED: I = U / R = (5-2) / 220 = 13,6 mA. De LED brandt dan fel. (Bij ca. 20 mA is de helderheid voor dergelijke LEDs maximaal.)
- een weerstand van 10kOhm (bruin zwart oranje), geeft bij dezelfde spanningen: I = U / R = 3/10000 = 0,3 mA. Dat resulteert in veel minder licht.
- de pin van de Arduino is niet als output-pin geschakeld.
- in de setup-functie moet je voor elke pin die je gebruikt aangeven hoe je deze gebruikt - als invoer of als uitvoer.
- met
pinMode(9, OUTPUT)
geef je aan dat pin 9 als output-pin gebruikt wordt.
Waar moet je om denken?
Bij het aansluiten van een LED moet je om de volgende punten denken:
- een LED werkt maar in één richting
- een LED gaat kapot door een te grote stroom
Een LED werkt maar in één richting
Een LED werkt maar in één richting: het is een "diode". De Anode moet een positieve spanning hebben ten opzichte van de Kathode. De Kathode is herkenbaar aan de vlaKKe rand aan de behuizing. Bovendien heeft de Kathode het Kortste pootje. Voor het verband tussen Anode, Kathode en de richting van de stroom kun je gebruik maken van de ezelsbrug KNAP: Kathode negatief, Anode positief.
- de vlakke rand komt overeen met het streepje in het symbool voor de LED (of voor een diode in het algemeen).
Een LED gaat kapot door een (te) grote stroom
Als de stroom door een LED te groot is kan deze kapot gaan. We gebruiken een LED dan ook vrijwel altijd in combinatie met een serie-weerstand die als doel heeft de stroom te beperken.
- de maximale stroom door een "gewone" LED is ca. 30 mA (zie http://electronicsclub.info/leds.htm)
- dit geldt voor de gewone LEDs die gebruikt worden voor signalering;
- voor IR-leds (voor afstandbesturing) is de maximale stroom vaak ca. 100 mA. Deze stroom kan een Arduino niet leveren: je kunt dan een transistor gebruiken voor het aansturen van de IR-led.
- power-LEDS die je gebruikt voor verlichting kunnen een veel grotere stroom verwerken.
- bij de Arduino moeten we niet alleen de stroom door de LED beperken, maar ook de stroom die de Arduino moet leveren. Deze is per output-pin maximaal 40 mA, maar meestal beperken we deze tot 20 mA of minder. De totale stroom door de Arduino (van Vcc naar GND) mag niet meer zijn dan 200mA.
- Vraag: is het gebruik van een dergelijke serieweerstand verstandig voor LEDs die je gebruikt voor verlichtingstoepassingen?
Meer informatie over LEDs vind je onder andere op:
- http://nl.wikipedia.org/wiki/Led
- http://en.wikipedia.org/wiki/Light-emitting_diode
- https://en.wikipedia.org/wiki/LED_circuit
- http://electronicsclub.info/leds.htm
- http://led.linear1.org
Voor de betekenis van Kathode en Anode, zie de volgende Wikipedia pagina. Het is wat subtieler dan je misschien denkt (niet alle afspraken die in het verleden gemaakt zijn, zijn altijd even handig):
- http://ruggedcircuits.com/html/ancp01.html "Ten ways to destroy an Arduino".