Les 6 (RGB led)

Alleen lezen

Les 6 (RGB led)

Berichtdoor pe1br » zo okt 08, 2017 12:11 am

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: Selecteer alles
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: Selecteer alles
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.
Bijlagen
les6_1_bb.jpg
(723.17 KiB) Nog niet gedownload
pe1br
 
Berichten: 56
Geregistreerd: do apr 14, 2016 3:37 am

Keer terug naar archief workshop oktober 2017

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron