Потенциометри и ротациони енкодери на први поглед изгледају готово идентично, али раде на различите начине. Откријте како да користите оба са Ардуином.
Међу компонентама електронске контроле корисника, окретна дугмад се истичу као неке од најзадовољнијих за употребу. Могу да допуне екране осетљиве на додир и друге улазне уређаје, као и да добро раде са дугмадима и прекидачима. Али како можете додати дугме сопственим „уради сам“ Ардуино пројектима?
Имате две главне опције: потенциометар или ротациони енкодер. Ове компоненте могу изгледати слично, али методе за њихово коришћење са уређајем као што је Ардуино микроконтролерска плоча су веома различите. Хајде да видимо како се упоређују једни са другима.
Потенциометри вс. Ротари Енцодерс
Већина потенциометара и ротационих енкодера са којима ће се сусрести ентузијасти „уради сам“ долазе у сличном фактору облика. Имају коцкасту или цилиндричну основу са причвршћеним спојним ногама и округлу осовину која се увија и има изрезе за поклопац на који се може седети.
Неки потенциометри изгледају другачије, попут оних који долазе у облику дугих слајдова, попут оних који се налазе на музичким миксеровима. Међутим, када је реч о ротационим енкодерима, на први поглед изгледају скоро идентично ротационим енкодерима, тако да би вам било опроштено ако мислите да су исти.
Шта је потенциометар?
Потенциометар је у суштини променљиви отпорник. Како се осовина окреће, отпор унутар потенциометра се мења, омогућавајући кориснику да промени својства кола без потребе да га поново гради. Потенциометри могу бити и аналогни и дигитални, али дигитални потенциометри опонашају аналогне и то их чини веома сличним за употребу.
Потенциометри увек имају дефинисану почетну и крајњу тачку где се осовина више не може окретати. Неки потенциометри имају нераван осећај када се окрећу, али многи су такође глатки, попут оних на старим стерео уређајима.
Упркос томе што су аналогни, потенциометри добро раде са микроконтролерима. Можете лако подесите потенциометар са Распберри Пи Пицо или Ардуино.
Шта је ротациони енкодер?
Ротациони енкодери одређују положај своје осовине помоћу сензора да би обезбедили аналогни или дигитални сигнал уређају на који су повезани. Ово говори уређају у којој се позицији налази енкодер. Поред ротирајућег вратила, ротациони енкодери обично имају и уграђено дугме које се активира гурањем осовине надоле.
За разлику од потенциометара, ротациони енкодери могу да се окрећу без заустављања и скоро увек имају тактилне избочине за сваку позицију осовине. Многи модерни аутомобили користе ротационе енкодере да контролишу своје системе за забаву.
Како користити потенциометар са Ардуином
Захваљујући њиховом једноставном дизајну, коришћење потенциометра са Ардуином је једноставно. Ваш потенциометар има три конектора: уземљење, излаз и вреф. Пинови за уземљење и вреф се повезују на ГНД и 5В конекторе на вашем Ардуину, респективно, док се излазни пин потенциометра повезује на један од аналогних улаза на вашој плочи.
Ардуино код потенциометра
Ваш код Ардуино потенциометра почиње са основним подесити() и петља() шаблон који ћете видети када креирате нову датотеку у Ардуино ИДЕ. Прво додајте а цонст инт променљива на почетку кода да региструје аналогну пин везу лонца - у овом случају, А0.
констинт потенциометар = А0;
Након овога, подесити() функција је једноставна: само треба да декларишете пин вашег потенциометра као улаз. Такође можете покренути серијску везу ако желите да пошаљете податке на рачунар ради дијагностике.
празнинаподесити(){
пинМоде (потенциометар, ИНПУТ);
Сериал.започети(9600);
}
Затим, време је да подесите петља() функција. Почните креирањем инт променљива користећи аналогРеад() функција за чување положаја вашег потенциометра. Након овога, можете користити Мапа() функција за смањење величине вредности са којом имате посла—у овом примеру да би се ускладила са ПВМ спецификацијама, на пример за контролу осветљености ЛЕД-а. Додајте кратко одлагање да бисте осигурали стабилност.
празнинапетља(){
инт потенциометерВалуе = аналогРеад (потенциометар);
мапа (потентиометерВалуе, 0, 1023, 0, 255);
Сериал.принтлн(потенциометерВалуе);
кашњење (10);
}
Сада када имате позицију свог потенциометра, можете га користити са другим деловима кода. На пример, ан ако изјава би добро функционисала да покрене код када је потенциометар у одређеном положају.
констинт потенциометар = А0;
празнинаподесити(){
пинМоде (потенциометар, ИНПУТ);
Сериал.започети(9600);
}
празнинапетља(){
инт потенциометерВалуе = аналогРеад (потенциометар);
мапа (потентиометерВалуе, 0, 1023, 0, 255);
Сериал.принтлн(потенциометерВалуе);
кашњење (10);
}
Како користити ротациони енкодер са Ардуином
Ротациони енкодери захтевају сложенији код од потенциометара, али са њима је и даље прилично лако радити. Ваш ротациони енкодер има пет пинова: уземљење, ВЦЦ, пин дугмета (СВ), излаз А (ЦЛК) и излаз Б (ДТ). Пинови за уземљење и ВЦЦ се повезују на уземљење и 5В конекторе на вашем Ардуину, респективно, док се пинови СВ, ЦЛК и БТ повезују на појединачне дигиталне конекторе на Ардуину.
Ардуино Ротари Енцодер Цоде
Да бисмо наш код учинили једноставнијим и лакшим за рад, користићемо СимплеРотари Ардуино библиотеку коју је креирао МПрограмс на ГитХуб. Уверите се да имате инсталирану ову библиотеку пре него што почнете да радите на свом коду.
Слично као код вашег потенциометра, можете започети скрипту ротационог кодера са основним Ардуином подесити() и петља() шаблон функције. Почните тако што ћете прогласити СимплеРотари библиотеку и доделити пинове кодера овим редоследом; ЦЛК, ДТ и СВ.
#инцлуде
СимплеРотари ротациони(1,2,3);
Не морате ништа да додајете свом подесити() функција осим ако не желите да користите серијски монитор за дијагностику вашег ротационог енкодера.
празнинаподесити(){
Сериал.започети(9600);
}
Тхе петља() функција је друга прича. Одређивање ротације осовине енкодера почиње са а ротари.ротате() позив функције који је додељен ан инт променљива. Ако је резултат 1, енкодер се окреће у смеру казаљке на сату. Ако је резултат 2, енкодер се окреће супротно од казаљке на сату. Резултат ће увек бити 0 ако се кодер није окренуо од последње провере.
Можете користити ако изјаве за покретање другог кода у зависности од смера ротације енкодера.
празнинапетља(){
инт енцодерРотатион;
енцодерРотатион = ротари.ротате();иф (енцодерРотатион == 1) {
Сериал.принтлн("казаљке на сату");
}
иф (енцодерРотатион == 2) {
Сериал.принтлн("у супротном смеру казаљке на сату");
}
}
Такође морате да додате неки код за дугме вашег кодера у петља() функција. Овај процес је веома сличан, осим што ћете користити ротари.пусх() функцију, а не ротари.ротате().
празнинапетља(){
инт енцодерБуттон;
енцодерБуттон = ротари.пусх();
иф (енцодерБуттон == 1) {
Сериал.принтлн("притиснуто дугме");
}
}
Ова скрипта је прилично једноставна и можете учинити много да је направите својом. Вреди погледати документацију пројекта СимплеРотари да бисте били сигурни да користите све његове кључне карактеристике. Једном састављен, ваш код кодера би требао изгледати овако.
#инцлуде
СимплеРотари ротациони(1,2,3);празнинаподесити(){
Сериал.започети(9600);
}празнинапетља(){
инт енцодерРотатион;
енцодерРотатион = ротари.ротате();иф (енцодерРотатион == 1) {
Сериал.принтлн("казаљке на сату");
}иф (енцодерРотатион == 2) {
Сериал.принтлн("у супротном смеру казаљке на сату");
}инт енцодерБуттон;
енцодерБуттон = ротари.пусх();
иф (енцодерБуттон == 1) {
Сериал.принтлн("притиснуто дугме");
}
}
Како изабрати између потенциометара и ротационих енкодера за пројекте
Као што видите, ротациони енкодери и потенциометри раде сасвим другачије. Обе ове компоненте вам дају нове начине да контролишете своје електронске пројекте, али које бисте требали изабрати?
Потенциометри су приступачни и лаки за употребу, али дозвољавају само ограничен улазни опсег. Ово их чини одличним када желите да контролишете осветљеност ЛЕД-а, или да повећате и смањите снагу која иде на одређене компоненте и друге сличне задатке.
Ротациони енкодери пружају много већи обим од потенциометара. Укључивање дугмета значи да су одлични за системе контроле менија, као што се види у многим модерним аутомобилима. Ова врста компоненте је постала веома популарна у простору за изградњу механичких тастатура. Можете чак направите мали макропад са уграђеним енкодером.
Сличан изглед, различите компоненте
Са свим овим информацијама испод вашег појаса, требало би да будете спремни да започнете пројекат електронике са потенциометром или ротационим енкодером. Ове компоненте вам могу дати велику контролу над струјним колима које направите, али морате бити сигурни да одаберете исправну опцију за свој пројекат.