Kakšna je razlika med potenciometrom Arduino in rotacijskim kodirnikom

Kaksna Je Razlika Med Potenciometrom Arduino In Rotacijskim Kodirnikom



Potenciometri in rotacijski dajalniki se uporabljajo za zaznavanje vrtenja ali zaznavanje položaja. So elektromehanske naprave, ki se uporabljajo za različne aplikacije na področju elektronike. Prav tako jih je mogoče povezati z Arduinom za izdelavo različnih projektov. Ta članek prikazuje temeljne razlike med potenciometrom in rotacijskim dajalnikom.

Kaj je potenciometer

Potenciometer je reostat, lahko pa mu rečemo spremenljivi upor. Vrednost upora se spreminja glede na vrtenje gredi potenciometra. Potenciometri se lahko vrtijo samo na nastavljeno razdaljo. Obstajajo tako analogni kot digitalni potenciometri, vendar so skoraj podobni. Analogne potenciometre je mogoče povezati z mikrokontrolerji na Arduino, Raspberry Pi in drugih napravah. Potenciometer ima tri zatiče, ki so zatič za vhodno napetost Vcc, ozemljitveni zatič GND in zatič za vhodni signal. Signalni pin zagotavlja vhod v Arduino.









Kaj je rotacijski kodirnik

Rotacijski dajalniki zaznajo kotni položaj vrtljivega gumba in pošljejo signal mikrokrmilniku ali kateri koli drugi napravi, na katero so povezani. Ima disk z enakomerno razporejenimi kontaktnimi površinami, ki so povezane s skupnim zatičem. Rotacijski dajalniki imajo tudi vgrajeno tipko ali vrtljivo stikalo, ki daje signale za VKLOP in IZKLOP glede na posebne zahteve.







Diagram kontaktov in opis kontaktov rotacijskega dajalnika

Spodnji diagram prikazuje zatiče rotacijskega dajalnika. Ti zatiči so opisani na naslednji način:

Izhod B ali CLK



Ta zatič daje izhod, kolikokrat se je zavrtel gumb ali vrtljivi kodirnik. Vsakič, ko zavrtite gumb, CLK zaključi cikel HIGH in LOW. Šteje se kot ena rotacija.

Izven A ali DT

To je drugi izhodni zatič rotacijskega dajalnika, ki določa smer vrtenja. Za signalom CLK zaostaja 90°. Torej, če njegovo stanje ni enako stanju CLK, je smer vrtenja v smeri urinega kazalca, drugače pa v nasprotni smeri urinega kazalca.

Stikalo

Zatič stikala se uporablja za preverjanje, ali je tipka pritisnjena ali ne.

Vcc

Ta zatič je priključen na napajanje 5 V

GND

Ta zatič je povezan z ozemljitvijo

Razlika med potenciometrom in rotacijskim dajalnikom

Specifikacija Potenciometer Rotacijski kodirnik
Rotacija Potenciometer lahko zavrtimo le v eno smer in še to za tri četrtine kroga. Rotacijski kodirnik se lahko neprekinjeno vrti za 360° v smeri urinega kazalca in v nasprotni smeri urinega kazalca.
Analogna ali digitalna naprava Potenciometer je večinoma analogna vhodna naprava, ki meri spremembo položaja s spremembo vrednosti upora Rotacijski kodirnik je digitalna vhodna naprava, ki zaznava kotni položaj in zagotavlja digitalne vrednosti.

Število vhodnih položajev Potenciometer ima neskončno število vhodnih položajev, na katerih je mogoče vzeti vrednosti, ker je analogna naprava Rotacijski dajalniki imajo končno število vhodnih položajev.

Nastavitev potenciometra z Arduinom

Potenciometer je lažje nastaviti z Arduino kot z rotacijskim dajalnikom. Potenciometer ima samo tri zatiče VCC, GND in zatič INPUT, ki je povezan z Arduinom. Vmesnik potenciometra z Arduinom je prikazan spodaj:

Programiranje potenciometra v Arduinu je lažje kot programiranje rotacijskega dajalnika. Spodaj so vzorčne sintaksne kode za oba.

Vzorčna koda za potenciometer

const int pot = A0; // Deklariraj vhodni pin
nastavitev praznine ( ) {
   pinMode ( lonec, INPUT ) ; // Nastavitvena vrednost vzeta iz potenciometra kot vnos
Serial.begin ( 9600 ) ;
}
prazna zanka ( ) {
int potValue = analogRead ( lonec ) ; // Preberite vhodno vrednost potenciometra
zemljevid ( potValue, 0 , 1023 , 0 , 255 ) ; // Skaliranje vrednosti vnosa za ujemanje 8 -bit
Serial.println ( PotValue ) ; // Natisne vrednost, ki je bila vnesena v potenciometer
zamuda ( 100 ) ;
}

