В този проект ще свържем ROTARY ENCODER с ARDUINO. ARDUINO UNO е борда за разработка, базирана на контролер ATMEGA, предназначена за електронни инженери и любители. В ARDUINO имаме 20 I / O щифта, така че можем да програмираме 20 щифта UNO, които да се използват като вход или изход.
А енкодер се използва да се знае позицията на движение и ъглово движение на моторно или ос. Това обикновено е три терминално устройство, с щифтове за захранване и заземяване има общо 5 терминала. Модул ROTARY ENCODER е показан по-долу.
Пиновете на ротационен енкодер са:
- Земя
- Положително свързано към + 5V
- Изходен сигнал A щифт
- Изходен сигнал B щифт
- Часовник или общ щифт
ЕНКОДЕРЪТ осигурява импулси, представящи промяната в положението на вала, за да могат системите да разберат. Помислете, че РОТАЦИОНЕН ЕНОДЕР е включен и валът е преместен.
Както е показано в горната таблица, помислете, че валът е преместен по посока на часовниковата стрелка. С това ще има Falling Edge на терминал А, след това на терминал В.
Помислете, че валът е преместен в посока против часовниковата стрелка. С това ще има Falling Edge на терминал B, след това на терминал A.
Този ръб ще се появи веднъж за 360/20 = 18 градуса (Това е за енкодер с 20 позиции, това се променя от тип на тип, колкото по-голям е броят, толкова по-голяма е точността).
И при двете горепосочени условия можем да получим посока и степен на въртене. По този начин получаваме необходимите параметри за получаване на положението на вала.
Необходими компоненти
Хардуер: Arduino uno платка, свързващи щифтове, 220Ω резистор, LED (осем парчета), 1KΩ резистор, 220Ω резистор (2 броя), 100nF кондензатор (2 броя), платка за хляб.
Софтуер: Arduino всяка вечер
Електрическа схема и работно обяснение
Кондензаторите тук са за неутрализиране на ефекта на подскачащ контакт в ENCODER. Без тези кондензатори ще има някои сериозни проблеми при отчитане на положението.
Когато валът бъде преместен, ще има разлика във времето между изходните два изходни щифта. Arduino UNO ще разпознае тази разлика във времето по посока на часовниковата стрелка на въртене по часовников механизъм
Ако въртенето е по посока на часовниковата стрелка, двоичното броене се увеличава с едно и това броене се показва в LED порта, както е показано на фигурата.
Ако въртенето е против часовниковата стрелка, двоичното броене се намалява с едно и двоичното броене се показва в светодиоден байт.
Работата на Arduino с ротационен енкодер е обяснена стъпка по стъпка в C кода, даден по-долу.