Mer oppgave 9 greier

This commit is contained in:
Alex Thomassen 2019-01-25 14:15:59 +01:00
parent 00733e7977
commit 81800e580b
Signed by: Alex
GPG Key ID: 10BD786B5F6FF5DE

View File

@ -74,15 +74,42 @@ int trafficLightLengths[] = {
unsigned long lastStateChange = millis();
/**
* Huske sist gang fotgjenger
* Huske sist gang fotgjengermodus startet.
*/
unsigned long pedLastPress = 0;
unsigned long pedLastStart = 0;
/**
* Huske sist gang fotgjengermodus var avsluttet.
* 500 ms etter dette skal trafikklys begynne nytt.
*/
unsigned long pedLastEnd = 0;
/**
* Antall millisekunder fotgjengere har å "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 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 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 som trafikklyssyklusen er ferdig.
*/
if (pedShouldActivate)
{
pedLastStart = currentTime;
pedActive = true;
}
}
switch (trafficState)