Mer oppgave 9 greier
This commit is contained in:
parent
00733e7977
commit
81800e580b
@ -74,15 +74,42 @@ int trafficLightLengths[] = {
|
||||
unsigned long lastStateChange = millis();
|
||||
|
||||
/**
|
||||
* Huske på sist gang fotgjenger
|
||||
* Huske på sist gang fotgjengermodus startet.
|
||||
*/
|
||||
unsigned long pedLastPress = 0;
|
||||
unsigned long pedLastStart = 0;
|
||||
|
||||
/**
|
||||
* Huske på sist gang fotgjengermodus var avsluttet.
|
||||
* 500 ms etter dette skal trafikklys begynne på nytt.
|
||||
*/
|
||||
unsigned long pedLastEnd = 0;
|
||||
|
||||
/**
|
||||
* Antall millisekunder fotgjengere har på å "krysse".
|
||||
*/
|
||||
int pedLength = 8000;
|
||||
|
||||
/**
|
||||
* Antall millisekunder mellom hvert "blink" for fotgjengerlyset.
|
||||
*/
|
||||
int pedBlinkLength = 250;
|
||||
|
||||
/**
|
||||
* Antall ganger fotgjengerlyset har blinket.
|
||||
*/
|
||||
int pedBlinkCount = 0;
|
||||
|
||||
/**
|
||||
* Om fotgjengerne er "aktive", altså at trafikklys skal stoppe (og holde seg på rødt).
|
||||
*/
|
||||
bool pedActive = false;
|
||||
|
||||
/**
|
||||
* Holder verdien om "fotgjengermodus" skal aktiveres
|
||||
* etter neste trafikklyssyklus.
|
||||
*/
|
||||
bool pedShouldActivate = false;
|
||||
|
||||
void loop() {
|
||||
unsigned long currentTime = millis();
|
||||
|
||||
@ -91,8 +118,11 @@ void loop() {
|
||||
* oppdater verdier basert på dette.
|
||||
*/
|
||||
if (analogRead(pedSwitch) == LOW) {
|
||||
pedLastPress = currentTime;
|
||||
pedActive = true;
|
||||
pedShouldActivate = true;
|
||||
}
|
||||
|
||||
if (pedActive) {
|
||||
// TODO: Oppgave 9
|
||||
}
|
||||
|
||||
/**
|
||||
@ -108,7 +138,7 @@ void loop() {
|
||||
}
|
||||
|
||||
int lightLength = trafficLightLengths[trafficState];
|
||||
if (currentTime - lastStateChange >= lightLength)
|
||||
if (!pedActive && currentTime - lastStateChange >= lightLength)
|
||||
{
|
||||
trafficState++;
|
||||
lastStateChange = currentTime;
|
||||
@ -119,6 +149,15 @@ void loop() {
|
||||
if (trafficState > 3)
|
||||
{
|
||||
trafficState = 0;
|
||||
|
||||
/**
|
||||
* Aktiverer fotgjengermodus nå som trafikklyssyklusen er ferdig.
|
||||
*/
|
||||
if (pedShouldActivate)
|
||||
{
|
||||
pedLastStart = currentTime;
|
||||
pedActive = true;
|
||||
}
|
||||
}
|
||||
|
||||
switch (trafficState)
|
||||
|
Loading…
Reference in New Issue
Block a user