Turinys:
Video: Rotacinis kodavimo įrenginys - supraskite ir naudokite („Arduino“/kitas valdiklis): 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Sukamasis kodavimo įrenginys yra elektromechaninis įtaisas, kuris sukamąjį judesį paverčia skaitmenine ar analogine informacija. Jis gali pasukti pagal laikrodžio rodyklę arba prieš laikrodžio rodyklę. Yra dviejų tipų sukamieji kodavimo įrenginiai: absoliutus ir santykinis (papildomas).
Nors absoliutus kodavimo įrenginys pateikia vertę, proporcingą dabartiniam veleno kampui, inkrementinis kodavimo įrenginys pateikia veleno žingsnį ir jo kryptį. (Šiuo atveju turime inkrementinį kodavimo įrenginį)
Rotaciniai kodavimo įrenginiai tampa vis populiaresni, nes jūs galite naudoti dvi funkcijas viename elektros modulyje: Paprastas jungiklis, patvirtinantis veikimą, ir sukamasis koduotojas, skirtas naršyti, pvz. per meniu.
Inkrementinis sukamasis kodavimo įrenginys sukuria du išėjimo signalus, kol jo velenas sukasi. Priklausomai nuo krypties, vienas iš signalų veda kitą. (žr. žemiau)
1 žingsnis: Išvesties duomenų supratimas
Kaip matote, kai kodavimo velenas pradeda suktis pagal laikrodžio rodyklę, išėjimas A pirmiausia nukrenta iki LOW, o išėjimas B - po jo. Prieš laikrodžio rodyklę operacija pasisuka priešingai.
Dabar mes tiesiog turime tai įdiegti savo µController (aš naudojau „Arduino Nano“).
2 žingsnis: sukurkite grandinę
Kaip aprašiau anksčiau, išėjimai sukuria AUKŠTĄ ir ŽEMĄ šoną. Norėdami gauti švarų AUKŠTUMĄ prie „µController“duomenų kaiščio A ir B, turime pridėti traukimo rezistorius. Bendras kaištis C eina tiesiai į žemę, kad būtų žemas šonas.
Norėdami gauti informacijos apie vidinį jungiklį (mygtuką), naudosime kitus du kaiščius. Vienas iš jų eina į VCC, o kitas - į µController duomenų kaištį. Mes taip pat turime pridėti ištraukiamąjį rezistorių prie duomenų kaiščio, kad gautume švarų LOW.
Taip pat galima naudoti vidinius „µController“traukimo ir ištraukimo rezistorius!
Mano atveju spuogas atrodo taip:
- +3, 3V => +3, 3V („Arduino“) (taip pat galima +5V)
- GND => GND (Arduino)
- A => Pin10
-
B =>
Smeigtukas
11
- C => GND
-
SW =>
Smeigtukas
12
3 žingsnis: kodo rašymas
int pinA = 10; // vidinis jungiklis A int pinB = 11; // vidinis jungiklis B int pinSW = 12; // jungiklis (spaudžiamas kodavimo įrenginys) int encoderPosCount = 0; // prasideda nuo nulio, jei norite, pakeiskite
int positionval;
bool switchval; int mrotateLast; int mrotate;
void setup () {
int mrotateLast = digitalRead (pinA); Serial.begin (9600); vėlavimas (50); }
void loop () {readencoder (); if (readswitch () == 1) {Serial.println ("Switch = 1"); }}
int readencoder () {
mrotate = digitalRead (pinA); if (mrotate! = mrotateLast) {// rankenėlė sukasi, jei (digitalRead (pinB)! = mrotate) {// pirmiausia pakeistas jungiklis A -> besisukantis pagal laikrodžio rodyklę encoderPosCount ++; Serial.println („pasuktas pagal laikrodžio rodyklę“); } else {// pirmiausia pakeistas jungiklis B-> besisukantis prieš laikrodžio rodyklę encoderPosCount--; Serial.println („pasuktas prieš laikrodžio rodyklę“); }
Serial.print („Kodavimo įrenginio padėtis:“); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = mrotate; return encoderPosCount; } bool readswitch () {
if (digitalRead (pinSW)! = 0) {// jungiklis paspaustas
while (digitalRead (pinSW)! = 0) {} // jungiklis šiuo metu yra paspaustas switchval = 1; } else {switchval = 0;} // jungiklis yra nespaustas grįžimas switchval; }
Dabar galite pasukti koduotuvą, o kintamasis „encoderPosCount“bus skaičiuojamas, jei sukate pagal laikrodžio rodyklę, ir skaičiuokite atgal, jei sukate prieš laikrodžio rodyklę.
Viskas! Paprasta ir naudinga.
Nesivaržykite pakeisti ir atlikti kodą. Galite tai įgyvendinti savo projekte.
Aš taip pat įkelsiu LED projektą, kuriame naudoju kodavimo priemonę savo šviesos diodų ryškumui nustatyti.
Rekomenduojamas:
Žingsninio variklio valdomas lokomotyvo modelis - Žingsninis variklis kaip rotacinis kodavimo įrenginys: 11 žingsnių (su nuotraukomis)
Žingsninio variklio valdomas lokomotyvo modelis | Žingsninis variklis kaip rotacinis kodavimo įrenginys: Viename iš ankstesnių instrukcijų mes išmokome naudoti žingsninį variklį kaip rotacinį kodavimo įrenginį. Šiame projekte mes dabar naudosime tą žingsninį variklį, sukamą sukamąjį kodavimo įrenginį, norėdami valdyti lokomotyvą, naudodami „Arduino“mikrovaldiklį. Taigi, be fu
Kaip: bekontaktis rotacinis kodavimo įrenginys: 3 žingsniai
Kaip: bekontaktis rotacinis kodavimo įrenginys: šioje programos pastaboje aprašoma, kaip sukurti didelio patikimumo sukamąjį jungiklį arba kodavimo įrenginį naudojant „Dialog GreenPAK ™“. Ši jungiklio konstrukcija yra bekontaktė, todėl nepaiso kontaktų oksidacijos ir nusidėvėjimo. Idealiai tinka naudoti lauke, kur ilgas
Rotacinis kodavimo įrenginys: kaip jis veikia ir kaip jį naudoti su „Arduino“: 7 žingsniai
Rotacinis kodavimo įrenginys: kaip jis veikia ir kaip jį naudoti su „Arduino“: šią ir kitas nuostabias pamokas galite perskaityti oficialioje „ElectroPeak“svetainėje. Apžvalga Pirmiausia pamatysite tam tikrą informaciją apie sukamąjį kodavimo įrenginį, o tada sužinosite, kaip
Geresnis rotacinis kodavimo įrenginys: 4 žingsniai
Geresnis rotacinis kodavimo įrenginys: jei kada nors bandėte savo projektui panaudoti rotacinį kodavimo įrenginį, greičiausiai nuvylėte. Nesvarbu, ar tai buvo dėl sudėtingų nustatymų, ar dėl netikslios kontrolės. Turėjau tą pačią problemą, todėl nusprendžiau ją išspręsti. Aš sukūriau 3D pr
„Pasidaryk pats“rotacinis kodavimo įrenginys: 4 žingsniai
„Pasidaryk pats“rotacinis kodavimo įrenginys: Atsiprašau, kad trūksta nuotraukų, aš nenusprendžiau atlikti šios pamokos, kol beveik nepabaigsiu. Apžvalga: rotaciniai kodavimo įrenginiai naudoja du ar daugiau jutiklių, kad nustatytų padėtį, sukimosi kryptį, greitį ir apsisukimų skaičius