Les 6 (RGB led)

Alleen lezen

Moderator: pe1br

Post Reply
pe1br
Posts: 66
Joined: Thu Apr 14, 2016 3:37 am

Les 6 (RGB led)

Post by pe1br »

Les6-1:
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); 
}  
Klik op de upload button.
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);                        
  }
}  
Klik op de upload button.
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.
Attachments
les6_1_bb.jpg
(723.17 KiB) Downloaded 2 times
Post Reply