Энкодер
Это понятие впервые встречается на программе «Электроника, программирование и инженерная практика» — примерно 13-14 лет (7-8 класс).
Датчик-счётчик поворотов: замечает каждый шажок вращения вала и сообщает, на сколько тот повернулся.
Шагомер для колеса: как шагомер считает твои шаги, так энкодер считает «шаги» вращения — и по их числу узнают пройденный путь.
Сделать энкодер самому: бумажный диск с чёрными секторами на колесе и ИК-датчик рядом; провернуть колесо на оборот и посмотреть, на сколько вырос счётчик; предсказать число для двух оборотов и проверить.
Датчик угла поворота: на валу — диск с метками (прорезями или магнитами), рядом — датчик, дающий электрический импульс на каждую метку. Программа считает импульсы: их число — угол поворота, число в секунду — скорость вращения. Так робот узнаёт, сколько на самом деле проехало каждое колесо.
Для самодельного энкодера (диск с 8 чёрными секторами + ИК-датчик) измерить диаметр колеса и рассчитать, сколько импульсов набежит за метр пути; проверить, прокатив колесо вдоль рулетки.
Преобразователь угла поворота в сигнал. Инкрементальный выдаёт импульсы; разрешение — импульсов на оборот; направление вращения даёт второй канал, сдвинутый на четверть периода (квадратура). Абсолютный сразу выдаёт код текущего угла и не теряет позицию при выключении питания. Импульсы, пропущенные из-за медленного опроса, — потерянный путь, поэтому счёт вешают на прерывания. Энкодер замыкает обратную связь по положению в промышленных сервоприводах; в хобби-серво ту же роль играет потенциометр.
Подключить энкодер (готовый или самодельный диск с ИК-датчиком) к выводу прерывания Arduino и остановить мотор ровно после 10 оборотов; проверить точность по флажку на валу.
Частое заблуждение
«Мотор с энкодером сам едет ровно и точно». Нет: энкодер только считает повороты вала; точным движение делает программа, которая по этим счётчикам подправляет моторы.