Скетч управления сервоприводом.




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

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

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

GND на любой из GND пинов­­­ ардуино

VTG на + 5 вольт на ардуино

SIG на ШИМ (PWM) вывод ардуино

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

Вариант 1

Можно приобрести блок питания на 5 или 6 вольт, в зависимости от напряжения питания вашего сервопривода и питать сервопривод от него.

Вариант 2

В случае, если под рукой нет стабилизированного источника питания на 5 Вольт, но имеется любой другой источник питания (аккумулятор или сборка из батареек) с напряжением 6-12 В, то из него можно легко получить требуемое напряжение для сервопривода с помощью стабилизатора напряжения - специальной микросхемы, которая более высокое напряжение питания преобразует в стабилизированное напряжение определенной величины.

Рассмотрим самый простой стабилизатор L7805, требующий минимум деталей внешней обвязки.

Стабилизатор имеет 3 ноги:

1 - Вход. На него подается напряжение от 6 до 12 Вольт

2 - Общий минус

3 - Выход 5 вольт

L7805 отечественный аналог КР142ЕН5А - выходное напряжение 5 Вольт.

Как видно из рисунка необходима установка конденсаторов, можно и без них, но выходное напряжение будет не стабильным. Рекомендуемые номиналы конденсаторов: на входе 0.33 мкФ, на выходе 0.1 мкФ. Лучше поставить два электорлита по 100 мкФ. Чем больше - тем лучше.

ВНИМАНИЕ! Не забудьте соединять земли источников питания сервопривода и платы микроконтроллера иначе схема работать не будет.

Управление сервоприводом с помощью потенциометра.

Ардуино позволяет не только управлять, но и считывать показания с сервопривода. Команда servo.read() считывает текущий угол поворота вала сервопривода и его мы можем увидеть на мониторе порта. Рассмотрим более сложный пример управления сервоприводом с помощью потенциометра.

Скетч управления сервоприводом.

#include <Servo.h> // подключаем библиотеку для работы с сервоприводом

Servo servo; // объявляем переменную servo типа "servo"

int angle = 0; // переменная для хранения угла поворота сервопривода

void setup() // процедура setup

{

servo.attach(10); // привязываем сервопривод к выходу 10

pinMode(A0, INPUT); // к аналоговому входу A0 подключим потенциометр

Serial.begin(9600); // подключаем монитор порта

}

void loop() // процедура loop

{

angle=map(analogRead(A0),0,1023,0,180);// масштабируем значение A0 к интервалу 0-180

servo.write(angle); // передаем значение угла поворота для вала сервопривода

Serial.println(analogRead(A0)); // выводим показания потенциометра на монитор

Serial.println(servo.read()); // выводим значение угла поворота вала сервопривода на монитор

Serial.println (); // выводим пустую строчку на монитор порта

delay (1000); // задержка в одну секунду

}

Пояснения к коду:

1. В этот раз мы присвоили имя для сервопривода в скетче, как servo;

2. Команда map(analogRead(A0),0,1023,0,180) преобразует получаемое с потенциометра на аналоговый вход А0 значение напряжения, в диапазоне от 0 до 1023, в значение от 0 до 180.

3. Команда servo.write(angle) оправляет значение угла поворота на сервопривод.

4. Команда Serial.println (analogRead(A0)) считывает значение показания потенциометра и передает его на монитор порта.

5. Команда Serial.println (servo.read()) считывает значение угла поворота вала сервопривода и передает его на монитор порта.

На что обратить внимание:

1. На мониторе порта мы можем увидеть угол поворота вала сервопривода.

2. Стандартные библиотеки находятся в папке «C:\Program Files\Arduino\libraries».

Вопросы к уроку:

1. Почему питание на сервопривод рекомендуется подавать от отдельного источника питания?

2. Зачем в данной схеме нам нужно считывать напряжение на потенциометре?

3. Откуда берется значение угла поворота вала сервопривода?

Дополнительное задание:

1. Соберите схему с потенциометром и загрузите скетч управления сервоприводом.

2. Попробуйте поуправлять сервоприводом при помощи вращения ручки потенциометра Проверьте работу программы.

3. Откройте монитор порта и посмотрите какие значения угла поворота вала сервопривода соответствуют различным значениям напряжения на потенциометра.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-11-28 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: