/******************
1) Fußgänger Ampel / Pedestrian Light rot/grün/aus
2) Fahrzeugampel / traffic Light rot/gelb/grün/aus
3) Anforderungstaste / button debouncing
******************/
#define OFF 0
#define RED 1
#define YELLOW 2
#define GREEN 3
#define TRAFFICRED_PIN 10
#define TRAFFICYELLOW_PIN 9
#define TRAFFICGREEN_PIN 8
#define BUTTON_PIN 7
#define PEDESTRIANRED_PIN 6
#define PEDESTRIANGREEN_PIN 5
int switchstate;
int colour;
int colour2;
int colour3;
unsigned long currentmillis;
unsigned long previousmillis;
int interval = 10;
void setup() {
pinMode(TRAFFICRED_PIN, OUTPUT);
pinMode(TRAFFICYELLOW_PIN, OUTPUT);
pinMode(TRAFFICGREEN_PIN, OUTPUT);
pinMode(PEDESTRIANRED_PIN, OUTPUT);
pinMode(PEDESTRIANGREEN_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
//Geschaut ob der Button gedrückt wurde (wird alle 10sek in der loop aufgerufen)
void getButton(){
int switchstate = digitalRead(BUTTON_PIN);
}
//Hier wird debouncing gemacht und
void serveButton(){
getButton();
if(switchstate == LOW){
currentmillis = millis();
if(currentmillis - previousmillis >= interval){
previousmillis = currentmillis;
}
}
}
void setPedasstrianLight(int colour){
digitalWrite(PEDESTRIANRED_PIN, LOW);
digitalWrite(PEDESTRIANGREEN_PIN, LOW);
switch (colour){
case GREEN:
digitalWrite(PEDESTRIANGREEN_PIN, HIGH);
break;
case RED:
digitalWrite(PEDESTRIANRED_PIN, HIGH);
break;
//Falls nix von den Case passt, macht er die default
default:
digitalWrite(PEDESTRIANRED_PIN, LOW);
digitalWrite(PEDESTRIANGREEN_PIN, LOW);
break;
}
}
void ctrPedestrainlight(){
}
void setTrafficLight(int colour, int colour2, int colour3){
digitalWrite(TRAFFICRED_PIN, LOW);
digitalWrite(TRAFFICYELLOW_PIN, LOW);
digitalWrite(TRAFFICGREEN_PIN, LOW);
switch (colour){
case RED:
digitalWrite(TRAFFICRED_PIN,HIGH);
break;
case YELLOW:
digitalWrite(TRAFFICYELLOW_PIN,HIGH);
break;
case GREEN:
digitalWrite(TRAFFICGREEN_PIN,HIGH);
break;
default:
digitalWrite(TRAFFICRED_PIN, LOW);
digitalWrite(TRAFFICYELLOW_PIN, LOW);
digitalWrite(TRAFFICGREEN_PIN, LOW);
break;
}
}
void loop() {
setTrafficLight(YELLOW,GREEN,RED);
}