Найти тему
Алексей Кретов

Сервоприводы в Arduino. §3. Управляем сервоприводом с помощью датчика

Оглавление

После 2 предыдущих заданий мы имеем настроенный сервопривод и программный код, с которым будем дальше работать.

Работа с сервоприводом по заданной программе это конечно хорошо, но что за робот может получиться, если он не взаимодействует с внешним миром?

Выбор датчика

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

Для задания подойдет любой датчик (ИК, УЗ, PIR, датчик света)способный определить наличие предмета перед ним, главное, что датчик должен быть бесконтактным. Если датчика нет, то можно воспользоваться самой простой технологией.

Работа с чтением аналоговых показаний.

В простейшем виде выглядит вот так:

Возьмем стандартный пример
Возьмем стандартный пример
Уберём лишние коментарии
Уберём лишние коментарии

В начале цикла мы считываем показание датчика, затем проверяем, что бы не было показаний, которые выбиваются за рамки возможностей сенсора (редко, но бывает сильный шум или ошибки чтения АЦП)

Далее показания мы преобразуем в значение яркости светодиода (нужно отключить сервопривод от 9 пина!).

Полученные числа мы выводим в монитор порта.

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

Задача 3

На основании только материала марафона выполнить программу, которая бы поворачивала сервопривод (открывала крышку, шлагбаум, дверь) на угол 60 градусов, при срабатывании любого сенсора.

Сенсорная коробочка
Сенсорная коробочка