Блок 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 КБ Downloads: 10627

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

Офлайн 1 тиждень

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

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

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

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

    Заработало.

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

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

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

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

    0

Залишити коментар

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