Која је разлика између Ардуино потенциометра и ротационог енкодера

Koja Je Razlika Izmedu Arduino Potenciometra I Rotacionog Enkodera



Потенциометри и ротациони енкодери се користе за детекцију ротације или сензорске позиције. То су електромеханички уређаји који се користе са различитим применама у области електронике. Такође се могу повезати са Ардуином за прављење различитих пројеката. Овај чланак треба да покаже основне разлике између потенциометра и ротационог енкодера.

Шта је потенциометар

Потенциометар је реостат, или га можемо назвати променљивим отпорником. Вредност отпора варира у зависности од ротације осовине потенциометра. Потенциометри се могу окретати само на подешено растојање. Постоје и аналогни и дигитални потенциометри, али су скоро слични. Аналогни потенциометри се могу повезати са микроконтролерима на Ардуино, Распберри Пи и другим уређајима. Потенциометар поседује три пина који су пин улазног напона Вцц, уземљени пин ГНД и пин улазног сигнала. Сигнални пин обезбеђује улаз за Ардуино.









Шта је ротациони енкодер

Ротациони енкодери осећају угаону позицију окретног дугмета и шаљу сигнал микроконтролеру или било ком другом уређају на који су повезани. Има диск са равномерно распоређеним контактним површинама које су повезане на заједнички пин. Ротациони енкодери такође имају уграђено дугме или ротациони прекидач који даје ОН и ОФФ сигнале према специфичним захтевима.







Дијаграм пинова и опис пинова ротационог енкодера

Дијаграм дат испод показује игле ротационог енкодера. Ове игле су описане на следећи начин:

Оут Б или ЦЛК



Овај пин даје излаз колико пута се дугме или ротациони енкодер ротирао. Сваки пут када се дугме окрене, ЦЛК завршава циклус ХИГХ и ЛОВ. Рачуна се као једна ротација.

Оут А или ДТ

Ово је други излазни пин ротационог енкодера који одређује смер ротације. Заостаје 90° за ЦЛК сигналом. Према томе, ако његово стање није једнако ЦЛК-овом стању, онда је смер ротације у смеру казаљке на сату, у супротном супротном смеру казаљке на сату.

Свитцх

Пин прекидача се користи за проверу да ли је дугме притиснуто или не.

Вцц

Овај пин је повезан са напајањем од 5В

ГНД

Овај пин је повезан са уземљењем

Разлика између потенциометра и ротационог енкодера

Спецификација Потенциометар Ротари Енцодер
Ротација Потенциометар се може ротирати само у једном правцу, и то за три четвртине круга. Ротациони енкодер је способан да се ротира за 360° непрекидно и у смеру казаљке на сату и у супротном смеру.
Аналогни или дигитални уређаји Потенциометар је углавном аналогни улазни уређај који мери промену положаја кроз промену вредности отпорника Ротациони енкодер је дигитални улазни уређај који детектује угаону позицију и обезбеђује дигиталне вредности.

Број улазних позиција Потенциометар има бесконачан број улазних позиција на којима се могу узети вредности јер је аналогни уређај Ротациони енкодери имају коначан број улазних позиција.

Подешавање потенциометра са Ардуином

Потенциометар је лакше поставити са Ардуином него ротационим енкодером. Потенциометар има само три пина ВЦЦ, ГНД и ИНПУТ пин који је повезан са Ардуином. Повезивање потенциометра са Ардуином је приказано у наставку:

Програмирање потенциометра у Ардуину је лакше него код ротационог енкодера. У наставку су дати примери кодова синтаксе за оба.

Пример кода за потенциометар

цонст инт пот = А0; // Декларишите пин за унос
празнина подешавања ( ) {
   пинМоде ( пот, ИНПУТ ) ; // Вредност подешавања преузета са потенциометра као улазни
Сериал.бегин ( 9600 ) ;
}
празнина петља ( ) {
инт потВалуе = аналогРеад ( пот ) ; // Очитајте вредност улаза узету потенциометром
Мапа ( потВалуе, 0 , 1023 , 0 , 255 ) ; // Скалирање вредности улаза да се подудара 8 -мало
Сериал.принтлн ( потВалуе ) ; // Штампа вредност која је унета у потенциометар
кашњење ( 100 ) ;
}

Код потенциометра је врло лак и једноставан. Аналогни улазни пин Ардуина једноставно је декларисан да узима улаз са потенциометра, а затим се функције аналогРеад() и мап() користе за читање и давање тачне вредности очитавања са потенциометра.

