Arduino-Code und Erläuterungen für den Zähneputz-Timer
[code]
const int ledPins[ ] = {7, 8, 9, 10, 11, 12};
const int buttonPin = 2;
long myTimer = -200000;
void setup( ) {
for (int i = 0; i < 6; i++) {
pinMode(ledPins[ i ], OUTPUT);
}
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(9600);
for (int i = 0; i < 6; i++) {
digitalWrite(ledPins[ i ], LOW);
}
}
void loop( ) {
if (digitalRead(buttonPin) == LOW) {
myTimer = millis( );
}
if (millis( ) - myTimer < ( 30000) ) { // 30 Sekunden
digitalWrite(ledPins[ 0 ], ((millis( ) - myTimer) % 1000) > 500);
} else if (millis( ) - myTimer < ( 60000) ) { // 60 Sekunden
digitalWrite(ledPins[ 1 ], ((millis( ) - myTimer) % 1000) > 500);
} else if (millis( ) - myTimer < ( 90000) ) { // 90 Sekunden
digitalWrite(ledPins[ 2 ], ((millis( ) - myTimer) % 1000) > 500);
} else if (millis( ) - myTimer < ( 120000) ) { // 120 Sekunden
digitalWrite(ledPins[ 3 ], ((millis( ) - myTimer) % 1000) > 500);
} else if (millis( ) - myTimer < ( 150000) ) { // 150 Sekunden
digitalWrite(ledPins[ 4 ], ((millis( ) - myTimer) % 1000) > 500);
} else if (millis( ) - myTimer < ( 180000) ) { // 180 Sekunden
digitalWrite(ledPins[ 5 ], ( (millis( ) - myTimer) % 1000) > 500);
} else if (millis( ) - myTimer < ( 190000) ) { // nach 180 Sekunden
for (int i = 0; i < 6; i++) {
digitalWrite(ledPins[ i ], ( (millis( ) - myTimer) % 1000) < 500);
}
} else {
for (int i = 0; i < 6; i++) {
digitalWrite(ledPins[ i ], LOW);
}
}
delay( 10 );
}
[/code]