Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h>
- int servo_port = 10;
- int left_btn = 7;
- int right_btn = 8;
- int left_led = 12;
- int right_led = 13;
- int initial_angle = 90; // Начальный угол
- int min_angle = 0; // Минимальный угол (при повороте направо)
- int max_angle = 179; // Максимальный угол (при повороте налево)
- int angle = initial_angle; // Угол при включении
- int rotation_delay = 5; // Пауза между шагом поворота
- int rotation_angle_step = 1; // Угол поворота на шаг
- int initial_delay = 1000; // Пауза при запуске на поворот в начальное положение
- Servo servo;
- void setup()
- {
- pinMode(left_btn, INPUT);
- pinMode(right_btn, INPUT);
- pinMode(left_led, OUTPUT);
- pinMode(right_led, OUTPUT);
- servo.attach(servo_port);
- servo.write(angle);
- delay(initial_delay);
- }
- void loop()
- {
- // Left button pressed
- if (digitalRead(left_btn) == HIGH)
- {
- digitalWrite(left_led, HIGH);
- if (angle <= max_angle)
- {
- angle += rotation_angle_step;
- servo.write(angle);
- delay(rotation_delay);
- }
- }
- // Left button unpressed
- if (digitalRead(left_btn) == LOW)
- {
- digitalWrite(left_led, LOW);
- }
- // Right button pressed
- if (digitalRead(right_btn) == HIGH)
- {
- digitalWrite(right_led, HIGH);
- if (angle >= min_angle)
- {
- angle -= rotation_angle_step;
- servo.write(angle);
- delay(rotation_delay);
- }
- }
- // Right button unpressed
- if (digitalRead(right_btn) == LOW)
- {
- digitalWrite(right_led, LOW);
- }
- // Both buttons unpressed
- if ((digitalRead(left_btn) == LOW) && (digitalRead(right_btn) == LOW))
- {
- angle = initial_angle;
- servo.write(angle);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement