Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int buttonState;
- int state = 0;
- int buttonStateLOW = 0;
- unsigned long ButtonDebonce;
- unsigned long currentMillis = 0;
- unsigned long startMillis = 0;
- unsigned long timestamp;
- const long anzeigedauer = 5000;
- void setup()
- {
- Serial.begin(9600);
- pinMode(8, INPUT_PULLUP);
- pinMode(4, OUTPUT);
- pinMode(5, OUTPUT);
- }
- void loop()
- {
- currentMillis = millis();
- //Zähler 0-3
- buttonState = digitalRead(8);
- if (buttonState == LOW) {
- if (buttonStateLOW == 0)
- {
- buttonStateLOW = 1;
- ButtonDebonce = currentMillis;
- Serial.println("Button LOW, Start debunce");
- }
- }
- else
- {
- if (buttonStateLOW == 1)
- {
- if (currentMillis - ButtonDebonce > 100)
- {
- state++;
- startMillis = millis(); //zeit bei tastendruck speichern.
- if (state == 4)
- {
- state = 0;
- }
- Serial.println("Button HIGH, Inc state");
- Serial.println(state);
- //timestamp = currentMillis;
- }
- else
- {
- Serial.println("Button HIGH, Time to short");
- }
- buttonStateLOW = 0;
- }
- }
- //Ansteuerung von zwei LEDs
- switch (state)
- {
- case 0: //nix los
- Serial.println("state 0");
- digitalWrite(4, LOW);
- digitalWrite(5, LOW);
- break;
- case 1: //taste
- Serial.println("state 1 hoch");
- if(millis() > startMillis+anzeigedauer)
- {
- state++;
- }
- digitalWrite(4, LOW);
- digitalWrite(5, HIGH);
- break;
- case 2: //timer oder taste aktivieren state 2
- Serial.println("state 2 off");
- digitalWrite(4, LOW);
- digitalWrite(5, LOW);
- break;
- case 3:
- Serial.println("state 3 runter");
- if(millis() > startMillis+anzeigedauer)
- {
- state++;
- }
- digitalWrite(4, LOW);
- digitalWrite(4, HIGH);
- break;
- case 4:
- state=0;
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement