Stap 4: Bevestigen de ARDUINO
Één draad vast het breadboard te positief hebben gereageerd op de ARDUINO pin ground.and nemen een andere draad vast ARDUINO 3,3 v om breadboard positive.as weergegeven van de afbeelding te nemen.
ARDUINO PROGRAMMA.
Verkeerslichten
Door Ben Hovinga http://ben.hovinga.me
/ Lights {groen, geel, rood, PEDGREEN, PEDRED}
int licht [2] [5] = {{2,3,4,6,7}, {8,9,10,12,13}};
Knoppen {licht [0], licht [1]}
int btn [] = {5,11};
Timers
int tgreen = 30000; 30s
int tyellow = 3000; 3s
int kunstvideo = 3000; 3s
int tpedwarn = 5000; 5s (moet minder dan tgreen)
int tpedwarnint = 500; 0.5s (moet minder dan tpedwarn)
Andere Vals. Niet wijzigen
int btnval = 0;
Booleaanse pedwait [] {false, false} =;
Booleaanse pedactive [] {false, false} =;
int directe = 0;
int stp = 1;
Boole stpset = false;
niet-ondertekende lang = 0;
unsigned long changeat = -1;
unsigned long changeatped = -1;
Boole pedredon = waar;
SETUP
VOID Setup {}
Toewijzen van alle pinnen
voor (int x = 0 x < 2; x ++) {}
voor (int y = 0; y < 5; y ++) {}
pinMode ([x] [y], lichte OUTPUT);
}
Beginnen met alles gestopt (rood)
digitalWrite (licht [2], [x] hoge);
digitalWrite (licht [4], [x] hoge);
}
Toewijzen van knoppen
voor (int x = 0 x < 2; x ++) {}
pinMode (btn [x], INPUT);
}
}
RUN
void loop {}
Bijwerkingsfrequentie
nu = millis();
Controleer of de knop ingedrukt
voor (int x = 0; x < 2 x ++) {}
btnval = digitalRead(btn[x]);
Als (btnval == HIGH) {}
pedwait [x] = true; We hebben iemand te wachten om over te steken
}
}
Krijgen in het
schakelaar (stp) {}
Groen
Case 1:
Setup
Als (stpset == false) {}
changeat = nu + tgreen - tpedwarn; Set timer
Inschakelen van de Ped
Als (pedwait [directe] == true) {}
Lichten wijzigen voor ped
digitalWrite (licht [directe] [3], hoge);
digitalWrite (licht [directe] [4], laag);
Instellen sommige vars
pedwait [directe] = false;
pedactive [directe] = true;
pedredon = false;
}
Inschakelen van groen
digitalWrite (licht [directe] [0], hoge);
Zwenking vandoor rood
digitalWrite (licht [directe] [2], laag);
stpset = true; We zijn ingesteld
}
Run
else {}
Als (nu > changeat) {/ / Times up
Als (pedactive [directe] == true) {}
Ped uitschakelen
digitalWrite (licht [directe] [3], laag);
digitalWrite (licht [directe] [4], hoge);
pedredon = true;
}
Volgende stap
STP ++;
stpset = false;
}
}
breken;
Waarschuwen ped (indien mogelijk)
Case 2:
Setup
Als (stpset == false) {}
changeat = nu + tpedwarn;
changeatped = nu + tpedwarnint;
stpset = true;
}
Run
else {}
Flash Ped rood
Als (pedactive [directe] == true) {}
Als (pedredon == true & & changeatped < nu) {}
digitalWrite (licht [directe] [4], laag);
pedredon = false;
changeatped = nu + tpedwarnint;
}
Als (pedredon == false & & changeatped < nu) {}
digitalWrite (licht [directe] [4], hoge);
pedredon = true;
changeatped = nu + tpedwarnint;
}
}
Als (nu > changeat) {/ / Times up
Uitschakelen
digitalWrite (licht [directe] [0], laag);
digitalWrite (licht [directe] [4], hoge);
pedredon = true;
pedactive [directe] = false;
Volgende stap
STP ++;
stpset = false;
}
}
breken;
Geel
Case 3:
Setup
Als (stpset == false) {}
changeat = nu + tyellow;
digitalWrite (licht [directe] [1], hoge);
stpset = true;
}
Run
else {}
Als (nu > changeat) {/ / Times up
Uitschakelen
digitalWrite (licht [directe] [1], laag);
Volgende stap
STP ++;
stpset = false;
}
}
breken;
Rood
Case 4:
Setup
Als (stpset == false) {}
changeat = nu + kunstvideo;
digitalWrite (licht [directe] [2], hoge);
stpset = true;
}
Run
else {}
Als (nu > changeat) {/ / Times up
Opnieuw beginnen
STP = 1;
stpset = false;
De richting wijzigen
Als (direct == 1) {}
direct = 0;
}
else {}
direct = 1;
}
}
}
breken;
}
}