Zorg er voor dat je alle voedingsspanningen los koppelt (usb niet aangesloten op de pc en geen power adapter aangesloten op de voedingsplug).
sluit de Arduino aan volgens onderstaand schema:
Start het Arduino programma en sluit de USB kabel aan.
Eerst gaan we testen of alle kleuren van de led werken.
Typ de volgende code over of kopieer deze naar de arduino ide:
Code: Select all
int blauw = 5;
int groen = 6;
int rood = 9;
void setup() {
pinMode (rood, OUTPUT);
pinMode (groen, OUTPUT);
pinMode (blauw, OUTPUT);
}
void loop() {
digitalWrite(blauw, LOW); //Als de waarde van LDR1 hoger is dan 400 set de uitganspin van led1 (12) laag
digitalWrite(rood, HIGH); //Als de waarde van LDR1 hoger is dan 400 set de uitganspin van led1 (12) laag
delay(1000);
digitalWrite(rood, LOW); //Als de waarde van LDR1 hoger is dan 400 set de uitganspin van led1 (12) laag
digitalWrite(groen, HIGH); //Als de waarde van LDR1 hoger is dan 400 set de uitganspin van led1 (12) laag
delay(1000);
digitalWrite(groen, LOW); //Als de waarde van LDR1 hoger is dan 400 set de uitganspin van led1 (12) laag
digitalWrite(blauw, HIGH); //Als de waarde van LDR1 hoger is dan 400 set de uitganspin van led1 (12) laag
delay(1000);
}
De led moet om en om knipperen in de volgorde rood, groen en blauw.
Les6-2:
We kunnen de led ook vloeiend laten overlopen van kleur.
We gaan nu gebruik maken van analogWrite (PWM), in plaats van een HIGH of LOW schrijven we nu een waarde tussen 0 en 255 naar de Arduino poort.
Dit is alleen mogelijk op de poorten aangeduid met een ~ op het Arduino bord.
Typ de volgende code over of kopieer deze naar de arduino ide:
Code: Select all
int blauw = 5;
int groen = 6;
int rood = 9;
void setup() {
pinMode (rood, OUTPUT);
pinMode (groen, OUTPUT);
pinMode (blauw, OUTPUT);
}
void loop() {
for (int i = 0; i < 255; i++) { //tel van 0 tot 255 en stop dit in de container i
analogWrite(groen, abs(i - 255)); //lees de waarde van i en trek er 255 van af, stuur het resultaat naat led rood
analogWrite(blauw, i); //lees de waarde van i en stuur deze naar led blauw
delay(10); //delay 50 miliseconden zodat het tellen niet te snel gaat
}
for (int i = 0; i < 255; i++) { //tel van 255 tot -1 en stop dit in de container i
analogWrite(blauw, abs(i - 255)); //lees de waarde van i en stuur deze naar led blauw
analogWrite(rood, i); //lees de waarde van i en trek er 255 van af, stuur het resultaat naat led rood
delay(10);
}
delay(1000); //wacht 1 seconden zodat rood even vol zichtbaar is
for (int i = 0; i < 255; i++) { //tel van 255 tot -1 en stop dit in de container i
analogWrite(rood, abs(i - 255)); //lees de waarde van i en stuur deze naar led blauw
analogWrite(groen, i); //lees de waarde van i en trek er 255 van af, stuur het resultaat naat led rood
delay(10);
}
}
De led moet nu keurig overlopen tussen de verschillende kleuren.
Dit gaat wat onregelmatig omdat wij overal dezelfde voorschakel weerstanden gebruiken.
Normaal gesproken moet je de weerstand berekenen voor de spanning die bij de kleur hoort:
Een rode led heeft een doorlaatspanning van 1,5 volt.
Een groene led heeft een doorlaatspanning van 2,4 volt.
Een blauwe led heeft een doorlaatspanning van 3,6 volt.