admin
21.10.2021, 01:16
Собирая один из проектов с использованием encoder я столкнулся с проблемой. Не смог найти нормально работающего кода для Ардуино. Боле менее работающий код требует подключения двух выходов (A, B) к пинам ардуино D2 и D3 которые используются в коде для внешних прерываний INT0 и INT1. Но в моем проекте эти прерывания нужны обработки других сигналов. Скетчи использующие один пин с прерыванием INT0 или INT1, работаю отвратительно и при вращении вала энкодера вылезает очень много ошибок. Код без использования прерываний работает стабильно, но он не работает в фоновом режиме, его нужно встраивать в тело основной программы, что в свою очередь приводит не своевременному срабатыванию обработчика и пропускам при вращении энкодера. Пришлось написать свой код обработки, который исключает описанные выше проблемы. С дребезгом контактов я не стал бороться программно, так как это приводит к задержкам обработки. Проще и надежней использовать керамические конденсаторы.
i1DayBHzO8I
Схема подключения энкодера к Ардуино
Для считывания сигналов с выходов EC-11, нужно использовать два цифровых входа Arduino.
В схеме подключения я использовал редко используемые мной в своих проектах выводы Arduino(A1 и A2).
Подтягивающие резисторы отсутствуют, так как я использовал внутреннюю подтяжку микроконтроллера.
Конденсаторы нужны для гашения импульсов дребезга контактов. Если у вас новый и хороший энкодер то можно обойтись и без них.
Все используемые в тестировании компоненты из магазина duino.ru
Arduino nano (https://duino.ru/arduino-nano-micro-usb) — 1 шт.
Энкодер EC11 (https://duino.ru/encoder.html) — 1 шт.
Соединительные повода (https://duino.ru/komplekt-soedinitelnyh-provodov-dupont.html) — 3 шт.
Керамические конденсаторы 0,1 мкФ (https://duino.ru/nabor-keramicheskikh-kondensatorov) — 2 шт.
52525
Ссылка на полную статью https://duino.ru/blog/all/enkoder-arduino-kod-obrabotki/
i1DayBHzO8I
Схема подключения энкодера к Ардуино
Для считывания сигналов с выходов EC-11, нужно использовать два цифровых входа Arduino.
В схеме подключения я использовал редко используемые мной в своих проектах выводы Arduino(A1 и A2).
Подтягивающие резисторы отсутствуют, так как я использовал внутреннюю подтяжку микроконтроллера.
Конденсаторы нужны для гашения импульсов дребезга контактов. Если у вас новый и хороший энкодер то можно обойтись и без них.
Все используемые в тестировании компоненты из магазина duino.ru
Arduino nano (https://duino.ru/arduino-nano-micro-usb) — 1 шт.
Энкодер EC11 (https://duino.ru/encoder.html) — 1 шт.
Соединительные повода (https://duino.ru/komplekt-soedinitelnyh-provodov-dupont.html) — 3 шт.
Керамические конденсаторы 0,1 мкФ (https://duino.ru/nabor-keramicheskikh-kondensatorov) — 2 шт.
52525
Ссылка на полную статью https://duino.ru/blog/all/enkoder-arduino-kod-obrabotki/