Arduino урок 5 — Сервопривод

Сервопривод — это такая конструкция с мотором, где мы можем управлять положением вала мотора.

Большое применение сервоприводов отмечается в построении роботов или прочих проектах с применением механических действий.

Для управления сервоприводом в Arduino предусмотрена библиотека Servo.h, которую следует подключать отдельно. Вызывается она командой #include <Servo.h> в самом начале скетча. Данная библиотека уже есть в наличии Arduino IDE.

Для управления сервоприводом используют следующие команды:

  • attach() — Подключает Servo к указанному выходу
  • write() — Передает значения для управления приводом
  • writeMicroseconds() — Передает значение для управления сревоприводом в микросекундах
  • read() — Считывает значение текущего положения сервопривода
  • attached() — Проверяет если переменная Servo подключена к выходу
  • detach() — Отсоединяет переменную Servo от указанного выхода

Важно учесть, что подключать сервоприводы нужно к пинам ШИМ. И еще важное замечание — не стоит подключать питание сервопривода к выходам +5v и gnd на Arduino, под высокой нагрузкой от сервоприводов Arduino выйдет из строя. Так что используйте внешний источник питания.

Для урока понадобятся:

  • Arduino
  • Провода
  • Сервопривод
  • (макетная плата)
  • (потенциометр)

Соединяем как на тут:

Arduino урок 5 — Сервопривод

 

 

Загружаем простой скетч, который поворачивает вал на заданный градус.

#include <Servo.h> //используем библиотеку для работы с сервоприводом
Servo servo; //объявляем переменную servo типа Servo
void setup() //процедура setup
{
servo.attach(10); //привязываем привод к порту 10
}
void loop() //процедура loop
{
servo.write(0); //ставим вал под 0
delay(2000); //ждем 2 секунды
servo.write(180); //ставим вал под 180
delay(2000); //ждем 2 секунды
}

 

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

потенциометр

#include <Servo.h>
Servo servo;
void setup()
{
servo.attach(10);
}
void loop()
{
servo.write(analogRead(A1)/4); // потенциометр передает значения для вала
}

 

Поделись с друьями:
  • Добавить ВКонтакте заметку об этой странице
  • Мой Мир
  • Facebook
  • Twitter
  • LiveJournal
  • MySpace
  • В закладки Google
  • Яндекс.Закладки
  • LinkedIn
  • Reddit

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *