Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define INAKTIV (0)
- #define AKTIV_2S (1)
- #define AKTIV_2S_ELENGEDETT (2)
- #define AKTIV_10S (3)
- #define IDO_2S (1000 * 2)
- #define IDO_8S (1000 * 8)
- #define GOMB (9)
- #define KIMENET (13)
- int state = INAKTIV;
- long long timestamp;
- void setup() {
- // put your setup code here, to run once:
- pinMode(GOMB, INPUT_PULLUP);
- pinMode(KIMENET, OUTPUT);
- }
- void loop() {
- switch(state){
- case INAKTIV:
- if(digitalRead(GOMB) == LOW){
- state = AKTIV_2S;
- timestamp = millis() + IDO_2S;
- digitalWrite(KIMENET, HIGH);
- }
- break;
- case AKTIV_2S:
- if(timestamp < millis()){
- state = AKTIV_10S;
- timestamp += IDO_8S;
- }
- else if(digitalRead(GOMB) == HIGH){
- state = AKTIV_2S_ELENGEDETT;
- }
- break;
- case AKTIV_2S_ELENGEDETT:
- if(timestamp < millis()){
- state = INAKTIV;
- digitalWrite(KIMENET, LOW);
- }
- break;
- case AKTIV_10S:
- if(digitalRead(GOMB) == HIGH || timestamp < millis()){
- state = INAKTIV;
- digitalWrite(KIMENET, LOW);
- }
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement