Satura rādītājs:
Video: Rotācijas kodētājs - saprotiet un izmantojiet to (Arduino/cits ontrolkontrolleris): 3 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
Rotācijas kodētājs ir elektromehāniska ierīce, kas rotācijas kustību pārvērš digitālā vai analogā informācijā. Tas var griezties pulksteņrādītāja virzienā vai pretēji pulksteņrādītāja virzienam. Ir divu veidu rotējošie kodētāji: absolūtie un relatīvie (inkrementālie) kodētāji.
Lai gan absolūtais kodētājs izvada vērtību, kas ir proporcionāla pašreizējam vārpstas leņķim, inkrementālais kodētājs parāda vārpstas soli un tā virzienu. (Šajā gadījumā mums ir inkrementālais kodētājs)
Rotējošie kodētāji kļūst arvien populārāki, jo vienā elektriskajā modulī varat izmantot divas funkcijas: Vienkāršs slēdzis darbību apstiprināšanai un rotējošais kodētājs navigācijai, piem. izmantojot izvēlni.
Papildu rotējošais kodētājs ģenerē divus izejas signālus, kamēr tā vārpsta rotē. Atkarībā no virziena viens no signāliem ved otru. (Skatīt zemāk)
1. darbība: izvaddatu izpratne
Kā redzat, kad kodētāja vārpsta sāk griezties pulksteņrādītāja virzienā, izeja A vispirms nokrīt līdz LOW, un izeja B seko tai. Pretēji pulksteņrādītāja virzienam darbība pagriežas pretēji.
Tagad mums tas vienkārši jāievieš mūsu µController (es izmantoju Arduino Nano).
2. solis: izveidojiet ķēdi
Kā es aprakstīju iepriekš, izejas rada HIGH un LOW flangu. Lai iegūtu tīru HIGH pie µController datu tapas A un B, mums jāpievieno Pull-Up rezistori. Kopējā tapa C iet taisni uz zemes LOW flangam.
Lai iegūtu informāciju par iekšējo slēdzi (spiedpogu), mēs izmantosim pārējās divas tapas. Viens no tiem nonāk VCC, bet otrs - µController datu tapā. Mums ir arī jāpievieno nolaižamais rezistors datu tapai, lai iegūtu tīru LOW.
Ir iespējams izmantot arī jūsu µController iekšējos pacelšanas un nolaišanas rezistorus!
Manā gadījumā pinout izskatās šādi:
- +3, 3V => +3, 3V (Arduino) (iespējams arī +5V)
- GND => GND (Arduino)
- A => Pin10
-
B =>
Piespraude
11
- C => GND
-
SW =>
Piespraude
12
3. darbība: koda rakstīšana
int pinA = 10; // iekšējais slēdzis A int pinB = 11; // iekšējais slēdzis B int pinSW = 12; // slēdzis (nospiests kodētājs) int encoderPosCount = 0; // sākas ar nulli, mainiet, ja vēlaties
int positionval;
bool switchval; int mrotateLast; int mrotate;
void setup () {
int mrotateLast = digitalRead (pinA); Sērijas sākums (9600); kavēšanās (50); }
void loop () {readencoder (); ja (readswitch () == 1) {Serial.println ("Switch = 1"); }}
int readencoder () {
mrotate = digitalRead (pinA); if (mrotate! = mrotateLast) {// poga griežas, ja (digitalRead (pinB)! = mrotate) {// vispirms mainīts slēdzis A -> rotējošs pulksteņrādītāja virzienā encoderPosCount ++; Serial.println ("pagriezts pulksteņrādītāja virzienā"); } cits {// vispirms mainīts slēdzis B-> rotējošs pretēji pulksteņrādītāja virzienam kodētājsPosCount--; Serial.println ("pagriezts pretēji pulksteņrādītāja virzienam"); }
Serial.print ("Kodētāja pozīcija:"); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = mrotate; atgriezt kodētājuPosCount; } bool readswitch () {
ja (digitalRead (pinSW)! = 0) {// slēdzis ir nospiests
while (digitalRead (pinSW)! = 0) {} // slēdzis pašlaik ir nospiests switchval = 1; } else {switchval = 0;} // slēdzis nav nospiests atgriešanās slēdzis; }
Tagad jūs varat pagriezt kodētāju, un mainīgais kodētājsPosCount tiks skaitīts uz augšu, ja griezīsities pulksteņrādītāja virzienā, un skaitīs atpakaļ, ja pagriezīsiet pretēji pulksteņrādītāja virzienam.
Tieši tā! Vienkārši un noderīgi.
Jūtieties brīvi mainīt un izpildīt kodu. Jūs to varat īstenot savā projektā.
Es augšupielādēšu arī LED projektu, kurā es izmantoju kodētāju, lai iestatītu savu gaismas diožu spilgtumu.
Ieteicams:
Lokomotīves modelis ar soļu motoru vadību - Soļu motors kā rotācijas kodētājs: 11 soļi (ar attēliem)
Lokomotīves modelis ar soļu motoru vadību | Pakāpju motors kā rotācijas kodētājs: Vienā no iepriekšējām instrukcijām mēs uzzinājām, kā izmantot pakāpju motoru kā rotējošu kodētāju. Šajā projektā mēs tagad izmantosim šo pakāpju motoru pagriezto rotējošo kodētāju, lai vadītu lokomotīves modeli, izmantojot Arduino mikrokontrolleru. Tātad, bez fu
Pakāpju motors Kontrolēts pakāpju motors - Soļu motors kā rotācijas kodētājs: 11 soļi (ar attēliem)
Pakāpju motors Kontrolēts pakāpju motors | Pakāpju motors Kā rotācijas kodētājs: Vai pāris stepper motori atrodas apkārt un vēlaties kaut ko darīt? Šajā instrukcijā izmantosim pakāpju motoru kā rotējošu kodētāju, lai kontrolētu cita soļa motora stāvokli, izmantojot Arduino mikrokontrolleru. Tāpēc bez liekas piepūles pieņemsim
Kā: bezkontakta rotācijas kodētājs: 3 soļi
Kā: bezkontakta rotējošais kodētājs: Šajā lietojumprogrammas piezīmē ir aprakstīts, kā izveidot augstas uzticamības rotējošo slēdzi vai kodētāju, izmantojot Dialog GreenPAK ™. Šī slēdža konstrukcija ir bezkontakta, un tāpēc tiek ignorēta kontaktu oksidēšanās un nodilums. Tas ir ideāli piemērots lietošanai ārpus telpām, kur ir ilgs
Rotācijas kodētājs, izmantojot Arduino Nano: 4 soļi
Rotācijas kodētājs, izmantojot Arduino Nano: Sveiki visiem! Šajā rakstā es sagatavošu pamācību par rotējošā kodētāja izmantošanu, izmantojot Arduino Nano. Lai izmantotu šo rotējošo kodētāju, jums nav nepieciešama ārēja bibliotēka. Tātad mēs varam tieši izveidot programmas, vispirms nepievienojot bibliotēkas. labi, sāksim ar to
Rotācijas kodētājs: kā tas darbojas un kā lietot ar Arduino: 7 soļi
Rotācijas kodētājs: kā tas darbojas un kā to izmantot kopā ar Arduino: šo un citas pārsteidzošās apmācības varat izlasīt ElectroPeak oficiālajā tīmekļa vietnē. Pārskats Šajā apmācībā jūs uzzināsit, kā izmantot rotējošo kodētāju. Pirmkārt, jūs redzēsiet informāciju par rotācijas kodētāju, un pēc tam uzzināsit, kā