Блок Encoder

Описание блока:

Encoder – подсчитывает импульсы от датчиков положения вала, датчиков двигателя и других датчиков угла поворота.
Encoder использует квадратурный метод подсчета импульсов, благодаря чему, обеспечивается определения направления вращения.
В параметрах пользователя необходимо указать 2 пина к которым подключен энкодер. Есть три варианта подключения:
1. Лучший результат – используются два пина поддерживающие прерывания.
2. Хорошая производительность – один из пинов поддерживает прерывания.
3. Низкая производительность – оба пина не поддерживают прерывания.
Не рекомендуется использовать пины к которым подключена светодиодная индикация (в большинстве случаев Pin 13)!!!

Пины поддерживающие прерывания на различных платах Arduino:
UNO – Pin 2,3
LEONARDO – Pin 0,1,2,3
MEGA – Pin 2,3,18,19,20,21
DUE – все
При использовании длинных проводов между энкодером и платой можно поставить подтягивающий резистор 1К.

При подаче высокого уровня на вход Zero – Encoder принимает значение – 0 (нуль).
Значения на выходе блока EncData могут быть положительными и отрицательными.

Использование основных функций библиотеки:
Encoder myEnc(Pin1 , Pin2) – создаем объект енкодер и указываем пины, к которым будут подаваться импульсы.
myEnc.raed() – возвращает значение энкодера.
myEnc.write(EncData) – устанавливает значение энкодера.

Библиотека и описание взято вот от сюда http://www.pjrc.com/teensy/td_libs_Encoder.html

В блоке используются прерывания. Библиотека SoftSerial совместно с этим блоком не работает.

Блок тестировался с Arduino uno и энкодером 5 импульсов на один оборот на скорости 1500 об/минуту.
Убедительная просьба оставить коментарии после использования блока.


4

Вложения

  • zip Encoder (CODE)
    Date added: 03.02.2018 12:08 File size: 15 KB Downloads: 8990

Publication author

714
Comments: 15Publics: 384Registration: 04-02-2018

15 thoughts on “Блок Encoder”

  1. Очень нужный блок, но возник вопрос при прокрутке отображается за один щелчке 2 импульса. Как исправить или настроить не понятно. Использую 2 и 3 пины на уно.

    0
  2. Как оказалось, на один поворот энкодера, блок выдаёт два импульса. Исправить код мозгов не хватило, поэтому на выходы блока поставил два ТТ триггера. Всё заработало.

    0
  3. Доброго времени суток.

    Очень замечательный блок, но хотелось бы иметь возможность записать в него данные.

    Что бы отсчет не начинался с “нуля” каждый раз после выключения.

    0
  4. В версии 5.3.0. опять опять появилась проблема с библиотекой “Encoder”. После танцев с бубном, скачал библиотеку по адресу http://www.pjrc.com/teensy/arduino_libraries/Encoder.zip, распаковал ее в папку Encider, и на правах администратора перенес эту папку по адресу C:\Program Files (x86)\FLProg\ideV3\libraries.

    Заработало.

    0
  5. Здравствуйте! Блок работает отлично, но кратность переключения равна четырем. Подскажите, есть возможность ее изменить?

    0
  6. Извините, за предыдущий комментарий. Все заработало отлично после иного полключения энкодера. Он без каких либо маркировок, оказывается третью ногу на минус, 1-я и 2-я – считываем импульсы. Считает теперь на увеличение и уменьшение, но все равно кратно 4.

    2
  7. Использую энкодер на 24 импульса на оборот. Значения считаются кратно 4 и только на увеличение. При вращении в другую сторону, значение “дергается” пытаясь снова увиличится на пару единиц.

    0
  8. Единственный блок который заработал без проблем. Мне нужно, чтобы энкодер работал в диапазоне от 0 до 255, не могли бы Вы подредактировать блок для меня. Спасибо.

    0
  9. Подскажите пожалуйста,если есть скетч реально работающий, его можно загрузить в программу и увидеть уже в виде символов как в самой программе?

    0
  10. Здравствуйте как добавить pin подключаемые к энкодеру не как не могу сообразить если можно по подробней

    0
  11. При компилировании проекта выскакивает сообщение (Не удалось выгрузить библиотеку Enkoder), потом ( Не найдена библиотека Enkoder.h) Блок установлен в Блоки пользователя. FlProg 3.0.3

    0

Leave a Comment

Войти с помощью: