4.TrafikSekvens
Video/inbäddat innehåll: Trafiksekvens och kod för övergångsställe.
// Kod 4 TrafikSekvens #include <Arduino.h> void TrafikSekvens(); // Kan tas bort i Arduino IDE void KlickDelay(unsigned long); // Kan tas bort i Arduino IDE #define KNAPP_PINNE 2 // Valt pinne 2 för knapp #define PIEZO_PINNE 11 // Valt pinne 11 för piezo #define WALK_RED_PINNE 7 #define WALK_YELLOW_PINNE 8 #define WALK_GREEN_PINNE 9 #define CAR_RED_PINNE 4 #define CAR_YELLOW_PINNE 5 #define CAR_GREEN_PINNE 6 unsigned long _TimeToNextTick; // Sparad tid för nästa klick void setup() { pinMode(KNAPP_PINNE, INPUT_PULLUP); // Knapp med pullup pinMode(PIEZO_PINNE, OUTPUT); pinMode(CAR_RED_PINNE, OUTPUT); pinMode(CAR_YELLOW_PINNE, OUTPUT); pinMode(CAR_GREEN_PINNE, OUTPUT); pinMode(WALK_RED_PINNE, OUTPUT); pinMode(WALK_YELLOW_PINNE, OUTPUT); pinMode(WALK_GREEN_PINNE, OUTPUT); digitalWrite(WALK_RED_PINNE, HIGH); digitalWrite(CAR_GREEN_PINNE, HIGH); _TimeToNextTick = millis() + 999; // Startvärde ungefär 1 s framåt } void loop() { KlickDelay(1); bool statusKnapp = digitalRead(KNAPP_PINNE); if (statusKnapp == LOW) { tone(PIEZO_PINNE, 3000, 100); // Kort ton vid knapptryck TrafikSekvens(); KlickDelay(30000); // Vänta 30 s innan ny sekvens tillåts } } void TrafikSekvens() { digitalWrite(CAR_GREEN_PINNE, LOW); digitalWrite(CAR_YELLOW_PINNE, HIGH); KlickDelay(3000); digitalWrite(CAR_YELLOW_PINNE, LOW); digitalWrite(CAR_RED_PINNE, HIGH); KlickDelay(2000); digitalWrite(WALK_RED_PINNE, LOW); digitalWrite(WALK_GREEN_PINNE, HIGH); KlickDelay(6000); KlickDelay(4000); digitalWrite(WALK_GREEN_PINNE, LOW); digitalWrite(WALK_RED_PINNE, HIGH); KlickDelay(3000); digitalWrite(CAR_YELLOW_PINNE, HIGH); KlickDelay(1000); digitalWrite(CAR_RED_PINNE, LOW); digitalWrite(CAR_YELLOW_PINNE, LOW); digitalWrite(CAR_GREEN_PINNE, HIGH); } void KlickDelay(unsigned long time) { for (size_t i = 0; i < time; i++) { // Repetera 'time' gånger if (millis() > _TimeToNextTick) { digitalWrite(PIEZO_PINNE, HIGH); delay(1); digitalWrite(PIEZO_PINNE, LOW); _TimeToNextTick = millis() + 999; } delay(1); } }
Nu liknar det trafikljus vid ett övergångsställe, men det är fortfarande en del problem.
- När TrafikSekvensen pågår, händer det inget när knappen trycks.
- När det blir grön gubbe ska det klicka fortare.
Inköpslista.
Artikel: 2805 Trafikljus kit, med kod som passar nybörjare.
Direkt länk: https://pchbutik.se/mcu/1794-trafikljus-kit-med-kod-som-passar-nyborjare.html
Denna sida är konverterad med hjälp av AI.
En sida för dig som bygger elektronik själv, experimenterar och laborerar.
Skapad av Per-Anders Hult för PchButik.se.


