Los sukamieji kodavimo įrenginiai Tai elektroniniai komponentai, išpopuliarėję „pasidaryk pats“ projektuose ir „Arduino“ ekosistemoje. Šie įrenginiai leidžia nuskaityti ašies judėjimas, o tai reiškia galimybę sekti greitis ir kampinė padėtis skirtingų sistemų. Tačiau, nepaisant to, kokie naudingi jie gali būti, jie dažnai painiojami su kitais įrenginiais, tokiais kaip potenciometrai, todėl gali kilti nesusipratimų dėl jo naudojimo ir funkcionalumo.
Šiame straipsnyje mes išsamiai paaiškinsime, kas sukamieji kodavimo įrenginiai, kaip jie veikia ir kaip galite juos naudoti su Arduino. Taip pat apžvelgsime ryšius, kodo naudojimą ir keletą praktinių pavyzdžių, kurie padės efektyviai jį integruoti į savo projektus. Tačiau prieš einant į technines detales, svarbu suprasti, kas daro šį įrenginį vienu mėgstamiausių elektronikos projektuose.
Kas yra rotacinis kodavimo įrenginys?
Un sukamasis kodavimo įrenginys Tai elektromechaninis įtaisas, kuris veleno sukimosi judesį paverčia signalų, dažniausiai skaitmeninių, serija. Šiuos signalus gali naudoti tokia sistema kaip „Arduino“, kad interpretuotų informaciją, susijusią su posūkio greitis, pozicija ašies ir net sukimosi kryptis. Skirtingai nuo potenciometrų, kurių apsisukimų skaičius ribojamas, kodavimo įrenginiai gali suktis neribotą laiką.
Yra įvairių tipų rotacinių kodavimo įrenginių, tačiau juos galima suskirstyti į dvi dideles kategorijas: absoliučiai e prieauginis. Absoliutus kodavimo prietaisai užtikrina tikslų veleno padėties rodmenį bet kuriuo metu, nesvarbu, kiek apsisukimų jis padarė. Kita vertus, prieauginio kodavimo įrenginiai įrašo tik santykinis judėjimas iš pradinės padėties, neturint absoliučios kampo atskaitos.
Labiausiai paplitęs kodavimo tipas „pasidaryk pats“ arba „Arduino“ projektuose yra inkrementinis kodavimo įrenginys. Jie yra nebrangūs, lengvai randami ir gali būti naudojami įvairioms reikmėms, pavyzdžiui, garsumo valdymui, LCD ekranų ryškumo reguliavimui ir kt. Be to, daugelyje jų yra mygtukas, kuris padeda integruoti papildomus valdymo veiksmus į jūsų projektus.
Kaip veikia rotacinis kodavimo įrenginys
Rotacinio kodavimo įrenginio širdis sudaryta iš serijos pertraukimai kurios aktyvuojamos kiekvieną kartą sukantis velenui. Taip generuojamas skaitmeninis signalas, kurį gali nuskaityti elektroninis įrenginys. Šio tipo kodavimo įrenginiai paprastai turi du pagrindinius išėjimus, kurie generuoja signalus kvadratinėje fazėje. Tai reiškia, kad tarp abiejų signalų yra 90 laipsnių poslinkis, leidžiantis ne tik skaičiuoti posūkius, bet ir nustatyti sukimosi kryptis (pagal laikrodžio rodyklę arba prieš laikrodžio rodyklę).
Prietaisas suteikia impulsų skaičius per apsisukimą, o pagal impulsų skaičių galime tiksliau nustatyti ašies judėjimą. Standartinis kodavimo įrenginys gali turėti nuo 20 iki daugiau nei 256 impulsų per apsisukimą, priklausomai nuo modelio. The skaičiuojami impulsai naudojant kvadratinę sistemą, kuri taip pat leidžia nustatyti, ar sukimas buvo pagal laikrodžio rodyklę (CW) ar prieš laikrodžio rodyklę (CCW), todėl tai labai praktiška sukimosi sistemoms. valdymas ir navigacija.
Be to, šiuose įrenginiuose gali būti mygtukas, kuris veikia paspaudus veleną. Šis mygtukas leidžia registruoti veiksmą tarsi mygtuką, o tai išplečia naudojimo galimybes. Apibendrinant galima teigti, kad koduotuvas leidžia ne tik fiksuoti ašies, bet ir jos sukimąsi adresas y realiojo laiko padėtis.
Skirtumai tarp rotacinio kodavimo ir potenciometro
Labai dažnai painiojama a sukamasis kodavimo įrenginys su potenciometras dėl panašios išvaizdos, tačiau juos skiria esminiai skirtumai. Potenciometras reguliuoja pasipriešinimo vertę pagal sukimosi kampą ir suteikia analoginį išėjimą. Priešingai, sukamasis kodavimo įrenginys generuoja skaitmeninių impulsų seriją, atspindinčią veleno sukimąsi. Kitas esminis skirtumas yra tai, kad kodavimo įrenginiai gali suktis neribotą laiką, o potenciometrai turi fizinį apsisukimų skaičių.
Dėl šių priežasčių kodavimo įrenginiai idealiai tinka situacijose, kai reikalingas nuolatinis ir tikslus sukimosi valdymas, pavyzdžiui, variklio valdymo sistemose, o potenciometrai dažniausiai naudojami statiniams parametrams, tokiems kaip garsumas ar ryškumas, reguliuoti.
Kodavimo įrenginio prijungimas prie Arduino
Sukamąjį kodavimo įrenginį prijunkite prie a Arduino Tai gana paprasta. Priklausomai nuo modelio, kodavimo įrenginys turės tris pagrindinius išėjimus: du kanalams A ir B ir vieną mygtukui. Mygtukas jungiamas prie vienos Arduino skaitmeninės įvesties, o kanalai A ir B jungiami prie dviejų kitų skaitmeninių įėjimų.
Norint tiksliai nuskaityti kodavimo įrenginio judėjimą, patartina naudoti kontaktinius kaiščius. pertraukimas Arduino kanalams A ir B. Tačiau tai ne visada būtina. Jei jums reikia tik vieno ar dvigubo tikslumo, galite gauti rodmenis periodiškai apklausdami šias išvestis (apklausa), nors tai turės įtakos jūsų kodo efektyvumui.
Įprasto projekto ryšys būtų maždaug toks:
- A kanalas prijungtas prie D9
- B kanalas prijungtas prie D10
- Paspauskite mygtuką, prijungtą prie D11
Svarbu užtikrinti, kad pertraukimams parinkti kaiščiai būtų teisingi, nes ne visi Arduino plokščių kaiščiai palaiko pertraukimus. Trumpai tariant, kodavimo įrenginį galite prijungti be pertrūkių, bet tikslumas bus mažesnis.
Kodas naudoti sukamąjį kodavimo įrenginį su „Arduino“.
Kodas, skirtas nuskaityti kodavimo įrenginį naudojant „Arduino“, yra paprastas. Žemiau parodysime pagrindinį pavyzdį, kaip perskaityti A kanale sugeneruotų impulsų skaičių, taip pat nustatant sukimosi kryptis naudojant kanalą B. Tai paprastas aproksimavimas naudojant metodą Balsavimas, bet jei reikia didesnio tikslumo, galite modifikuoti kodą, kad su juo veiktų pertraukimai.
const int channelPinA = 9;
const int channelPinB = 10;
int prevStateChannelA = 0;
int value = 0;
unsigned long currentTime = 0;
unsigned long prevTime = 0;
void setup() {
Serial.begin(9600);
pinMode(channelPinA, INPUT);
pinMode(channelPinB, INPUT);
prevStateChannelA = digitalRead(channelPinA);
}
void loop() {
currentTime = millis();
int currentStateChannelA = digitalRead(channelPinA);
if (currentStateChannelA != prevStateChannelA) {
if (digitalRead(channelPinB) != currentStateChannelA) {
value++;
} else {
value--;
}
Serial.println(value);
prevStateChannelA = currentStateChannelA;
currentTime = millis();
}
}
Šis kodas nustato būsenos pasikeitimą A kanale ir įvertina kanalą B, kad nustatytų kryptį, kuria buvo sukamas koduotojas. Kiekvieną kartą, kai vertė pasikeičia, kodas atnaujins įrašytų impulsų skaičių ir išspausdins vertę serijiniame monitoriuje.
Įprasto naudojimo pavyzdžiai
Los sukamieji kodavimo įrenginiai Jie naudojami įvairiuose tiek profesionaliuose, tiek namuose. Arduino projektų srityje jais galima reguliuoti parametrus realiu laiku, pavyzdžiui, valdyti mobiliojo roboto kryptį, reguliuoti garsiakalbio garsumą ar reguliuoti LCD ekrano ryškumą. Jie taip pat plačiai naudojami žingsninių variklių ar servo valdymo sistemose, kur reikalingas tikslus ašies padėties valdymas.
Viena įdomiausių programų yra sąsajų su vaizdiniu ar garsiniu grįžtamuoju ryšiu kūrimas, kai koduotuvas ne tik koreguoja parametrą, bet ir suteikia vartotojui fizinis grįžtamasis ryšys sukant jį, ko negalima pasiekti naudojant tradicinius mygtukus.
Be to, kodavimo įrenginiai yra labai naudingi kaip potenciometrų pakaitalai sistemose, kurioms reikalingas didesnis patvarumas, nes jie neturi posūkio ribų ir mažina mechaninį nusidėvėjimą.
El kodavimo įrenginių naudojimas auga ir robotų bei autonominių sistemų programavimas. Juos galima tiesiogiai prijungti prie roboto ratų, kad būtų galima išmatuoti tikslų judėjimą, taip optimizuojant poslinkio ir vairavimo skaičiavimus, gerinant robotų efektyvumą ir navigacijos galimybes.
Sukamieji kodavimo įrenginiai taip pat atsidūrė medicinos prietaisų ir pramoninių valdymo pultų kūrime, kur reikalinga nuolatinė judesio kontrolė, norint pasiekti milimetro tikslumą mašinose.
Apskritai kodavimo įrenginiai yra universalus ir ekonomiškas pasirinkimas projektams, kuriuose labai svarbu tiksliai išmatuoti sukimąsi.
Jei ieškote ekonomiško ir efektyvaus sprendimo savo Arduino projektams, naudokite sukamieji kodavimo įrenginiai gali suteikti jums puikią alternatyvą kitiems analoginiams valdymo būdams, pvz., potenciometrams. Dėl jų galimybės tiksliai valdyti platų sukimosi diapazoną jie idealiai tinka įvairioms reikmėms.