Advertisement
mod4

Gomb

Feb 23rd, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.11 KB | None | 0 0
  1. #define INAKTIV (0)
  2. #define AKTIV_2S (1)
  3. #define AKTIV_2S_ELENGEDETT (2)
  4. #define AKTIV_10S (3)
  5.  
  6. #define IDO_2S  (1000 * 2)
  7. #define IDO_8S  (1000 * 8)
  8.  
  9. #define GOMB (9)
  10. #define KIMENET (13)
  11.  
  12. int state = INAKTIV;
  13. long long timestamp;
  14.  
  15. void setup() {
  16.   // put your setup code here, to run once:
  17.   pinMode(GOMB, INPUT_PULLUP);
  18.   pinMode(KIMENET, OUTPUT);
  19. }
  20.  
  21. void loop() {
  22.   switch(state){
  23.     case INAKTIV:
  24.       if(digitalRead(GOMB) == LOW){
  25.         state = AKTIV_2S;
  26.         timestamp = millis() + IDO_2S;
  27.         digitalWrite(KIMENET, HIGH);
  28.       }
  29.     break;
  30.     case AKTIV_2S:
  31.       if(timestamp < millis()){
  32.         state = AKTIV_10S;
  33.         timestamp += IDO_8S;
  34.       }
  35.       else if(digitalRead(GOMB) == HIGH){
  36.         state = AKTIV_2S_ELENGEDETT;
  37.       }
  38.     break;
  39.     case AKTIV_2S_ELENGEDETT:
  40.       if(timestamp < millis()){
  41.         state = INAKTIV;
  42.         digitalWrite(KIMENET, LOW);
  43.       }
  44.     break;
  45.     case AKTIV_10S:
  46.       if(digitalRead(GOMB) == HIGH || timestamp < millis()){
  47.         state = INAKTIV;
  48.         digitalWrite(KIMENET, LOW);
  49.       }
  50.     break;
  51.   }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement