Stap 2: Hoe werkt de COLORKEY?
Elke kleur is een puls switch die is verbonden met de bedrading. Wanneer 3 van de 6 schakelaars worden geactiveerd; automatisch bedrading activeert een elektrische vergrendeling.
Hier is de code voor COLORKEY:
int switchrojo = 0;
int switchverde = 1;
int switchmorado = 2;
int switchazul = 3;
int switchamarillo = 4;
int switchnaranja = 5;
int cerradura = 8;
int presionadorojo = 0;
int presionadoverde = 0;
int presionadomorado = 0;
int presionadoazul = 0;
int presionadoamarillo = 0;
int presionadonaranja = 0;
int times_pressed = 0;
lange start_time = 0;
VOID Setup
{
pinMode (switchrojo, INPUT);
pinMode (switchverde, INPUT);
pinMode (switchmorado, INPUT);
pinMode (switchazul, INPUT);
pinMode (switchamarillo, INPUT);
pinMode (switchnaranja, INPUT);
pinMode (cerradura, OUTPUT);
Serial.begin(9600);
pinMode (48, OUTPUT);
digitalWrite (48, hoge);
}
void loop {}
if(digitalRead(switchrojo) == LOW) {}
while(digitalRead(switchrojo) == laag);
presionadorojo = 1;
times_pressed ++;
}
if(digitalRead(switchverde) == LOW) {}
while(digitalRead(switchverde) == laag);
presionadoverde = 1;
times_pressed ++;
}
if(digitalRead(switchazul) == LOW) {}
while(digitalRead(switchazul) == laag);
presionadoazul = 1;
times_pressed ++;
}
if(digitalRead(switchmorado) == LOW) {}
while(digitalRead(switchmorado) == laag);
presionadomorado = 1;
times_pressed ++;
}
if(digitalRead(switchamarillo) == LOW) {}
while(digitalRead(switchamarillo) == laag);
presionadoamarillo = 1;
times_pressed ++;
}
if(digitalRead(switchnaranja) == LOW) {}
while(digitalRead(switchnaranja) == laag);
presionadonaranja = 1;
}
if(Millis() - start_time > 5000) {}
times_pressed = 0;
presionadorojo = 0;
presionadoverde = 0;
presionadoazul = 0;
presionadomorado = 0;
presionadoamarillo = 0;
presionadonaranja = 0;
start_time = millis();
}
Als (times_pressed > = 3) {}
Als ((presionadorojo == 0) & &
(presionadoverde == 1) & &
(presionadomorado == 0) & &
(presionadoazul == 1) & &
(presionadoamarillo == 0) & &
(presionadonaranja == 1))
{
digitalWrite (cerradura, hoge);
vertraging (5000);
digitalWrite (cerradura, laag);
times_pressed = 0;
presionadorojo = 0;
presionadoverde = 0;
presionadoazul = 0;
presionadomorado = 0;
presionadoamarillo = 0;
presionadonaranja = 0;
start_time = millis();
}
}
Serial.Print (presionadorojo, DEC);
Serial.Print("");
Serial.Print (presionadoverde, DEC);
Serial.Print("");
Serial.Print (presionadoazul, DEC);
Serial.Print("");
Serial.Print (presionadomorado, DEC);
Serial.Print("");
Serial.Print (presionadoamarillo, DEC);
Serial.Print("");
Serial.println (presionadonaranja, DEC);
Serial.Print (times_pressed, DEC);
Serial.Print("");
delay(100);
}