Koda potenciometra je zelo enostavna in preprosta. Analogni vhodni pin Arduina je preprosto deklariran, da sprejema vhod iz potenciometra, nato pa se uporabita funkciji analogRead() in map() za branje in podajanje natančne vrednosti odčitka s potenciometra.

Povezovanje rotacijskega kodirnika z Arduinom

Rotacijski dajalnik ima pet pinov. VCC in GND rotacijskega dajalnika sta povezana z Arduino. Preostali zatiči CLK, DT in SW so povezani z digitalnimi vhodnimi zatiči Arduino.

Koda Arduino za rotacijski kodirnik

// Vhodi rotacijskega kodirnika
#define CLK_PIN 2
#define DT_PIN 3
#define SW_PIN 4
int števec = 0 ;
int currentCLKState;
int lastCLKState;
Niz currentDirection = '' ;
unsigned long lastButtonPressTime = 0 ;
nastavitev praznine ( ) {
// Nastavite zatiče kodirnika kot vložki
    pinMode ( CLK_PIN, VNOS ) ;
    pinMode ( DT_PIN, VNOS ) ;
    pinMode ( SW_PIN, INPUT_PULLUP ) ;
// Nastavite serijski monitor
Serial.begin ( 9600 ) ;
// Preberite začetno stanje CLK
lastCLKState = digitalRead ( CLK_PIN ) ;
}
prazna zanka ( ) {
// Preberite trenutno stanje CLK
currentCLKState = digitalRead ( CLK_PIN ) ;
// če zadnji in trenutno stanje CLK sta drugačna, potem pojavil se je utrip
// Reagiraj samo na 1 sprememba stanja, da se prepreči dvojno štetje
če ( trenutno stanje CLKS ! = zadnje CLKSstate && trenutno CLKSstate == 1 ) {
// Če je stanje DT drugačno od stanja CLK, potem
// kodirnik se vrti v nasprotni smeri urinega kazalca, zato dekrement
če ( digitalRead ( DT_PIN ) ! = trenutno stanje CLK ) {
proti--;
trenutna smer = 'CCW' ;
} drugače {
// Dajalnik se vrti v smeri urinega kazalca, zato se poveča
števec++;
trenutna smer = 'CW' ;
}
Serijski.natis ( 'Smer vrtenja: ' ) ;
Serijski.natis ( trenutna smer ) ;
Serijski.natis ( ' | Protivrednost: ' ) ;
Serial.println ( števec ) ;
}
// Zapomnite si zadnji stanje CLK
lastCLKState = trenutnoCLKSstate;
// Preberite stanje gumba
int buttonState = digitalRead ( SW_PIN ) ;
// Če zaznamo nizek signal, pritisnemo gumb
če ( buttonState == LOW ) {
// Če je minilo 50 ms od zadnji NIZEK utrip, to pomeni, da je
// je bil gumb pritisnjen, izpuščen in ponovno pritisnjen
če ( milis ( ) - lastButtonPressTime > petdeset ) {
Serial.println ( 'Gumb pritisnjen!' ) ;
}
// Zapomnite si zadnji dogodek pritiska na gumb čas
lastButtonPressTime = millis ( ) ;
}
// Postavite v manjša zamuda pri pomoč odbiti branje
zamuda ( 1 ) ;
}

V zgornji kodi se stanje pina CLK preveri v funkciji loop(). Če ni enak prejšnjemu stanju, pomeni, da se je vrtljivi gumb zavrtel. Za preverjanje smeri vrtenja gumba se trenutno stanje CLK primerja s stanjem DT. Če obe stanji nista enaki, kaže, da se je gumb zavrtel v smeri urinega kazalca, nasprotnik pa poveča svojo vrednost, da prikaže položaj vrtljivega gumba. V nasprotnem primeru se števec zmanjša.

Aplikacije

Potenciometri se uporabljajo predvsem tam, kjer je potrebna krmilna funkcija. Uporabljajo se pri nadzoru glasnosti, nadzoru svetlosti LED. Po drugi strani pa rotacijski dajalniki ponujajo široko paleto aplikacij. Uporabljajo se v robotiki, medicinski opremi, avtomatizaciji in igrah.

Zaključek

Potenciometri in rotacijski dajalniki so posebej uporabne naprave na področju elektronike. Rotacijski dajalniki so naprednejši v primerjavi s potenciometri, saj se lahko zvezno vrtijo do 360°. Podobno imajo več aplikacij v sodobni elektroniki in jih je nekoliko težje uporabljati kot potenciometre .