Повезивање ротационог енкодера са Ардуином

Ротациони енкодер има пет пинова. ВЦЦ и ГНД ротационог енкодера су повезани са Ардуино. Преостали пинови ЦЛК, ДТ и СВ повезани су на дигиталне улазне пинове Ардуина.

Ардуино код за ротациони енкодер

// Улази ротационог енкодера
#дефине ЦЛК_ПИН 2
#дефине ДТ_ПИН 3
#дефине СВ_ПИН 4
инт цоунтер = 0 ;
инт цуррентЦЛКСтате;
инт ластЦЛКСтате;
Стринг цуррентДирецтион = '' ;
унсигнед лонг ластБуттонПрессТиме = 0 ;
празнина подешавања ( ) {
// Поставите пинове кодера као инпутс
    пинМоде ( ЦЛК_ПИН, ИНПУТ ) ;
    пинМоде ( ДТ_ПИН, ИНПУТ ) ;
    пинМоде ( СВ_ПИН, ИНПУТ_ПУЛЛУП ) ;
// Подешавање серијског монитора
Сериал.бегин ( 9600 ) ;
// Прочитајте почетно стање ЦЛК-а
ластЦЛКСтате = дигиталРеад ( ЦЛК_ПИН ) ;
}
празнина петља ( ) {
// Прочитајте тренутно стање ЦЛК-а
цуррентЦЛКСтате = дигиталРеад ( ЦЛК_ПИН ) ;
// Ако последњи и тренутно стање ЦЛК-а су различити, онда појавио се пулс
// Реагујте само на 1 промена стања како би се избегло двоструко рачунање
ако ( цуррентЦЛКСтате ! = ластЦЛКСтате && цуррентЦЛКСтате == 1 ) {
// Ако се ДТ стање разликује од ЦЛК стања, онда
// енкодер се ротира у смеру супротном од казаљке на сату, па се смањи
ако ( дигиталРеад ( ДТ_ПИН ) ! = цуррентЦЛКСтате ) {
цоунтер--;
цуррентДирецтион = 'ЦЦВ' ;
} друго {
// Енкодер се ротира у смеру казаљке на сату, па повећавајте
цоунтер++;
цуррентДирецтион = 'ЦВ' ;
}
Сериал.принт ( 'Смер ротације: ' ) ;
Сериал.принт ( цуррентДирецтион ) ;
Сериал.принт ( ' | Протувредност: ' ) ;
Сериал.принтлн ( бројач ) ;
}
// Запамтите последњи ЦЛК стање
ластЦЛКСтате = цуррентЦЛКСтате;
// Прочитајте стање дугмета
инт буттонСтате = дигиталРеад ( СВ_ПИН ) ;
// Ако откријемо ЛОВ сигнал, дугме се притисне
ако ( буттонСтате == ЛОВ ) {
// Ако је прошло 50 мс од последњи НИСКИ пулс, то значи да је
// дугме је притиснуто, отпуштено и поново притиснуто
ако ( миллис ( ) - ластБуттонПрессТиме > педесет ) {
Сериал.принтлн ( „Дугме притиснуто!“ ) ;
}
// Запамтите последњи догађај притиска на дугме време
ластБуттонПрессТиме = миллис ( ) ;
}
// Ставити ин благо одлагање да помоћ дебоунце читање
кашњење ( 1 ) ;
}

У горе датом коду, стање ЦЛК пина се проверава у функцији лооп(). Ако није једнако свом претходном стању, то показује да се окретно дугме закренуло. Сада, да бисте проверили смер ротације дугмета, тренутно стање ЦЛК се упоређује са стањем ДТ. Ако су оба стања неједнака, то показује да је дугме ротирано у смеру казаљке на сату и да повећава своју вредност у супротном смеру да би се приказао положај окретног дугмета. У супротном случају, бројач се смањује.

Апликације

Потенциометри се углавном користе тамо где је потребна контролна функција. Користе се у контроли јачине звука, контроли осветљења ЛЕД-а. С друге стране, Ротари енкодери нуде широк спектар примена. Користе се у роботици, медицинској опреми, аутоматизацији и играма.

Закључак

Потенциометри и ротациони енкодери су оба посебно корисни уређаји у области електронике. Ротациони енкодери су напреднији у поређењу са потенциометрима, јер се могу непрекидно ротирати до 360°. Слично, они имају више примена у модерној електроници, а мало их је теже користити од потенциометара .