Potenciometri in rotacijski dajalniki so na prvi pogled videti skoraj enaki, vendar delujejo na različne načine. Odkrijte, kako uporabljati oboje z Arduinom.

Med elektronskimi komponentami za upravljanje uporabnika izstopajo vrtljivi gumbi kot nekateri najbolj zadovoljni za uporabo. Lahko dopolnjujejo zaslone na dotik in druge vnosne naprave, prav tako dobro delujejo z gumbi in stikali. Toda kako lahko dodate gumb k svojim projektom DIY Arduino?

Na voljo imate dve glavni možnosti: potenciometer ali rotacijski kodirnik. Te komponente so morda videti podobne, vendar se metode za njihovo uporabo z napravo, kot je mikrokrmilniška plošča Arduino, zelo razlikujejo. Poglejmo, kako se primerjajo med seboj.

Potenciometri vs. Rotacijski kodirniki

Večina potenciometrov in rotacijskih dajalnikov, s katerimi se bodo srečali navdušenci DIY, je v podobni obliki. Imajo kockasto ali valjasto osnovo s pritrjenimi priključnimi nogami in okroglo gred, ki se zasuka in ima izreze za namestitev pokrovčka.

Nekateri potenciometri so videti drugače, na primer tisti, ki so v obliki dolgih drsnikov, kot so tisti na mešalnih ploščah. Ko gre za rotacijske vrste, pa so na prvi pogled videti skoraj enaki rotacijskim dajalnikom, tako da vam bo oproščeno, če mislite, da so enaki.

instagram viewer

Kaj je potenciometer?

Potenciometer je v bistvu spremenljivi upor. Ko se gred vrti, se upor znotraj potenciometra spreminja, kar uporabniku omogoča spreminjanje lastnosti vezja, ne da bi ga bilo treba ponovno sestaviti. Potenciometri so lahko analogni in digitalni, vendar digitalni potenciometri posnemajo analogne, zaradi česar so zelo podobni uporabi.

Potenciometri imajo vedno določeno začetno in končno točko, kjer gredi ni več mogoče vrteti. Nekateri potenciometri imajo pri obračanju neravni občutek, mnogi pa so tudi gladki, kot tisti na starih stereo napravah.

Kljub temu, da so analogni, potenciometri dobro delujejo z mikrokontrolerji. Z lahkoto lahko nastavite potenciometer z Raspberry Pi Pico ali Arduino.

Kaj je rotacijski kodirnik?

Rotacijski dajalniki določajo položaj svoje gredi s senzorjem, da zagotovijo analogni ali digitalni signal napravi, na katero so povezani. To pove napravi, v katerem položaju je kodirnik. Rotacijski dajalniki imajo poleg vrtljive gredi običajno vgrajen tudi gumb, ki se aktivira s pritiskom gredi navzdol.

Za razliko od potenciometrov se lahko rotacijski dajalniki vrtijo brez ustavljanja in imajo skoraj vedno otipne izbokline za vsak položaj gredi. Veliko sodobnih avtomobilov uporablja rotacijske kodirnike za nadzor svojih sistemov za zabavo.

Kako uporabljati potenciometer z Arduinom

Zahvaljujoč njihovi preprosti zasnovi je uporaba potenciometra z Arduinom preprosta. Vaš potenciometer ima tri konektorje: maso, izhod in vref. Zatiči za ozemljitev in vref se povežejo z GND in 5V konektorji na vašem Arduinu, medtem ko se izhodni zatič potenciometra poveže z enim od analognih vhodov na vaši plošči.

Koda potenciometra Arduino

Vaša koda potenciometra Arduino se začne z osnovno nastaviti() in zanka() predlogo, ki jo boste videli, ko ustvarite novo datoteko v Arduino IDE. Najprej dodajte a const int spremenljivka na začetku kode za registracijo analogne priključne sponke potnika – v tem primeru A0.

konstint potenciometer = A0;

Po tem je nastaviti() Funkcija je preprosta: zatič potenciometra morate le prijaviti kot vhod. Zaženete lahko tudi serijsko povezavo, če želite poslati podatke v svoj računalnik za diagnostiko.

prazninanastaviti(){
pinMode (potenciometer, INPUT);
Serijski.začeti(9600);
}

Nato je čas za nastavitev zanka() funkcijo. Začnite z ustvarjanjem int spremenljivka z uporabo analogRead() funkcijo za shranjevanje položaja vašega potenciometra. Po tem lahko uporabite zemljevid() funkcijo za zmanjšanje velikosti vrednosti, s katero imate opravka – v tem primeru za ujemanje s specifikacijami PWM, na primer za nadzor svetlosti LED. Dodajte kratek zamik, da zagotovite stabilnost.

prazninazanka(){
int potenciometerValue = analogRead (potenciometer);
zemljevid (potenciometerValue, 0, 1023, 0, 255);
Serijski.println(PotenciometerValue);
zamuda (10);
}

Zdaj, ko imate položaj vašega potenciometra, ga lahko uporabite z drugimi deli kode. Na primer, an če stavek bi dobro deloval pri sprožitvi kode, ko je potenciometer v določenem položaju.

konstint potenciometer = A0;

