LED semafor je jeden z jednodušších projektů, jak už je z názvu poznat, tak je to semafor vytvořený z LED diod.
Semafor bude fungovat tak že se po zmáčknutí tlačítka zapne červená pro auta a zelená pro chodce – a po chvíli se zase vrátí do původního stavu – toto se stane popořadě jako v normálním semaforu.
Použité součástky:
1) arduino deska
2) 2x zelená LED
3) 2x červená LED
4) 1x žlutá LED
5) 1x tlačítko
6) 5x 220Ω rezistor (červená – červená – hnědá – zlatá)
7) 1x 10kΩ rezistor (hnědá – černá – oranžová – zlatá)
8) kabely
Jak už jsem říkal, tak zapojení je velmi jednoduché, jediné, co je potřeba, je zapojit LEDky přes rezistory (220Ω) do pinů, aby fungoval program níže, je potřeba zapojit je takto: červená – auta = 2, žlutá – auta = 3, zelená – auta = 4, zelená – chodci = 7, červená – chodci = 6, a poté zapojit tlačítko – to se zapojuje stejně jako v arduino knížce – to znamená jedna strana do plusu (5v) a druhá do pinu a přes rezistor (10kΩ) do minusu – podle programu do pinu 5.
Program je také lehký – na začátku se piny 2, 3, 4, 6 a 7 nastaví na input a pin 5 na output, také se zapne autům zelená a chodcům červená, dále se pořád dokola kontroluje, jestli je v pinu pět elektřina (tlačítko je zmáčknuté) a pokud ano, tak se zapne sekvence semaforu.
int cervena = 2; //pin 2 je červená
int zluta = 3; //pin 3 je žlutá
int zelena = 4; //pin 4 je zelená
int zelenaL = 7; //pin 7 je zelená pro chodce
int cervenaL = 6; //pin 6 je červená pro chodce
int tlacitko = 5; //pin 5 je tlačítko
void setup() {
pinMode(cervena, OUTPUT); //červená je výstup
pinMode(zluta, OUTPUT); //žlutá je výstup
pinMode(zelena, OUTPUT); //zelená je výstup
pinMode(zelenaL, OUTPUT); //zelená pro chodce je výstup
pinMode(cervenaL, OUTPUT); //červená pro chodce je výstup
pinMode(tlacitko, INPUT); //tlačítko je vstup
digitalWrite(zelena, HIGH); //zapnout zelenou
digitalWrite(cervenaL, HIGH); //zapnout červenou chodcům
}
void loop() {
if (digitalRead(tlacitko) == HIGH) { //pokud je tlačítko zapnuté
digitalWrite(zelena, LOW); //vypnout zelenou
digitalWrite(zluta, HIGH); //zapnout žlutou
delay(500); //počkat 0.5 sekund
digitalWrite(zluta, LOW); //vypnout žlutou
digitalWrite(cervena, HIGH); //zapnout červenou
delay(500); //počkat 0.5 sekund
digitalWrite(cervenaL, LOW); //vypnout červenou pro chodce
digitalWrite(zelenaL, HIGH); //zapnout zelenou pro chodce
delay(5000); //počkat 5 sekund
digitalWrite(zelenaL, LOW); //vypnout zelenou pro chodce
digitalWrite(cervenaL, HIGH); //zapnout červenou pro chodce
delay(500); //počkat 0.5 sekund
digitalWrite(zluta, HIGH); //zapnout žlutou
delay(500); //počkat 0.5 sekund
digitalWrite(cervena, LOW); //vypnout červenou
digitalWrite(zluta, LOW); //vypnout žlutou
digitalWrite(zelena, HIGH); //zapnout zelenou
}
}