Cервопривод. Датчики. Ардуино

Подключаем сервопривод к ардуино
Подключаем сервопривод к ардуино
Подключаем сервопривод к ардуино

Привет! Продолжаем подключать датчики к ардуино. Сегодня на очереди серводвигатель или сервопривод.

В чем интерес серводвигателя для нас? Используя схему из предыдущего урока мы можем управлять им с помощью ручки потенциометра. Поэтому если вы уже забыли предыдущий пост или пропустили его, пожалуйста, посмотрите его здесь.

Подключение потенциометра. Датчики. Ардуино

Серводвигатели, замечательны тем, что с помощью управляющих команд можно установить вал двигателя в определенное положение. И это положение будет сохраняться до поступления новых команд.

Стандартные сервоприводы имеют фиксированный диапазон углов поворота, от 0 до 180 градусов. Они основаны на потенциометре, который соединен с приводным валом. Он определяет угол поворота.

Управление происходит подачей импульса на управляющий контакт. Длительность импульса определяет угол поворота.

Если убрать из схемы потенциометр, получится сервопривод непрерывного вращения, который сможет вращаться постоянно, при этом длительность импульса определяет скорость вращения.

Cервопривод

Контакты сервопривода. Желтый контакт - контакт управления
Контакты сервопривода. Желтый контакт — контакт управления

Серводвигателю нужен отдельный источник питания. Как и плата ардуино он работает от 5 вольт. Но при выполнении команд потребляет ток в несколько сотен миллиампер. При питании ардуино от usb максимально возможный ток равен 500 мА.

Однако, в неподвижном состоянии серводвигатель потребляет малый ток. Поэтому для теста мы подключим привод к ардуино напрямую.

Но помните, что для настоящих проектов или для подключения нескольких сервоприводов отдельный источник питания необходим. Кроме того, при недостаточном питании вал привода будет перемещаться неустойчиво, а перемещение вала приводит к скачкам напряжения через схему и может повредить плату.

Для того, чтобы постоянно поддерживать точное положение вала привода, нужно отправлять сигналы каждые 20 миллисекунд. Для упрощения программирования приводов уже написана библиотека Arduino Servo, которую мы будем использовать, чтобы не переписывать весь код. Кроме того, в стандартной библиотеке примеров уже есть программа управления двигателем от потенциометра, так что рассмотрим ее.

Программа

Откроем программу Knob из меню File — Examples — Servo.

Подключим библиотеку Servo.h в самом начале программы, чтобы иметь возможность использовать функции из этой библиотеки. И создадим экземпляр объекта Servo через который будем обращаться к методам.

#include <Servo.h>
Servo myservo;  // create servo object to control a servo

Добавим в программу возможность вывода информации в последовательный порт и загрузим в ардуино.

Принципиальная схема подключения сервопривода
Принципиальная схема подключения сервопривода

Полный текст программы

#include <Servo.h>
Servo myservo;  // create servo object to control a servo
int potpin = 0;  // analog pin used to connect the potentiometer
int val,scale;    // variable to read the value from the analog pin
void setup() {
  Serial.begin(9600);
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}
void loop() {
  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023)
  scale = map(val, 0, 1023, 0, 180);     // scale it to use it with the servo (value between 0 and 180)
  myservo.write(scale);                  // sets the servo position according to the scaled value
  delay(15);                           // waits for the servo to get there

  Serial.print("potentiometer = ");
  Serial.print(val);
  Serial.print("\t servo = ");
  Serial.println(scale);
}
Управляем сервоприводом с помощью потенциометра
Управляем сервоприводом с помощью потенциометра

Заключение

Мы подключили к ардуино сервопривод и настроили управление положением сервопривода от потенциометра. Такая схема используется во многих проектах и готовых устройствах. В следующих уроках мы посмотрим на ультразвуковой датчик расстояния и попробуем создать наш первый проект на основе уже известных датчиков.

Добавить комментарий

Ваш адрес email не будет опубликован.