Advertisement
Guest User

Servo Toggle

a guest
May 4th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. #include <Servo.h>
  2.  
  3. /**
  4. TODO: Status beim Neustart des Arduinos
  5. Funktioniert alles? -> Optimieren!
  6. */
  7.  
  8. // Zeit zwischen den Hauptschleifen in ms
  9. #define PROG_IDLE 100
  10.  
  11. // Pin des Schalter-Push-Buttons
  12. #define PIN_BUTTON 2
  13. // Pin der Onboard-LED (optionale Anzeige)
  14. #define PIN_ONBOARDLED 13
  15. // Pin der Servos
  16. #define PIN_SERVO_TOGGLER 3
  17.  
  18. // Standard Position des Servos
  19. #define SERVO_REST_POS 180
  20. // Unteres Limit des Servos
  21. #define SERVO_LIMIT_LOW 0
  22. // Oberes Limit des Servos
  23. #define SERVO_LIMIT_UP SERVO_REST_POS
  24.  
  25. // Arbeitsvariable, Status des Buttons (HIGH | LOW)
  26. int var_read = 0;
  27. // var_read aus dem letzten Tick
  28. int var_prev_read = LOW;
  29. // Arbeitsvariable, Status des Servos
  30. int var_state = LOW;
  31.  
  32. // Servo Class-Object
  33. Servo servo_Toggler;
  34.  
  35.  
  36. void setup()
  37. {
  38. pinMode(PIN_BUTTON, INPUT);
  39. pinMode(PIN_ONBOARDLED, OUTPUT);
  40.  
  41. servo_Toggler.attach(PIN_SERVO_TOGGLER);
  42. // sodass der Servo nicht automatisch auf 0 geht
  43. servo_Toggler.write(SERVO_REST_POS);
  44. }
  45.  
  46. void loop()
  47. {
  48.  
  49. var_read = digitalRead(PIN_BUTTON);
  50.  
  51. if(var_read == HIGH && var_prev_read == LOW)
  52. {
  53. // Logik Switch
  54. switch(var_state)
  55. {
  56. case LOW:
  57. var_state = HIGH;
  58. servo_Toggler.write(SERVO_LIMIT_LOW);
  59. break;
  60.  
  61. case HIGH:
  62. var_state = LOW;
  63. servo_Toggler.write(SERVO_LIMIT_UP);
  64. break;
  65.  
  66. default:
  67. break;
  68. }
  69. }
  70.  
  71. var_prev_read = var_read;
  72. delay(PROG_IDLE);
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement