L rotējošie kodētāji Tie ir elektroniski komponenti, kas ir ieguvuši popularitāti DIY projektos un Arduino ekosistēmā. Šīs ierīces ļauj nolasīt ass kustība, kas nozīmē izsekošanas iespēju ātrums un leņķiskais stāvoklis dažādām sistēmām. Tomēr, neskatoties uz to, cik noderīgi tie var būt, tie bieži tiek sajaukti ar citām ierīcēm, piemēram, potenciometri, kas var radīt pārpratumus par tā lietošanu un funkcionalitāti.
Šajā rakstā mēs detalizēti paskaidrosim, kas rotējošie kodētāji, kā tie darbojas un kā jūs varat to izmantot ar Arduino. Mēs arī pārskatīsim savienojumus, koda izmantošanu un dažus praktiskus piemērus, kas palīdzēs to efektīvi integrēt savos projektos. Taču pirms iedziļināties tehniskajās detaļās, ir svarīgi saprast, kas padara šo ierīci par vienu no favorītiem elektronikas projektos.
Kas ir rotējošais kodētājs?
Un rotējošais kodētājs Tā ir elektromehāniska ierīce, kas pārvērš vārpstas rotācijas kustību signālu sērijā, parasti ciparu formātā. Šos signālus var izmantot tāda sistēma kā Arduino, lai interpretētu informāciju, kas saistīta ar pagrieziena ātrumsuz pozīcija no ass un pat griešanās virziens. Atšķirībā no potenciometriem, kuriem ir ierobežots apgriezienu skaits, kodētāji var griezties bezgalīgi.
Ir dažādi rotācijas kodētāju veidi, taču tos var iedalīt divās lielās kategorijās: absolūti e inkrementāls. Absolūtais kodētājs vienmēr nodrošina precīzu vārpstas stāvokļa nolasījumu neatkarīgi no tā, cik apgriezienus tā ir veikusi. No otras puses, inkrementālie kodētāji ieraksta tikai relatīvā kustība no sākotnējās pozīcijas bez absolūtas leņķa atskaites.
Visizplatītākais kodētāja veids DIY vai Arduino projektos ir inkrementālais kodētājs. Tie ir lēti, viegli atrodami, un tos var izmantot visdažādākajiem lietojumiem, piemēram, skaļuma regulēšanai, LCD ekrānu spilgtuma regulēšanai, cita starpā. Turklāt daudzos no tiem ir spiedpoga, kas palīdz integrēt papildu kontroles darbības jūsu projektos.
Kā darbojas rotējošais kodētājs
Rotējošā kodētāja sirdi veido virkne pārtraukumiem kas tiek aktivizēti katru reizi, kad vārpsta griežas. Tas ģenerē digitālu signālu, ko var nolasīt ar elektronisku ierīci. Šāda veida kodētājiem parasti ir divas galvenās izejas, kas ģenerē signālus kvadrātfāzē. Tas nozīmē, ka starp abiem signāliem ir 90 grādu nobīde, kas ļauj ne tikai saskaitīt pagriezienus, bet arī noteikt griešanās virziens (pulksteņrādītāja virzienā vai pretēji pulksteņrādītāja virzienam).
Ierīce nodrošina impulsu skaits vienā apgriezienā, un pēc impulsu skaita mēs varam precīzāk noteikt ass kustību. Standarta kodētājam atkarībā no modeļa var būt no 20 līdz vairāk nekā 256 impulsiem vienā apgriezienā. The impulsi tiek skaitīti izmantojot kvadrātveida sistēmu, kas arī ļauj noteikt, vai rotācija ir bijusi pulksteņrādītāja virzienā (CW) vai pretēji pulksteņrādītāja virzienam (CCW), kas padara to ļoti praktisku rotācijas sistēmām. vadība un navigācija.
Turklāt šajās ierīcēs var būt spiedpoga, kas darbojas, nospiežot vārpstu. Šī poga ļauj reģistrēt darbību tā, it kā tā būtu poga, kas paplašina lietošanas iespējas. Rezumējot, kodētājs ne tikai ļauj reģistrēt ass, bet arī tās rotāciju adrese y reālā laika pozīcija.
Atšķirības starp rotējošo kodētāju un potenciometru
Ļoti bieži mēdz sajaukt a rotējošais kodētājs ar vienu potenciometrs to līdzīgā izskata dēļ, taču pastāv būtiskas atšķirības, kas tos atdala. Potenciometrs pielāgo pretestības vērtību atbilstoši griešanās leņķim, nodrošinot analogo izvadi. Turpretim rotējošais kodētājs ģenerē virkni ciparu impulsu, kas atspoguļo vārpstas rotāciju. Vēl viena būtiska atšķirība ir tā, ka kodētāji var griezties bezgalīgi, savukārt potenciometriem ir fizisks apgriezienu skaita ierobežojums.
Šo iemeslu dēļ kodētāji ir ideāli piemēroti situācijām, kad nepieciešama nepārtraukta un precīza rotācijas kontrole, piemēram, motora vadības sistēmās, savukārt potenciometrus parasti izmanto, lai pielāgotu statiskus parametrus, piemēram, skaļumu vai spilgtumu.
Kodētāja pievienošana Arduino
Pievienojiet rotējošo kodētāju pie a Arduino Tas ir salīdzinoši vienkārši. Atkarībā no modeļa kodētājam būs trīs galvenās izejas: divas kanāliem A un B un viena spiedpogai. Spiedpoga savienojas ar vienu Arduino digitālo ieeju, savukārt kanāli A un B ir savienoti ar divām citām digitālajām ieejām.
Lai iegūtu precīzu kodētāja kustības nolasījumu, ieteicams izmantot tapas pārtraukums uz Arduino kanāliem A un B. Tomēr tas ne vienmēr ir nepieciešams. Ja jums nepieciešama tikai viena vai dubultā precizitāte, varat iegūt rādījumus, periodiski aptaujājot šīs izejas (aptaujājot), lai gan tas ietekmēs koda efektivitāti.
Savienojums tipiskam projektam būtu apmēram šāds:
- Kanāls A ir savienots ar D9
- Kanāls B savienots ar D10
- Spiedpoga, kas savienota ar D11
Ir svarīgi nodrošināt, lai pārtraukumiem atlasītās tapas būtu pareizas, jo ne visas Arduino dēļu tapas atbalsta pārtraukumus. Īsāk sakot, kodētāju var pieslēgt bez pārtraukumiem, bet precizitāte būs zemāka.
Kods rotācijas kodētāja izmantošanai ar Arduino
Kodētāja nolasīšanas kods ar Arduino ir vienkāršs. Zemāk mēs parādīsim pamata piemēru, lai nolasītu kanālā A ģenerēto impulsu skaitu, nosakot arī griešanās virziens ar kanāla B palīdzību. Tas ir vienkāršs tuvinājums, izmantojot metodi Polling, bet, ja nepieciešama lielāka precizitāte, varat modificēt kodu, lai strādātu ar to pārtraukumiem.
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 kods nosaka stāvokļa izmaiņas kanālā A un novērtē kanālu B, lai noteiktu virzienu, kurā kodētājs ir pagriezts. Katru reizi, kad vērtība mainās, kods atjauninās ierakstīto impulsu skaitu un izdrukā vērtību sērijas monitorā.
Kopīgas lietošanas piemēri
L rotējošie kodētāji Tos izmanto plašā klāstā gan profesionālajām, gan mājas vajadzībām. Arduino projektu jomā tos var izmantot, lai pielāgotu parametrus reāllaikā, piemēram, kontrolētu mobilā robota virzienu, regulētu skaļruņa skaļumu vai pielāgotu LCD ekrāna spilgtumu. Tos plaši izmanto arī pakāpju motoru vai servo vadības sistēmās, kur nepieciešama precīza ass pozīcijas kontrole.
Viena no interesantākajām lietojumprogrammām ir saskarņu izveide ar vizuālu vai audiālu atgriezenisko saiti, kur kodētājs ne tikai pielāgo parametru, bet arī nodrošina lietotājam fiziska atgriezeniskā saite pagriežot to, ko nevar panākt ar tradicionālajām pogām.
Turklāt kodētāji ir ļoti noderīgi kā potenciometru aizstājēji sistēmās, kurām nepieciešama lielāka izturība, jo tiem nav pagrieziena ierobežojumu, kas samazina mehānisko nodilumu.
El kodētāju izmantošana pieaug arī robotu un autonomo sistēmu programmēšana. Tos var savienot tieši ar robota riteņiem, lai mērītu precīzu kustību, tādējādi optimizējot pārvietojuma un stūrēšanas aprēķinus, uzlabojot robotu efektivitāti un navigācijas spējas.
Rotācijas kodētāji ir atraduši ceļu arī medicīnas ierīču un rūpniecisko vadības paneļu izstrādē, kur nepieciešama pastāvīga kustības kontrole, lai mašīnās sasniegtu milimetru precizitāti.
Kopumā kodētāji ir daudzpusīga un ekonomiska iespēja projektiem, kur galvenais ir precīzs rotācijas mērījums.
Ja meklējat ekonomisku un efektīvu risinājumu saviem Arduino projektiem, izmantojiet rotējošie kodētāji var sniegt jums lielisku alternatīvu citām analogās vadības metodēm, piemēram, potenciometriem. To spēja nodrošināt precīzu vadību plašā rotācijas diapazonā padara tos ideāli piemērotus dažādiem lietojumiem.