В этом уроке
- Собираем робота, производим подключения
- Настройка напряжения питания
- Что такое АЦП и как из Arduino сделать вольтметр
Видео версия урока
Помните, ранее мы подключали зуммер к контроллеру при помощи проводов? Представляете, как много было бы проводов, если бы мы подключали все модули, необходимые для работы машинки, такими же шлейфами?
Поэтому мы разработали основу машинки — плату с проводниками внутри. На неё мы сможем удобно установить все модули, а также обойдёмся минимальным количеством соединений.
Давайте начнём сборку!
Сборка машинки
- Аккуратно разломите штангу пополам — это позволит сделать машинку компактнее.
- Установите шаровую опору на штангу при помощи шурупов.
- Закрепите штангу с опорой на плате-основе, используя винты и гайки.
- Закрепите моторы с нижней стороны платы-основы, используя винты и гайки.
- Установите колёса на оси моторов.
- Установите контроллер Arduino Nano. Будьте внимательны и ставьте его правильной стороной! Ориентируйтесь по надписям на контроллере и плате-основе.
- Прикрутите стойки на плату-основу, используя гайки.
- Закрепите источник питания на стойках при помощи винтов.
Вставьте аккумулятор, соблюдая полярность. Она обозначена на отсеке и аккумуляторе. Совместите их. Должно получиться так: - Подключите правый мотор (пока только один, позже Вы поймете, почему мы не подключили сразу оба). Для подключения мотора требуётся два шлейфа:
- Соедините разъёмы питания 5V и 5-12V платы-основы и источника питания.
Будьте осторожны с аккумулятором! Его повреждения могут вызвать возгорание! Берегите его от падения, повреждения, прямых солнечных лучей и соблюдайте полярность.
Также обращаем внимание на то, что перед Вами не батарейка, а именно аккумулятор. Его напряжение выше, чем у обычной батарейки, — 3,7В. Для того, чтобы его зарядить, используйте провод Micro USB, просто вставив его в соответствующий разъём модуля питания.
Кстати, во время заряда аккумулятора контроллером можно пользоваться и работать с ним, как обычно.
Первый — шлейф питания — подключается к колодкам Vmot платы-основы и модуля мотора. Благодаря этому проводу, мотор будет получать питание от аккумулятора для работы.
Второй — шлейф сигнала (шина I2C) — подключается к колодкам I2C платы-основы и модуля мотора. Необходим для подачи управляющего сигнала на модуль (включить / выключить мотор, задать скорость вращения и т.д.).
Соблюдайте полярность при подключении проводов! Ориентируйтесь по черному проводу. Он подключается к GND (или к "—" питания ).
Установка напряжения питания моторов
При помощи отвёртки поверните движок подстроечного резистора по стрелке min, тем самым установив напряжение на минимум. Данные моторы предназначены для работы с минимально возможным для этой платы напряжением питания.
Тем не менее, в случае необходимости Вы можете выставить напряжение питания больше, если нужно увеличить максимальную скорость движения. Но ездить долго в таком режиме мы не рекомендуем.
Измерение напряжения с помощью Arduino
Выход с регулятора напряжения подключен к выводу контроллера А0 (через делитель напряжения с коэффициентом 1/3). То есть мы можем отслеживать напряжение с помощью контроллера. Давайте попробуем.
Для начала посмотрим значения АЦП (аналого-цифрового преобразователя) на выводе А0.
Аналого-цифровой преобразователь — название модуля внутри микроконтроллера, который позволяет преобразовать аналоговый сигнал (напряжение, подаваемое на вход контроллера) в цифровой сигнал, с которым контроллер уже может работать.
void setup() { Serial.begin(9600); // Настраиваем COM-порт на работу со скоростью 9600 бит/сек pinMode(A0, INPUT); // Конфигурируем А0 как вход } void loop() { Serial.println(analogRead(A0)); // Выводим в порт считанные с аналогового пина данные }
АЦП преобразует аналоговый сигнал (напряжение) в цифровой вид, понятный контроллеру. Данные АЦП на аналоговом порту могут принимать значения от 0 до 1023. Функция analogRead(pin) (6 строка) позволяет получать эти значения.
Подключите машинку к компьютеру, загрузите прошивку и откройте монитор последовательного порта. Вращайте движок подстроечного резистора и следите за значениями в порту. Запомните или запишите минимальное и максимальное значения. Эти значения соответствуют 5 и 12 Вольтам. Нам остаётся только преобразовать значения АЦП в напряжение. Уже догадались, как это сделать?
У нас получились значения 309 для 5В и 804 для 12В. Выходит, что значения АЦП в среднем в 64.4 раза больше напряжения (у Вас данные будут несколько отличаться).
Финальный код будет выглядеть следующим образом:
void setup() { Serial.begin(9600); pinMode(A0, INPUT); } void loop() { Serial.println(analogRead(A0)/64.4); }
Теперь мы знаем напряжение, которое подаётся на моторы. Чуть позже нам это пригодится, а пока поздравляем — Вы собрали машинку и узнали о новой функции.
Обсуждение