Servo_01.ino 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include <MobaTools.h>
  2. /* Demo zum langsamen Bewegen eines Servos
  3. * Die aktuelle Version der MoBatools erlaubt bis zu 16 Servos nur an beliebigen Pins
  4. * Eine gleichzeitige Verwendung mit der Standard Servo Library des Arduino
  5. * ist nicht möglich, da die gleichen HW-Komponenten verwendet werden.
  6. * Die Aufrufe sind kompatibel zur Standard-Servo Library.
  7. * zusätzliche Aufrufe:
  8. * Servo2.setSpeed( wert ); Vorgabe der Geschwindigkeit. Je größer die Zahl, umso
  9. * größer ist die Geschwindigkeit. Bei 0 (defaultwert)
  10. * verhält das Servo sich wie bei der Standard Bibliothek
  11. * byte = Servo2.moving(); gibt den noch verbleibenden Fahrweg in % vom gesamten
  12. * Verfahrweg an. Bei 0 hat das Servo die Zielposition
  13. * erreicht und steht.
  14. * fehlende Aufrufe:
  15. * writeMicroseconds() auch beim normalen write Aufruf können Microsekunden übergeben
  16. * werden. Die Unterscheidung Winkel (0..180) und Mikrosekunden
  17. * ( 700...2300 )ergibt sich aus dem Zahlenwert.
  18. *
  19. */
  20. // Die Taster müssen so angeschlossen sein, dass der Eingang bei gedrücktem
  21. // Taster auf LOW (=0) geht.
  22. const int tasterPin1 = 2; //Taster1 Pin 2
  23. const int tasterPin2 = 3; //Taster2 Pin 3
  24. const int servoPin = 9; // Anschluß für den Servo
  25. // bei Werten, die sich im Programm nie verändern, sollte immer 'const' vorangestellt
  26. // werden
  27. bool tasterStatus1, tasterStatus2;
  28. Servo8 meinServo;
  29. void setup() {
  30. pinMode(tasterPin1, INPUT_PULLUP); // so ist kein externer pullup Widerstand am
  31. pinMode(tasterPin2, INPUT_PULLUP); // Taster erforderlich
  32. meinServo.attach(servoPin); //Servo an Pin 9
  33. meinServo.setSpeed( 5 ); // Verfahrgeschwindigkeit einstellen
  34. }
  35. void loop() {
  36. tasterStatus1 = digitalRead(tasterPin1);
  37. tasterStatus2 = digitalRead(tasterPin2);
  38. if (tasterStatus1 == LOW) {
  39. meinServo.write(40); //wird langsam drehen
  40. delay(100);
  41. }
  42. if (tasterStatus2 == LOW) {
  43. meinServo.write(120); //wird langsam drehen
  44. delay(100);
  45. }
  46. delay(20);
  47. }