brig62 писал(а):Вот и я с этим столкнулся. Пробовал разные блоки энкодера. Ровно 4 единицы прибавляет каждый щелчок. Как с этим бороться? Деление на 4 не помогает))
Вот попробуйте блок.
От Автора:
Энкодер Детектор
Блок служит для детектирования переключения Энкодера.
Параметры
Set -Импульсов на щелчок
Так как у некоторых энкодеров есть еще тактильные щелчки при вращении, и при одном щелчке бывает выдает не 1 импульс а 2 или 4 ( может и больше)
Вел делитель для получения соответствия щелчок-изменение числа.
DT , CLK - номера пинов подключенных одноименные выхода энкодера (можно использовать любые пины)
period - Период опроса состояния энкодера, в микросекундах, завесить от энкодора
На механических энкодерах достаточно 1000мкс
!!!!Возможны конфликты с блоками где используется Timer1 (из известных мне Rremote, Servo)
!!!!Нельзя использовать совместно с ШИМ на
Arduino Uno 9, 10
Arduino Leonardo 9, 10, 11
Arduino Mega 11, 12, 13
Добавлено (16.03.2017, 11:30)
---------------------------------------------
Dev1 писал(а):Стоит обычный блок Encoder. Мой энкодер то же выдает по 4. Делю так:Код
newPosition = myEnc.read()/4;
Что значит "Стоит обычный блок Encoder" ?
В встроенных есть блок Encoder?
И куда Вы приведенный Вами код вставляете?
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн