Датчик использует два стандартных 3-пиновых разъема и подключается в порты IN контроллера "Трекдуино". Для подключения одного датчика требуется 2 свободных порта (по одному на каждый канал). Всего можно подключить и использовать до 4 энкодеров.
При подключении датчика следует выбрать, какой из проводов будет «каналом А», а какой - «каналом B». Соответствие каналов и проводов не фиксированное, пользователь сам должен выбрать в зависимости от ситуации, руководствуясь при это правилом: при чтении показаний датчика программа будет принимать за положительное направление вращение от «А» в сторону «В».
Блоки, необходимые для работы с энкодером, расположены в группе блоков «Датчики».
При использовании энкодеров первым делом необходимо выполнить установку всех подключенных энкодеров в секции «Уставнока»
(Setup())
с помощью блока «Установка энкодера»
в графическом режиме или функции setupEnc(int encoder, int chA, int chB)
в текстовом режиме.
Изменение переменных, в которых хранятся углы поворота энкодеров, происходит с помощью т.н. механизма прерываний, поэтому эти показания будут меняться даже если программа занята чем-либо, например, выполняет функцию задержки. Поэтому обращаться за показаниями энкодера можно сколь угодно редко, «срабатывания» оптических датчиков пропускаться не будут.
Точность энкодера (минимальный шаг)- 5 градусов.
Значения, возвращаемые блоком , всегда кратны 5 градусам (-20, -15, -10, -5, 0, 5, 10…)
Счетчик (переменная), в которой храниться угол поворота, переполняется при ± 2,147,483,645 градусах (около 6 миллионов оборотов). Впрочем, ресурс самого датчика гораздо меньше
Блок и генерируемая им функция | Описание |
void setupEnc(int encoder, int chA, int chB)
|
Выполняет установку энкодера, сообщает программе, к каким портам он подключен. Необходимо вызывать в секции «Установка» для каждого подключенного энкодера.
Аргументы:
№ (int encoder) - условный номер энкодера, по которому в дальнейшем к нему будет обращаться функция опроса.
канал А (int chA) - порт IN, к которому подключен провод канала А
канал B (int chB) - порт IN, к которому подключен провод канала B |
long getEncDegrees(int encoder)
|
Возвращает угол поворота определенного энкодера в градусах.
Аргументы:
№ (int encoder) - условный номер энкодера, угол поворота которого необходимо сообщить |
void setEncToZero(int encoder)
|
Обнуляет текущие показания по определенному энкодеру, «сбрасывает» счетчик.
Аргументы:
№ (int encoder) - условный номер энкодера, показания которого необходимо обнулить |
ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ
-
1) Напряжение питания: 5В
-
2) Количество каналов: 2
-
3) Тип прерывателя: оптический щелевой
-
4) Дипазон поворота вала: не ограничен
-
5) Минимальный измеряемый угол поворота: 2,5 градуса
-
6) Облегченный пластиковый корпус.