#define PIN_ROT 6
#define PIN_GELB 5
#define PIN_GRUEN 4
#define PIN_POTI 1
void setup() {
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(1, INPUT);
}
// (iStufe==1 ? HIGH : LOW)
int WarnstufeErmitteln(void)
{
int iStufe;
if (analogRead(PIN_POTI) <= 1000)
{
iStufe = 1;
}
if (analogRead(PIN_POTI) > 1000)
{
if (analogRead(PIN_POTI) <= 3000)
{
iStufe = 2;
}
}
if (analogRead(PIN_POTI) > 3000)
{
iStufe = 3;
}
return(iStufe);
}
void Anzeigen(int iStufe)
{
switch(iStufe)
{
case 1:digitalWrite(PIN_GRUEN, HIGH);break;
case 2:digitalWrite(PIN_GELB, HIGH);break;
case 3:digitalWrite(PIN_ROT, HIGH);break;
}
delay(200);
digitalWrite(PIN_GRUEN, LOW);
digitalWrite(PIN_ROT, LOW);
digitalWrite(PIN_GELB, LOW);
}
void loop() {
int iWarnstufe;
for(;;)
{
iWarnstufe = WarnstufeErmitteln(); //1..Grün,2...Gelb,3...Rot
Anzeigen(iWarnstufe); //LEDs entsprechend schalten
}
}