Лабораторные работы  Технологии+Бизнес

Цель работы: обучение Arduino

Задача: научиться управлять серводвигателем

 

Сборка лабораторной установки


Для достижения поставленной задачи, подготовим все необходимые нам детали.

Компоненты лабораторной установки: 

1. Контроллер Arduino Leonardo

2. Сервопривод

3. Провода для подключения

Схема лабораторной установки: 


Алгоритм выполения работы:

1. Подключаем пин, подключая оранжевый провод к пину №9

2. Подключаем напряжение (красный)

3. Подключаем заземление (черный)

4. Подключаем микроконтроллер к сети.

 Подробное описание подключения можно посмотреть в следующем видео:

Работа в среде программирования Arduino IDE

Теперь напишем код программы:

#include <Servo.h> //Подключение библиотеки Servo.h
Servo servoPrivod; //Создаем объект типа Servo для работы с сервоприводом
int grad = 0; //Угол поворота сервопривода

void setup()
{
servoPrivod.attach(9); //Подключаем сервопривод к пину 9
}

void loop() {
servoPrivod.write(0);// Ставим угол поворота: 0
delay(2000);// Ждем 2 секунды
servoPrivod.write(90);// Ставим угол поворота: 90
delay(2000);// Ждем 2 секунды
servoPrivod.write(180); // Ставим угол поворота: 180
delay(2000);// Ждем 2 секунды
servoPrivod.write(0);// Ставим угол поворота: 0
delay(2000);// Ждем 2 секунды
servoPrivod.writeMicroseconds(1500); // Установим длительность управляющего импульса
grad = servoPrivod.read(); //Считываем значение текущего положения сервопривода
for(int i = grad; i > 0; i -= 1)
{ //Цикл от grad до 0 градусов с шагом 1
servoPrivod.write(i); //Передать на сервопривод угол поворота
delay(100); //Задержка на 0,1 сек
}
delay(1000); //Задержка на 1 сек
}
 

Подробное описание кода смотрите в этом видео:

Так же Вам могут понадобиться следующие команды:

myservo.attached(); //Проверяем, привязан ли сервопривод. Возвращает логическое значение bool.

myservo.detach(); //Отключает сервопривод от пина.


 

Вопросы:


1. Выполните задание: напишите строку программы, в которой будет присутствовать подключение сервопривода к пину №10.

 


2. В каких пределах можно задавать угол поворота с помощью функции write()?
а) от 0 до 360 градусов
б) от -180 до 180 градусов
в) от 0 до 180 градусов

3. Какого типа значение возвращает функция read()?
а) int
б) double
в) float

4. Заполните пропуск: с помощью стандартной библиотеки Servo можно управлять не более, чем ... сервоприводами

 


5. На каких пинах нет ШИМ? 
а) 8,  9, 10
б) 9, 10
в) 8, 10

 

6. Из чего состоит сервопривод?

 

7. Принцип работы сервопривода?

 

8. Можно ли подключать сервопривод от истоника внешнего питания?

Лабораторные работы   Технологии+Бизнес