12+  Свидетельство СМИ ЭЛ № ФС 77 - 70917
Лицензия на образовательную деятельность №0001058
Пользовательское соглашение     Контактная и правовая информация
 
Педагогическое сообщество
УРОК.РФУРОК
 
Материал опубликовал
Жакыпова Молдир Асилбеккызы20

«Робототехника». Уровень 6. Занятие 13.

Тема занятия: Управление сервоприводом.

Продолжительность занятия: 2 часа.

Arduino UNO. Управление сервоприводом

Сервопривод является очень важным элементом при конструировании роботов и радиоуправляемых моделей.

Во втором уроке мы рассмотрим как при помощи Arduino UNO управлять сервоприводом.

Программа очень проста и наглядна. Начинается она с подключения файла. Данный файл содержит все необходимые команды для управления серво, чтобы облегчить нам жизнь и не изобретать велосипед. Далее, мы должны создать обьект servo. Пусть это будет servoMain. Следующая функция будет setup(), в которой мы указываем, что сервопривод подключен к выводу 10 контроллера.

Теперь все готово и мы можем посылать команды для управления серво. В главной функцииloop(), мы даем различные команды для серводвигателя, выдерживая паузы между командами.

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

/*

Arduino Servo

*/

#include "Servo.h"

Servo servoMain; // Объект Servo

 

void setup()

{

    servoMain.attach (10); // Servo присоединен к 10 выводу

}

 

void loop()

{

    servoMain.write (45);  // Повернуть серво влево на 45 градусов

   delay(2000);          // Пауза 2 сек.

    servoMain.write (0);   // Повернуть серво влево на 0 градусов

   delay(1000);          // Пауза 1 сек.

    servoMain.write (90);  // Повернуть серво на 90 градусов. Центральная позиция

   delay(1500);          // Пауза 1.5 сек.

    servoMain.write (135); // Повернуть серво вправо на 135 градусов

   delay(3000);          // Пауза 3 сек.

    servoMain.write (180); // Повернуть серво вправо на 180 градусов

   delay(1000);          // Пауза 1 сек.

    servoMain.write (90);  // Повернуть серво на 90 градусов. Центральная позиция

   delay(5000);          // Пауза 5 сек.

}

Используемый в проекте сервопривод содержит 3 провода: черный, красный и оранжевый или белый

Схема подсоединения к Arduino следующая: черный провод присоединяем к выводу Arduino 0V, красный к Arduino 5V и оранжевый/белый к 10 выводу Arduino UNO.
 

Arduino UNO. Управление сервоприводом через фоторезистор

 

01

/*Управляем сервой в зависимости от освещенности

02

Используем фотосопротивление, может быть любой аналоговый сенсор

03

*/

04

#include //Подключаем библиотеку Servo

05

Servo motor;

06

 int sensePin = 0;//Обьявляем 0 аналоговый пин

07

void setup()

08

{

09

analogReference(DEFAULT); //Объявляем диапазон чтения с аналогового порта.Необязательное

10

/* Будем смотреть вывод на сериальном мониторе с Ардуино, для чего его инициализируем

 

11

  Заодно можно посмотреть диапазон работы датчика чтобы в этом диапазоне поворачивать серву*/

12

   Serial.begin (9600);

13

   motor.attach(10); // Подключаем серву на 10 пин

14

}

15

  

16

void loop()

17

{

18

  // Печатаем на монитор

19

   Serial.println (analogRead(sensePin));

20

  int val = analogRead(sensePin);// Создаем переменную val для чтения analogRead

21

  val= constrain(val,230 ,699);// Ограничиваем диапазон работы датчика посмотрев его на мониторе

22

  int motorAngl = map(val,699, 230, 180,0);//Преобразуем диапазон выдаваемый датчиком в диапазон углов сервы

23

   motor.write(motorAngl);// Устанавливаем серву на угол который получаем через преобразование

24

 }

Опубликовано


Комментарии (0)

Чтобы написать комментарий необходимо авторизоваться.