prazninanastaviti(){
pinMode (potenciometer, INPUT);
Serijski.začeti(9600);
}

prazninazanka(){
int potenciometerValue = analogRead (potenciometer);
zemljevid (potenciometerValue, 0, 1023, 0, 255);
Serijski.println(PotenciometerValue);
zamuda (10);
}

Kako uporabljati rotacijski kodirnik z Arduinom

Rotacijski dajalniki zahtevajo bolj zapleteno kodo kot potenciometri, vendar je z njimi vseeno dokaj enostavno delati. Vaš rotacijski kodirnik ima pet zatičev: ozemljitev, VCC, zatič gumba (SW), izhod A (CLK) in izhod B (DT). Zatiči za ozemljitev in VCC se povežejo z ozemljitvenimi in 5V priključki na vašem Arduinu, medtem ko se zatiči SW, CLK in BT povežejo s posameznimi digitalnimi priključki na Arduinu.

Koda rotacijskega dajalnika Arduino

Da bo naša koda enostavnejša in lažja za delo, bomo uporabili knjižnico SimpleRotary Arduino, ki jo je ustvaril MPrograms na GitHub. Prepričajte se, da imate to knjižnico nameščeno, preden začnete delati na svoji kodi.

Podobno kot vaša koda potenciometra, lahko zaženete skript rotacijskega dajalnika z osnovnim Arduinom nastaviti() in zanka() funkcijska predloga. Začnite tako, da deklarirate knjižnico SimpleRotary in dodelite zatiče kodirnika v tem vrstnem redu; CLK, DT in SW.

#vključi 
SimpleRotary rotacijski(1,2,3);

Svojemu vam ni treba ničesar dodati nastaviti() funkcijo, razen če želite uporabiti serijski monitor za diagnosticiranje vašega rotacijskega dajalnika.

prazninanastaviti(){
Serijski.začeti(9600);
}

The zanka() funkcija je druga zgodba. Določanje vrtenja gredi dajalnika se začne z a rotary.rotate() klic funkcije, ki je dodeljena int spremenljivka. Če je rezultat 1, se kodirnik vrti v smeri urinega kazalca. Če je rezultat 2, se kodirnik vrti v nasprotni smeri urinega kazalca. Rezultat bo vedno 0, če se kodirnik od zadnjega preverjanja ni obrnil.

Lahko uporabiš če stavkov za sprožitev druge kode, odvisno od smeri vrtenja kodirnika.

prazninazanka(){
int encoderRotation;
encoderRotation = rotary.rotate();

if (encoderRotation == 1) {
Serial.println("v smeri urinega kazalca");
}

if (encoderRotation == 2) {
Serial.println("v nasprotni smeri urinega kazalca");
}
}

Dodati morate tudi nekaj kode za gumb vašega kodirnika zanka() funkcijo. Ta postopek je zelo podoben, le da boste uporabili rotary.push() funkcijo, namesto rotary.rotate().

prazninazanka(){
int encoderButton;
encoderButton = rotary.push();

if (encoderButton == 1) {
Serial.println("pritisnjen gumb");
}
}

Ta skript je zelo preprost in lahko naredite veliko, da ga naredite po svoje. Vredno je preveriti dokumentacijo projekta SimpleRotary in se prepričati, da uporabljate vse njegove ključne funkcije. Ko je sestavljena, bi morala koda kodirnika izgledati takole.

#vključi 
SimpleRotary rotacijski(1,2,3);

prazninanastaviti(){
Serijski.začeti(9600);
}

prazninazanka(){
int encoderRotation;
encoderRotation = rotary.rotate();

if (encoderRotation == 1) {
Serial.println("v smeri urinega kazalca");
}

if (encoderRotation == 2) {
Serial.println("v nasprotni smeri urinega kazalca");
}

int encoderButton;
encoderButton = rotary.push();

if (encoderButton == 1) {
Serial.println("pritisnjen gumb");
}
}

Kako izbrati med potenciometri in rotacijskimi dajalniki za projekte

Kot lahko vidite, rotacijski dajalniki in potenciometri delujejo precej različno. Obe komponenti vam ponujata nove načine za nadzor vaših elektronskih projektov, toda katero izbrati?

Potenciometri so cenovno dostopni in enostavni za uporabo, vendar omogočajo le omejeno območje vnosa. Zaradi tega so odlični, ko želite nadzorovati svetlost LED ali povečati ali zmanjšati moč, ki gre za določene komponente, in druge podobne naloge.

Rotacijski dajalniki nudijo veliko več možnosti kot potenciometri. Vključitev gumba pomeni, da so odlični za sisteme upravljanja z meniji, kot jih vidimo v mnogih sodobnih avtomobilih. Ta vrsta komponente je postala zelo priljubljena v prostoru za izdelavo mehanskih tipkovnic. Lahko celo zgradite majhen makropad z vgrajenim kodirnikom.

Podoben videz, različne komponente

Z vsemi temi informacijami bi morali biti pripravljeni na začetek projekta elektronike s potenciometrom ali rotacijskim dajalnikom. Te komponente vam lahko dajo veliko nadzora nad vezji, ki jih sestavljate, vendar se morate prepričati, da izberete pravo možnost za svoj projekt.