Guest User

servo_on_buttons

a guest
Dec 23rd, 2015
282
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Servo.h>
  2.  
  3. int servo_port = 10;
  4. int left_btn = 7;
  5. int right_btn = 8;
  6. int left_led = 12;
  7. int right_led = 13;
  8.  
  9. int initial_angle = 90;         // Начальный угол
  10. int min_angle = 0;              // Минимальный угол (при повороте направо)
  11. int max_angle = 179;            // Максимальный угол (при повороте налево)
  12. int angle = initial_angle;      // Угол при включении
  13.  
  14. int rotation_delay = 5;         // Пауза между шагом поворота
  15. int rotation_angle_step = 1;    // Угол поворота на шаг
  16.  
  17. int initial_delay = 1000;       // Пауза при запуске на  поворот в начальное положение
  18.  
  19. Servo servo;
  20.  
  21. void setup()
  22. {
  23.   pinMode(left_btn, INPUT);
  24.   pinMode(right_btn, INPUT);
  25.   pinMode(left_led, OUTPUT);
  26.   pinMode(right_led, OUTPUT);
  27.   servo.attach(servo_port);
  28.   servo.write(angle);
  29.   delay(initial_delay);
  30. }
  31.  
  32. void loop()
  33. {
  34.  
  35.   // Left button pressed
  36.   if (digitalRead(left_btn) == HIGH)
  37.   {
  38.     digitalWrite(left_led, HIGH);
  39.     if (angle <= max_angle)
  40.    {
  41.        angle += rotation_angle_step;
  42.        servo.write(angle);
  43.        delay(rotation_delay);
  44.    }
  45.  }
  46.  // Left button unpressed
  47.  if (digitalRead(left_btn) == LOW)
  48.  {
  49.    digitalWrite(left_led, LOW);
  50.  }
  51.  
  52.  
  53.  // Right button pressed
  54.  if (digitalRead(right_btn) == HIGH)
  55.  {
  56.    digitalWrite(right_led, HIGH);
  57.    if (angle >= min_angle)
  58.     {
  59.         angle -= rotation_angle_step;
  60.         servo.write(angle);
  61.         delay(rotation_delay);
  62.     }
  63.   }
  64.   // Right button unpressed
  65.   if (digitalRead(right_btn) == LOW)
  66.   {
  67.     digitalWrite(right_led, LOW);
  68.   }
  69.  
  70.  
  71.   // Both buttons unpressed
  72.   if ((digitalRead(left_btn) == LOW) && (digitalRead(right_btn) == LOW))
  73.  {
  74.    angle = initial_angle;
  75.     servo.write(angle);
  76.   }
  77.  
  78. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×