Aansluiten van een LED

Een LED is uitermate handig om zichtbaar te maken of een digitale output de waarde 'HIGH' of 'LOW' heeft. En het werkt inderdaad als we een LED aansluiten tussen een digitale output van de Arduino en de GND. Een LED is echter geen lamp die vraagt om op een bepaald voltage aangesloten te worden. Een LED vraagt om een stroom van ongeveer 20 mA. Door de LED direct aan te sluiten op een digitale output van de Arduino bepaalt de maximale stroom die de output levert of de LED doorbrandt. De stroom van de Arduino outputs is maximaal ongeveer 40mA en gelukkig kan een LED daar wel even tegen. Toch is het niet verstandig een LED direct op een output aan te sluiten.

Beter is het gebruik te maken van Pulsbreedtemodulatie. De Arduino Uno beschikt over een aantal digitale outputs die geschikt zijn voor pulsbreedtemodulatie (PWM). Daarmee kan de gemiddelde stroom door de LED worden geregeld. De onderstaande sketch zorgt ervoor dat de aangesloten LED langzaam sterker en zwakker gaat branden.

Een andere oplossing is het gebruik van een zogenaamde voorschakelweerstand.

Een weerstand van 1kΩ is een veilige keuze bij een spanning tot 20V. Het uitrekenen van de juiste waarde van de weerstand is eenvoudig:

(Voedingsspanning - Junctiespanning) / Gewenste stroom.

Bijvoorbeeld als we een Arduino output gebruiken is de voedingsspanning 5V. Uitgaande van een LED met een junctiespanning van 1,2V en een gewenste stroom van 5mA, moet de weerstand een waarde hebben van (5 - 1,2) / 0,005 = 760Ω. In de E-12 reeks is de dichtstbijzijnde waarde 820Ω. Let er wel op dat de junctiespanning van LEDs met verschillende kleuren sterk kan variëeren.

Het nadeel van deze oplossing is dat we de volledige stroom die nodig is voor de LED laten leveren door een digitale output. Dat kunnen we ondervangen door een transistor als schakelaar te gebruiken. De digitale output gebruiken we om de transistor in en uit te schakelen en die hoeft daarvoor maar een heel kleine stroom te leveren. Onderstaand schema laat zien hoe een LED aangesloten kan worden zonder dat alle stroom door de Arduino geleverd moet worden. Voor R1 kan een waarde van 10kΩ gebruikt worden en voor R2 een waarde tussen de 470Ω en 1kΩ. Een prima transistor voor een redelijke prijs is de BC549C.