In deze les gaan we een LED geleidelijk aan en uit laten faden of terwijl dimmen.
We gebruiken de volgende code:
void setup()
void loop()
pinMode
analogWrite
delay()
Als je analogWrite gebruikt via een PWM uitgang (poorten:3,5,6,9,10 en 11) Kan je de uitgaande spanning regelen in 256 stappen. 0 Is 0 volt en 255 is 5 volt, dus 125 is ongeveer 2,5 volt.Door een stapje aan de code toe te voegen dat deze waarde steeds iets hoger of lager moet worden kunnen we dus bijvoorbeeld een LED automatisch laten dimmen.
In theorie vertellen we het programma dat we starten met 0.
Stap 1 is de LED aanzetten met de PWM waarde 0.
Stap 2 zeg dat er bijvoorbeeld 5 bij deze 0 opgeteld moeten worden.
We vertellen de LED nog niks dus deze blijft op 0 staan.
Stap 3 wachten we 30 mili-seconden en daarna beginnen we opnieuw.
Stap 1 is nu dat de LED aangezet word, maar nu was het PWM getal 5.
Stap 2 telden we 5 op bij het huidige PWM getal, deze word nu dus 10.
Stap 3 is weer 30 mili-seconden wachten.
Dit gaat net zo lang door tot het getal 255 is bereikt en dan vertellen we dat er in plaats van elke stap 5 op te tellen, er 5 vanaf moeten.
De code die we gebruiken ziet er dan zo uit.
int ledPin = 3; // De PWM pin waar we een LED op aansluiten int lichtSterkte = 0; // De licht sterkte van de LED tussen 0 en 255 int dimmen = 5; // Hoeveel moet de LED dimmen per stap void setup() { pinMode(ledPin, OUTPUT); // Stel Pin 3 in als uitgang: } void loop() { analogWrite(led, lichtSterkte); // STAP 1 - zet de LED aan op de huidige lichtsterkte. lichtSterkte = lichtSterkte + dimmen; // STAP 2 - verhoog de lichtsterkte met het getal van "dimmen". if (lichtSterkte == 0 || lichtSterkte == 255) { // Als het getal 0 of 255 is bereikt word de routine omgedraaid. dimmen = -dimmen ; // 5 word -5 of -5 word --5(plus 5 dus..). } delay(30); // STAP 3 - wacht 30 seconden tussen elke stap om het effect te kunnen zien. }