Блок 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 об/минуту.
Убедительная просьба оставить коментарии после использования блока.


3

Вложения

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

Publication author

Сергей Глушенко 559
Comments: 14Publics: 363Registration: 04-02-2018

14 thoughts on “Блок Encoder”

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

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

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

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

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

    Заработало.

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

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

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

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

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

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

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

    0

Leave a Comment

Войти с помощью: 
Authorization
*
*
Войти с помощью: 
Registration
*
*
*
*
Войти с помощью: 
Password generation