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 } }