HKU_Year2_RGBled_Test

In dit project heb i gewerkt aan een simpele state machine met een rgb lichtje.
De werking
als je het aanzet dan veranderd hij random door de verschillende kleuren heen die ik heb aangemaakt met behulp van de functie case.
vervolgens als je op het knopje klikt dan wordt het licht van de led wit. Deze blijft wit indien er niet nogmaals op het knopje gedrukt wordt.
Als er dan voor de tweede keer op het knopje gedrukt wordt gaat de led weer random van kleur veranderen doormiddel van de schakeling russen de verschillende case's die ik heb aangemaakt
CODE
int Kleur = 0;
int Rood = 9;
int Groen = 10;
int Blauw = 11;
int Tijd = 500;
int Tijd_2 = 100;
int BUTTON = 4 ; // button -> pin 4
int val = 0; // stores the state of the input pin
int old_val = 0; // stores the previous value of "val"
int state = 0; // 0 = LED off while 1 = LED on
void setup() {
pinMode(Rood ,OUTPUT);
pinMode(Groen ,OUTPUT);
pinMode(Blauw ,OUTPUT);
pinMode(BUTTON, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int Kleur = random(6);
val = digitalRead(BUTTON);
if ((val == HIGH) && (old_val == LOW))
{
state = 1 - state;
delay(10);
}
old_val = val;
if (state == 1)
{
digitalWrite(Rood, HIGH);
digitalWrite(Groen, HIGH);
digitalWrite(Blauw, HIGH);
}
else
{
switch (Kleur) {
case 0:
digitalWrite(Rood, HIGH);
delay(Tijd);
analogWrite(Rood, LOW);
break;
case 1:
digitalWrite(Groen, HIGH);
delay(Tijd);
digitalWrite(Groen, LOW);
break;
case 2:
digitalWrite(Blauw, HIGH);
delay(Tijd);
digitalWrite(Blauw, LOW);
break;
case 3:
digitalWrite(Blauw, HIGH);
delay(Tijd);
digitalWrite(Blauw, LOW);
break;
case 4:
digitalWrite(Groen, HIGH);
digitalWrite(Rood, 160);
delay(Tijd);
digitalWrite(Groen, LOW);
digitalWrite(Rood, LOW);
break;
case 5:
digitalWrite(Rood, HIGH);
digitalWrite(Groen, HIGH);
digitalWrite(Blauw, HIGH);
delay(Tijd);
digitalWrite(Rood, LOW);
digitalWrite(Groen, LOW);
digitalWrite(Blauw, LOW);
break;
}
}
}