Arduino IDE
Для работы с сервомотором будем использовать стандартную библиотеку Servo.h. В этой библиотеке есть несколько полезных нам функций:
- attach(номер_контакта) — инициализация сервомотора;
- write(угол) — поворот на заданный угол;
- read() — получение текущего угла сервомотора.
Пусть самая первая программа сначала повернёт мотор в нулевое положение, потом на угол 90 градусов, потом на 180. И так в цикле.
#include <Servo.h>
Servo myservo;
void setup() {
myservo.attach(3); // подключение сервомотора на контакт 3
}
void loop() {
myservo.write(0); // движение в нулевую позицию
delay(3000);
myservo.write(90); // движение на угол 90
delay(3000);
myservo.write(180); // поворот на угол 180
delay(3000);
}
Загружаем программу на отладочную плату, отключаем её от USB и подключаем к внешнему источнику.
Ручное управление
Теперь напишем программу, с помощью который мы будем управлять поворотом сервомотора при помощи потенциометра. Подключим его к любому из аналоговых входов: A0..A5.
Алгоритм работы программы сводится к трём действиям:
- считывание показаний потенциометра в диапазоне от 0 до 1023;
- преобразование полученного числа в угол от 0 до 180 градусов;
- передача вычисленного угла на сервопривод.
Исходный код:
#include <Servo.h>
Servo servo;
void setup(){
servo.attach(2); // сервомотор на контакте 2
pinMode(A0, INPUT); // потенциометр на контакте A0
}
void loop(){
servo.write((map(analogRead(A0), 0, 1024, 0, 180)));
delay(50);
}
Для отображения множества чисел 0 — 1023 в множество 0-180 используем функцию map. Ту же самую операцию, можно было осуществить с помощью выражения:
int angle = (value / 1023.0) * 180;
Загружаем программу на Ардуино Уно, и смотрим что получилось!
Теперь, вы знаете что такое сервопривод, и можете легко им управлять. Вперед! К созданию роботов-манипуляторов и шагающих роботов-пауков!


Приветствую! А как сделать вместо потенциометра на одной кнопке постоянное вращение на определенный угол туда сюда(80-100),а двумя другими увеличивать амплитуду (60-110) и уменьшать её 85-95?
Як зробити щоб серво привод повертався по годинам. Наприклад . в 2 часа на 90 градусів . в 4 часа на 120 градусів