категории: Микроконтролер вериги
Брой преглеждания: 16 299
Коментари към статията: 0

Как да свържете инкрементален енкодер към Arduino

 

Често в устройства на микроконтролери трябва да организирате управлението на елементи от менюто или да внедрите някои корекции. Има много начини: използвайте бутони, променливи резистори или енкодери. Инкрементният енкодер ви позволява да контролирате нещо с помощта на безкрайното въртене на дръжката. В тази статия ще разгледаме как да накараме инкременталния енкодер и Arduino да работят.

Как да свържете инкрементален енкодер към Arduino

Функции на инкрементален енкодер

Инкрементният енкодер, подобно на всеки друг тип енкодер, е устройство с въртяща се дръжка. Отдалечено прилича на потенциометър. Основната разлика от потенциометъра е, че дръжката на енкодера се върти на 360 градуса. Той няма крайни разпоредби.

Енкодерите се предлагат в много видове. Повишението се различава по това, че с негова помощ е невъзможно да се знае положението на дръжката, а само фактът на въртене в някаква посока - вляво или вдясно. По броя на сигналните импулси вече можете да изчислите под какъв ъгъл се обърна.

Енкодер и Ардуино

По този начин можете да минете микроконтролер команда, управление на менюто, ниво на звука например и т.н. В ежедневието можете да ги видите в автомобилни радиостанции и друга техника. Използва се като мултифункционален орган за регулиране на нивото, еквалайзер и навигация по менюто.

Копче за ниво на звука

Принцип на работа

Вътре в инкременталния енкодер има диск с етикети и плъзгачи, които влизат в контакт с тях. Структурата му е подобна на потенциометър.

Разглобен енкодер

На фигурата по-горе виждате диск с маркировки, те са необходими за прекъсване на електрическата връзка с подвижния контакт, в резултат на което получавате данни за посоката на въртене. Дизайнът на продукта не е толкова важен, нека разберем принципа на работа.

Дизайн на енкодера

Енкодерът има три информационни изхода, единият общ, другите два обикновено се наричат ​​"A" и "B", на фигурата по-горе виждате щифта на кодера с бутон - можете да получите сигнал, когато щракнете върху неговия вал.

Какъв сигнал ще получим? В зависимост от посоката на въртене логическата единица първо ще се появи на щифт А или В, така че получаваме сигнал с фазово изместване и това изместване ни позволява да определим в коя посока. Сигналът се получава под формата на правоъгълна форма, а микроконтролерът се управлява след обработка на данните за посоката на въртене и броя на импулсите.

Принцип на работа

Фигурата показва символа на диска с контактите, в средата е графиката на изходните сигнали, а вдясно е таблицата за състоянието. Това устройство често е нарисувано като два клавиша, което е логично, защото всъщност получаваме сигнал „напред“ или „назад“, „нагоре“ или „надолу“ и броя на действията.

Енкодерна верига

Ето пример за истински изход на енкодера:

Пример за истински изход на енкодера

Чудя се:

Дефектен енкодер може да бъде заменен с два бутона без заключване и обратно: домашно управление, при което два от тези бутони могат да бъдат финализирани чрез настройка на енкодера.

Във видеото по-долу виждате редуването на сигнала на клемите - по време на плавно завъртане светодиодите светят в последователността, отразена в предишната графика.

Не по-малко ясно илюстрирана в следната анимация (кликнете върху снимката):

Устройството и принципът на работа на енкодера

Енкодерът може да бъде както оптичен (сигналът се генерира от излъчватели от фотодетектори, вижте фигурата по-долу), така и магнитен (работи върху ефекта на Хол). В този случай той няма контакти и по-дълъг експлоатационен живот.

Ъглов сензор

Както вече споменахме, посоката на въртене може да се определи от кой от изходните сигнали е променен преди това, но така изглежда на практика!

Механични точки за фиксиране

Точността на управление зависи от разделителната способност на енкодера - броя на импулсите на оборот. Броят на импулсите може да бъде от единици до хиляди бройки. Тъй като енкодерът може да действа като сензор за положение, колкото повече импулси, толкова по-точно ще се случи определянето.Този параметър се нарича PPR - импулс на оборот.

Но има малък нюанс, а именно подобно обозначение LPR е броят на етикетите на диска.

И броя на обработените импулси. Всеки етикет на диска дава по 1 правоъгълен импулс на всеки от двата изхода. Импулсът има два фронта - отзад и отпред. Тъй като има два изхода, всеки от тях ни дава общо 4 импулса, чиито стойности можете да обработите.

PPR = LPRx4


Свържете се с Arduino

Разбрахме какво трябва да знаете за инкременталния енкодер, сега нека да разберем как да го свържете с Arduino. Обмислете схемата на свързване:

Диаграмата на свързване на датчика за позиция към Arduino

Модул на енкодера е платката, на която са разположени инкрементният енкодер и подвижните резистори. Можете да използвате всякакви щифтове.

Диаграма на свързване на енкодера

Ако нямате модул, а отделен енкодер, просто трябва да добавите тези резистори, схемата няма да се различава по принцип. За да проверите посоката на въртене и нейната работоспособност във връзка с Arduino можем да четем информация от серийния порт.

Пример за програма

Нека да анализираме кода по-подробно, за да. При void setup () обявихме, че ще използваме комуникация през серийния порт, след което ще зададем щифтове 2 и 8 в режим на въвеждане. Изберете сами пинови номера въз основа на вашата схема на връзка. Константата INPUT_PULLUP задава режима на въвеждане, arduino има две опции:

  • INPUT - вход без издърпващи резистори;

  • INPUT_PULLUP - връзка към входа на издърпващи резистори. В микроконтролера вече има резистори, чрез които входът е свързан към мощността плюс (издърпване).

Ако използвате резистори за затягане към мощността плюс, както е показано на диаграмите по-горе, или използвате модула на енкодера - използвайте командата INPUT и ако по някаква причина не можете или не искате да използвате външни резистори - INPUT_PULLUP.

Логиката на основната програма е следната: ако имаме такава на вход “2”, тя извежда порт H към монитора, ако не, L. По този начин, когато завъртите в същата посока на монитора на серийния порт, ще получите нещо подобно: LL HL HH LH LL. И обратно: LL LH HH HL LL.

Ако внимателно прочетете редовете, вероятно сте забелязали, че в единия случай първият символ придобива стойност, а в другия случай вторият символ първо се променя.


заключение

Инкременталните енкодери са намерили широко практическо приложение в усилвателите за акустични системи - те са били използвани като регулиране на силата на звука, в автомобилните радиостанции - за регулиране на звуковите параметри и навигация в менютата, при компютърни мишки с него ежедневно превъртате страници (на вала е инсталирано колело) , И също така в измервателни инструменти, CNC машини, роботи, selsyn не само като контроли, но и измерване на стойности и определяне на позицията.

Вижте също на e.imadeself.com:

  • Методи за четене и управление на Arduino I / O портове
  • Моторно и серво управление с Arduino
  • Разполага с свързващи устройства към Arduino
  • Свързване и програмиране на Arduino за начинаещи
  • Най-популярните сензори за Arduino

  •