Блок 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)
    Дата добавления: 03.02.2018 12:08 Размер файла: 15 КБ Кол-во скачиваний: 10634

Автор публикации

не в сети 2 недели

Сергей Глушенко

782
Комментарии: 15Публикации: 391Регистрация: 04-02-2018

17 комментариев к “Блок Encoder”

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

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

    Заработало.

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

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

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

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

    0

Оставьте комментарий

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