f_andreuzzi

due_led

Nov 19th, 2019
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. /*
  2.  
  3. */
  4.  
  5. const int LED_1 = 7;
  6. const int LED_2 = 8;
  7. const int BUTTON_IN = 6;
  8.  
  9. const int STATO_SPENTO = 0;
  10. const int STATO_ACCESO_1 = 1;
  11. const int STATO_ACCESO_2 = 2;
  12. const int STATO_ACCESO_12 = 3;
  13.  
  14. int stato = STATO_SPENTO;
  15. int lastButton = 0;
  16.  
  17. // viene eseguita una sola volta
  18. void setup() {
  19. pinMode(LED_1, OUTPUT);
  20. pinMode(LED_2, OUTPUT);
  21. pinMode(BUTTON_IN, INPUT);
  22. }
  23.  
  24. // viene eseguita in loop infinite volte
  25. void loop() {
  26. int button = digitalRead(BUTTON_IN);
  27.  
  28. if(button == HIGH) {
  29. if(lastButton == 0) {
  30. lastButton = 1;
  31.  
  32. switch(stato) {
  33. case STATO_SPENTO:
  34. stato = STATO_ACCESO_1;
  35. break;
  36. case STATO_ACCESO_1:
  37. stato = STATO_ACCESO_2;
  38. break;
  39. case STATO_ACCESO_2:
  40. stato = STATO_ACCESO_12;
  41. break;
  42. case STATO_ACCESO_12:
  43. stato = STATO_SPENTO;
  44. break;
  45. }
  46.  
  47. digitalWrite(LED_1, led1(stato));
  48. digitalWrite(LED_2, led2(stato));
  49. }
  50. } else {
  51. lastButton = 0;
  52. }
  53. }
  54.  
  55. int led1(int stato) {
  56. if(stato == STATO_ACCESO_1 || stato == STATO_ACCESO_12) return HIGH;
  57. else return LOW;
  58. }
  59.  
  60. int led2(int stato) {
  61. if(stato == STATO_ACCESO_2 || stato == STATO_ACCESO_12) return HIGH;
  62. else return LOW;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment