Текущее время: 03 окт 2024, 15:07

Калининград & ХОББИ

Занятие любимым хобби - это путь к счастливой жизни!

Урок 9. Подключение серводвигателя SG90 к Ардуино

Обучение с нуля, шаг за шагом.
Аватар пользователя
 
Сообщений: 795
Зарегистрирован: 27 мар 2013, 22:12

Урок 9. Подключение серводвигателя SG90 к Ардуино

Сообщение -=dp=- » 09 мар 2018, 19:59

Урок 9. Подключение серводвигателя SG90 к Ардуино

Для данного практического занятия нам понадобятся:
1 - плата контроллера Ардуино УНО
2 - серводвигатель SG90
3 - макетная плата
4 - монтажные провода
5 - кабель microUSB > USB

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

Arduino UNO servo.jpg


И скачиваем библиотеку для серводвигателя

Servo.rar
Просмотр и скачивание вложений, доступно только зарегистрированным пользователям.

Аватар пользователя
 
Сообщений: 795
Зарегистрирован: 27 мар 2013, 22:12

Re: Урок 9. Подключение серводвигателя SG90 к Ардуино

Сообщение -=dp=- » 09 мар 2018, 20:23

Далее, распаковываем архив с библиотекой Servo.rar в отдельную папку с тем же именем.
Закрываем, если открыта среда разработки Ардуино IDE.
Копируем папку с файлом Servo.h и остальным содержимым в корневую директорию среды разработки Ардуино IDE, в папку libraries.
Запускаем Ардуино IDE, выбираем пункт ФАЙЛ > ОТКРЫТЬ
Указываем путь к скопированной папке, Servo > examples > Sweep > открываем файл Sweep.ino

И изменяем код следующим образом:

Код: выделить все
// Урок 9. Подключение серводвигателя SG90 к Ардуино

#include <Servo.h>
Servo myservo;
int pos = 0;    //начальная позиция двигателя

void setup() {
  myservo.attach(13);  // указываем вывод подключения двигателя
}

void loop() {
 
delay(5000);
  for (pos = 0; pos <= 180; pos += 1) {
    myservo.write(pos);
    delay(10);
  }

delay(5000);
 
  for (pos = 180; pos >= 0; pos -= 1) {
    myservo.write(pos);
    delay(10);
  }

delay(5000); 
}




В начале кода у нас имеется незнакомая строка
#include <Servo.h>
В этой строке мы подключаем к нашей программе внешнюю библиотеку Servo.h

Далее инициализируем библиотеку
Servo myservo;

Создаем переменную типа Integer с значением начальной позиции двигателя
int pos = 0; //начальная позиция двигателя

В установочном цикле программы пишем команду
myservo.attach(13); // указываем вывод подключения двигателя

В главном цикле программы создаем два цикла для управления серводвигателем

delay(5000);
for (pos = 0; pos <= 180; pos += 1) {
myservo.write(pos);
delay(10);

}

delay(5000);

for (pos = 180; pos >= 0; pos -= 1) {
myservo.write(pos);
delay(10);
}


delay(5000);

Как видим, в цикле у нас сравниваются значения начальной установки серводвигателя 0 градусов и конечной 180 градусов, и если число начальной установки меньше числа конечной установки то увеличиваем число начальной установки на единицу +1 с задержкой 10 м.сек..

Во втором цикле делаем то же самое, только наоборот.

Между циклами устанавливаем задержку 5 секунд
delay(5000);

После загрузки скетча в плату Ардуино, наш серводвигатель начнет поворачиваться на 180 градусов в одну сторону, остановиться на 5 секунд и начнет вращение в другую сторону, опять остановится на 5 секунд и все с начала, по кругу.

Теперь осталось только прикрутить наш серводвигатель к механической защелке например и мы сможем ею управлять, отрывать - закрывать ;)


Вернуться в Обучение Ардуино

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6