Advertisement
fuccpuff

servo

Sep 25th, 2024
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. #include <Servo.h> // подключаем библиотеку Servo.h для управления сервоприводом
  2.  
  3. int sensorPin = A0; // пин, к которому подключен аналоговый датчик
  4. int servoPin = 9; // пин, к которому подключен сервопривод
  5.  
  6. int sensorValue = 0; // переменная для хранения значения, полученного с аналогового датчика
  7. int servoGrad = 90; // начальный угол сервопривода, установлен на 90 градусов (среднее положение)
  8. int tolerance = 40; // допустимый диапазон отклонений для показаний датчика, чтобы учитывать погрешности
  9.  
  10. Servo myservo; // создаем объект myservo для управления сервоприводом
  11.  
  12. void setup() {
  13. pinMode(sensorPin, INPUT); // устанавливаем пин с датчиком как входной, чтобы считывать данные
  14. myservo.attach(servoPin); // привязываем объект myservo к пину для управления сервоприводом
  15. myservo.write(servoGrad); // устанавливаем начальное положение сервопривода на 90 градусов
  16. }
  17.  
  18. void loop() {
  19. sensorValue = analogRead(sensorPin); // читаем текущее значение с аналогового датчика (от 0 до 1023)
  20.  
  21. // если значение с датчика меньше (512 - tolerance), нужно повернуть сервопривод вправо
  22. if (sensorValue < (512 - tolerance)) {
  23. if (servoGrad < 180) { // проверяем, что текущий угол меньше 180 градусов, чтобы не выйти за пределы
  24. servoGrad++; // увеличиваем угол на 1 градус
  25. myservo.write(servoGrad); // обновляем положение сервопривода
  26. }
  27. }
  28.  
  29. // если значение с датчика больше (512 + tolerance), нужно повернуть сервопривод влево
  30. if (sensorValue > (512 + tolerance)) {
  31. if (servoGrad > 0) { // проверяем, что текущий угол больше 0 градусов, чтобы не выйти за пределы
  32. servoGrad--; // уменьшаем угол на 1 градус
  33. myservo.write(servoGrad); // обновляем положение сервопривода
  34. }
  35. }
  36. }
  37.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement