Potenciometrai ir rotaciniai kodavimo įrenginiai iš pirmo žvilgsnio atrodo beveik identiški, tačiau jie veikia skirtingai. Sužinokite, kaip naudoti abu su Arduino.
Tarp elektroninių vartotojo valdymo komponentų sukamosios rankenėlės išsiskiria kaip vieni maloniausių naudoti. Jie gali papildyti jutiklinius ekranus ir kitus įvesties įrenginius, taip pat gerai veikti su mygtukais ir jungikliais. Bet kaip galite pridėti rankenėlę prie savo „pasidaryk pats“ Arduino projektų?
Turite dvi pagrindines parinktis: potenciometrą arba rotacinį kodavimo įrenginį. Šie komponentai gali atrodyti panašiai, tačiau jų naudojimo su tokiu įrenginiu kaip Arduino mikrovaldiklio plokštės metodai labai skiriasi. Pažiūrėkime, kaip jie palyginami vienas su kitu.
Potenciometrai vs. Rotoriniai kodavimo įrenginiai
Dauguma potenciometrų ir rotacinių kodavimo įrenginių, su kuriais susidurs „pasidaryk pats“ entuziastai, yra panašios formos. Jie turi stačiakampį arba cilindrinį pagrindą su pritvirtintomis jungties kojelėmis ir apvalų veleną, kuris sukasi ir turi išpjovas dangteliui sėdėti.
Kai kurie potenciometrai atrodo kitaip, pavyzdžiui, tie, kurie yra ilgų skaidrių pavidalu, pavyzdžiui, tie, kurie yra ant muzikos maišymo denių. Tačiau, kalbant apie sukamuosius, iš pirmo žvilgsnio jie atrodo beveik identiški sukamiesiems kodavimo įtaisams, todėl jums būtų atleista, jei manytumėte, kad jie yra vienodi.
Kas yra potenciometras?
Potenciometras iš esmės yra kintamasis rezistorius. Sukant veleną, pasikeičia potenciometro viduje esanti varža, todėl vartotojas gali keisti grandinės savybes jos neperstatant. Potenciometrai gali būti ir analoginiai, ir skaitmeniniai, tačiau skaitmeniniai potenciometrai imituoja analoginius, todėl jie labai panašūs į naudojimą.
Potenciometrai visada turi apibrėžtą pradžios ir pabaigos tašką, kuriame veleno pasukti nebegalima. Kai kurie potenciometrai sukant jaučiasi nelygūs, tačiau daugelis taip pat yra lygūs, kaip ir senuose stereofoniniuose įrenginiuose.
Nepaisant to, kad potenciometrai yra analoginiai, jie gerai veikia su mikrovaldikliais. Galite lengvai nustatykite potenciometrą su Raspberry Pi Pico arba Arduino.
Kas yra Rotary Encoder?
Sukamieji kodavimo įrenginiai nustato savo veleno padėtį naudodami jutiklį, kad pateiktų analoginį arba skaitmeninį signalą įrenginiui, prie kurio jie yra prijungti. Tai nurodo įrenginiui, kurioje padėtyje yra koduotuvas. Greta besisukančio veleno sukamuosiuose kodavimo įrenginiuose paprastai taip pat yra įmontuotas mygtukas, kuris įjungiamas stumiant veleną žemyn.
Skirtingai nuo potenciometrų, sukamieji kodavimo įrenginiai gali suktis be sustojimo ir beveik visada turi lytėjimo iškilimus kiekvienai veleno padėčiai. Daugelis šiuolaikinių automobilių savo pramogų sistemoms valdyti naudoja rotacinius kodavimo įrenginius.
Kaip naudoti potenciometrą su „Arduino“.
Dėl paprastos konstrukcijos potenciometrą naudoti su Arduino paprasta. Jūsų potenciometras turi tris jungtis: įžeminimą, išėjimą ir vref. Įžeminimo ir vref kaiščiai jungiami atitinkamai prie „Arduino“ GND ir 5 V jungčių, o potenciometro išvesties kaištis jungiasi prie vieno iš analoginių jūsų plokštės įėjimų.
Arduino potenciometro kodas
Jūsų Arduino potenciometro kodas prasideda nuo pagrindinio setup () ir kilpa () šabloną, kurį pamatysite kurdami naują failą Arduino IDE. Pirmiausia pridėkite a const tarpt kintamasis kodo pradžioje, kad užregistruotų puodo analoginį kontaktinį kontaktą – šiuo atveju A0.
konsttarpt potenciometras = A0;
Po to, setup () funkcija paprasta: tereikia paskelbti savo potenciometro kaištį kaip įvestį. Taip pat galite užmegzti nuoseklųjį ryšį, jei norite siųsti duomenis į kompiuterį diagnostikai.
tuštumasąranka(){
pinMode (potenciometras, INPUT);
Serijinis.pradėkite(9600);
}
Tada laikas nustatyti kilpa () funkcija. Pradėkite kurdami tarpt kintamasis naudojant analogiškas skaitymas () funkcija išsaugoti potenciometro padėtį. Po to galite naudoti žemėlapis () funkcija, kad sumažintumėte reikšmės, su kuria susiduriate, dydį – šiame pavyzdyje, kad atitiktų PWM specifikacijas, pavyzdžiui, kad būtų galima valdyti šviesos diodo ryškumą. Pridėkite trumpą delsą, kad užtikrintumėte stabilumą.
tuštumakilpa(){
tarpt potenciometerValue = analogRead (potenciometras);
žemėlapis (potenciometerValue, 0, 1023, 0, 255);
Serijinis.println(potenciometrasValue);
vėlavimas (10);
}
Dabar, kai turite savo potenciometro padėtį, galite naudoti jį su kitomis kodo dalimis. Pavyzdžiui, an jeigu teiginys puikiai veiktų norint suaktyvinti kodą, kai potenciometras yra konkrečioje padėtyje.
konsttarpt potenciometras = A0;
tuštumasąranka(){
pinMode (potenciometras, INPUT);
Serijinis.pradėkite(9600);
}
tuštumakilpa(){
tarpt potenciometerValue = analogRead (potenciometras);
žemėlapis (potenciometerValue, 0, 1023, 0, 255);
Serijinis.println(potenciometrasValue);
vėlavimas (10);
}
Kaip naudoti sukamąjį kodavimo įrenginį su „Arduino“.
Sukamiesiems kodavimo įtaisams reikalingas sudėtingesnis kodas nei potenciometrams, tačiau su jais vis tiek gana lengva dirbti. Jūsų rotacinis koduotuvas turi penkis kaiščius: įžeminimą, VCC, mygtuko kaištį (SW), išvestį A (CLK) ir išvestį B (DT). Įžeminimo ir VCC kaiščiai jungiami atitinkamai prie jūsų Arduino įžeminimo ir 5 V jungčių, o SW, CLK ir BT kaiščiai jungiami prie atskirų skaitmeninių Arduino jungčių.
Arduino Rotary Encoder kodas
Kad mūsų kodas būtų paprastesnis ir su juo būtų lengviau dirbti, naudosime SimpleRotary Arduino biblioteką, kurią sukūrė MPrograms. GitHub. Prieš pradėdami dirbti su kodu įsitikinkite, kad ši biblioteka yra įdiegta.
Panašiai kaip ir jūsų potenciometro kodas, galite pradėti savo rotacinį kodavimo scenarijų naudodami pagrindinį „Arduino“ setup () ir kilpa () funkcijos šablonas. Pradėkite deklaruodami SimpleRotary biblioteką ir priskirdami savo kodavimo kaiščius šia tvarka; CLK, DT ir SW.
#įtraukti
Paprastas Rotary sukamieji(1,2,3);
Jums nereikia nieko pridėti prie savo setup () funkcija, nebent norite naudoti nuoseklųjį monitorių rotacinio kodavimo įrenginiui diagnozuoti.
tuštumasąranka(){
Serijinis.pradėkite(9600);
}
The kilpa () funkcija yra kita istorija. Enkoderio veleno sukimosi nustatymas prasideda nuo a rotary.rotate() funkcijos iškvietimas, priskirtas an tarpt kintamasis. Jei rezultatas yra 1, kodavimo įrenginys sukasi pagal laikrodžio rodyklę. Jei rezultatas yra 2, kodavimo įrenginys sukasi prieš laikrodžio rodyklę. Rezultatas visada bus 0, jei kodavimo įrenginys neįsijungė nuo paskutinio patikrinimo.
Tu gali naudoti jeigu teiginius, kad suaktyvintų kitą kodą, priklausomai nuo kodavimo įrenginio sukimosi krypties.
tuštumakilpa(){
tarpt encoderRotation;
encoderRotation = rotary.rotate();if (encoderRotation == 1) {
Serial.println("pagal laikrodžio rodyklę");
}
if (encoderRotation == 2) {
Serial.println("prieš laikrodžio rodyklę");
}
}
Taip pat turite pridėti kodavimo įrenginio mygtuko kodą kilpa () funkcija. Šis procesas yra labai panašus, išskyrus tai, kad naudosite rotary.push() funkcija, o ne rotary.rotate().
tuštumakilpa(){
tarpt encoderButton;
encoderButton = rotary.push();
if (encoderButton == 1) {
Serial.println("mygtukas paspaustas");
}
}
Šis scenarijus yra gana paprastas, ir jūs galite daug nuveikti, kad jį sukurtumėte savo. Verta peržiūrėti SimpleRotary projekto dokumentaciją, kad įsitikintumėte, jog naudojate visas pagrindines jo funkcijas. Sujungus kodavimo įrenginio kodas turėtų atrodyti taip.
#įtraukti
Paprastas Rotary sukamieji(1,2,3);tuštumasąranka(){
Serijinis.pradėkite(9600);
}tuštumakilpa(){
tarpt encoderRotation;
encoderRotation = rotary.rotate();if (encoderRotation == 1) {
Serial.println("pagal laikrodžio rodyklę");
}if (encoderRotation == 2) {
Serial.println("prieš laikrodžio rodyklę");
}tarpt encoderButton;
encoderButton = rotary.push();
if (encoderButton == 1) {
Serial.println("mygtukas paspaustas");
}
}
Kaip projektams pasirinkti potenciometrus ir rotacinius kodavimo įrenginius
Kaip matote, rotaciniai kodavimo įrenginiai ir potenciometrai veikia gana skirtingai. Abu šie komponentai suteikia naujų būdų valdyti savo elektronikos projektus, bet kurį turėtumėte pasirinkti?
Potenciometrai yra prieinami ir lengvai naudojami, tačiau leidžia tik ribotą įvesties diapazoną. Dėl to jie puikiai tinka, kai norite valdyti šviesos diodo ryškumą arba padidinti arba sumažinti tam tikrų komponentų galią ir atlikti kitas panašias užduotis.
Sukamieji kodavimo įrenginiai suteikia daug daugiau galimybių nei potenciometrai. Mygtuko įtraukimas reiškia, kad jie puikiai tinka meniu valdymo sistemoms, kaip matyti daugelyje šiuolaikinių automobilių. Šio tipo komponentai tapo labai populiarūs mechaninės klaviatūros pastatymo erdvėje. Jūs netgi galite sukurti mažą makropadą su įmontuotu koduotuvu.
Panaši išvaizda, skirtingi komponentai
Turėdami visą šią informaciją po diržu, turėtumėte būti pasirengę pradėti elektronikos projektą su potenciometru arba rotaciniu koduotuvu. Šie komponentai gali suteikti jums daug galimybių valdyti kuriamas grandines, tačiau turite įsitikinti, kad pasirinkote tinkamą projekto parinktį.