Подключение сервопривода и потенциометра.
Подключение сервопривода.
Как уже говорилось ранее один маломощный сервопривод, потребляющий слабый ток, еще можно подключить напрямую к 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. Откройте монитор порта и посмотрите какие значения угла поворота вала сервопривода соответствуют различным значениям напряжения на потенциометра.