Advertisement
heidepower

Untitled

Nov 2nd, 2019
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. int buttonState;
  2. int state = 0;
  3. int buttonStateLOW = 0;
  4. unsigned long ButtonDebonce;
  5. unsigned long currentMillis = 0;
  6. unsigned long startMillis = 0;
  7.  
  8. unsigned long timestamp;
  9. const long anzeigedauer = 5000;
  10.  
  11.  
  12. void setup()
  13. {
  14. Serial.begin(9600);
  15. pinMode(8, INPUT_PULLUP);
  16. pinMode(4, OUTPUT);
  17. pinMode(5, OUTPUT);
  18. }
  19.  
  20. void loop()
  21. {
  22. currentMillis = millis();
  23.  
  24. //Zähler 0-3
  25. buttonState = digitalRead(8);
  26.  
  27. if (buttonState == LOW) {
  28. if (buttonStateLOW == 0)
  29. {
  30. buttonStateLOW = 1;
  31. ButtonDebonce = currentMillis;
  32. Serial.println("Button LOW, Start debunce");
  33. }
  34. }
  35. else
  36. {
  37. if (buttonStateLOW == 1)
  38. {
  39. if (currentMillis - ButtonDebonce > 100)
  40. {
  41. state++;
  42. startMillis = millis(); //zeit bei tastendruck speichern.
  43. if (state == 4)
  44. {
  45. state = 0;
  46. }
  47. Serial.println("Button HIGH, Inc state");
  48. Serial.println(state);
  49. //timestamp = currentMillis;
  50. }
  51. else
  52. {
  53. Serial.println("Button HIGH, Time to short");
  54. }
  55. buttonStateLOW = 0;
  56. }
  57. }
  58.  
  59. //Ansteuerung von zwei LEDs
  60. switch (state)
  61. {
  62. case 0: //nix los
  63. Serial.println("state 0");
  64. digitalWrite(4, LOW);
  65. digitalWrite(5, LOW);
  66. break;
  67.  
  68. case 1: //taste
  69. Serial.println("state 1 hoch");
  70. if(millis() > startMillis+anzeigedauer)
  71. {
  72. state++;
  73. }
  74. digitalWrite(4, LOW);
  75. digitalWrite(5, HIGH);
  76. break;
  77.  
  78. case 2: //timer oder taste aktivieren state 2
  79. Serial.println("state 2 off");
  80. digitalWrite(4, LOW);
  81. digitalWrite(5, LOW);
  82. break;
  83.  
  84. case 3:
  85. Serial.println("state 3 runter");
  86. if(millis() > startMillis+anzeigedauer)
  87. {
  88. state++;
  89. }
  90. digitalWrite(4, LOW);
  91. digitalWrite(4, HIGH);
  92. break;
  93.  
  94. case 4:
  95. state=0;
  96. break;
  97. }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement