Sisukord:
Video: Lihtne pöörddekooder: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
See juhend kirjeldab lihtsat meetodit järjestikuse pöörleva kodeerija dekodeerimiseks, kasutades Arduino Uno R3.
Kompaktseid tarkvaraprogramme kasutatakse üleminekute arvu loendamiseks, kontakti põrkumise kõrvaldamiseks ja pöörlemissuuna määramiseks. Lisakomponente ja otsingulaudu pole vaja.
Pakutakse koodi katkematut ja katkematut versiooni.
Koodi katkestusversioon nõuab ainult ühte katkestusnõela.
Pildid:
- Avafotol on kokku pandud kodeerija.
- Ekraanipilt näitab katkestusversiooni koodi ja arvu, kui kodeerimisvõlli pööratakse päripäeva ja vastupäeva.
- Video näitab loendamist kiire pöörlemise ajal.
Samm: vooluahela skeem
Koodri ühendusskeem on näidatud joonisel 1.
Džemprijuhtmed on joodetud otse kodeerija tihvtide külge.
Vahetage kaks sinist juhet, kui loendussuund on vastupidine.
Samm: osade loend
Järgmised osad saadi saidilt
- 1 ainult Arduino UNO R3 koos USB -kaabliga.
- 1 ainult järjestikune pöörlev kooder (EC11 või samaväärne) koos lülitiga.
- 1 ainult võllile sobiv nupp.
- 3 ainult Arduino mees-mees džemprijuhet.
3. samm: teooria
Järjestikused pöörlevad kodeerijad genereerivad kaks ruutlainet, millest igaüks on nihutatud 90 kraadi, nagu on näidatud joonisel 1.
Loogika mustrid kontaktis A ja kontaktis B on erinevad, kui võlli pööratakse päripäeva (CW) ja vastupäeva (CCW) läbi positsioonide 1 kuni 6.
Tavalised pöörlemissuuna määramise meetodid on järgmised:
- riistvara
- katkestab kaksik
- mustri otsingulauad
See projekt kasutab tarkvaralist meetodit, mis ei nõua otsingutabeleid. [1]
Suund
Selle asemel, et vaadata kontakti A ja kontakti B väljundmustreid, keskendume kontaktile A.
Kui proovime kontakti B pärast iga A -kontakti üleminekut, märgime, et:
- Kontaktil A ja kontaktil B on vastupidised loogikaseisundid, kui kodeerijat pööratakse CW
- Kontaktil A ja kontaktil B on sama loogiline olek, kui kodeerijat pööratakse CCW
Tegelik kood:
// ----- Üleminekute loendamine
CurrentStateA = stateContactA (); if (CurrentStateA! = LastStateA) {CurrentStateB = digitalRead (ContactB); if (CurrentStateA == CurrentStateB) Count ++; if (CurrentStateA! = CurrentStateB) Count--; LastStateA = Praegune riik; }
See meetod pakub järgmisi eeliseid:
- otsingulauad pole vajalikud
- vaja on ainult ühte katkestusliini
Debounce
Kõik mehaanilised kodeerijad kannatavad „kontakti põrkumise” all.
Kui lülitikontakt ei teki/puruneb puhtalt, võngub selle loogiline olek kiiresti kõrgelt madalale, kuni lüliti kontakt rahuneb. Selle tulemuseks on valearvestus.
Üks meetod kontakti põrgatamise pärssimiseks on väikese lüliti lisamine igale lüliti kontaktile. Kondensaator ja sellega seotud tõmbetakistus moodustavad integraatori, mis lühistab tõhusalt kõrgeid sagedusi ja võimaldab lüliti pingel graatsiliselt tõusta/langeda.
Selle lähenemise negatiivne külg on see, et anduri võlli kiire pööramise korral võivad üleminekud vahele jääda.
Tarkvara väljalülitamine
See meetod kasutab kahte loendurit (avatud, suletud), mis on seatud nulli. [2]
Kui kontaktis A on tuvastatud üleminek:
- Pidev küsitlus Võtke ühendust A.
- Suurendage avatud loendurit ja lähtestage suletud loendur, kui kontakt A on HIGH.
- Suurendage suletud loendurit ja lähtestage avatud loendur, kui kontakt A on madal.
- Väljuge tsüklist, kui üks loenduritest jõuab etteantud arvuni. Otsime tõhusalt püsikontsentratsiooni perioodi pärast iga kontakti põrkumist.
Tegelik kood:
// ----- Debounce Contact A
samas (1) {if (digitalRead (ContactA)) {// ----- ContactA is Open Closed = 0; // Tühi vastupidine integraator Open ++; // Integreeri, kui (avatud> MaxCount) tagastab HIGH; } else {// ----- ContactA is Closed Open = 0; // Tühi vastupidine integraator Suletud ++; // Integreeri, kui (suletud> MaxCount) tagastab LOW; }}
Kontakti B ei ole vaja tühistada, kuna kontakti A ja kontakti B üleminekud ei lange kokku.
Loendamine
Mehaaniline "kinnipidamine" kahekordistab teie arvu tõhusalt, kuna klõpsude vahel registreeritakse kaks loendust (vt joonis 1).
„Kinnipidamiste” arvu võib määrata modulo 2 aritmeetika abil, nagu allpool näidatud.
Tegelik kood:
// ----- loendage "kinnipidamised"
if (Count % 2 == 0) {Serial.print ("Count:"); Serial.println (Count / 2); }
Viited
Lisateavet leiate aadressilt:
[1]
howtomechatronics.com/tutorials/arduino/ro…
[2]
newbiehack.com/ButtonorSwitchDebounceinSof…
4. samm: tarkvara
Selle projekti jaoks on vaja Ardino Uno R3 IDE (integreeritud arenduskeskkond) viimast versiooni, mis on saadaval aadressil
Laadige alla kõik järgmised kaks Arduino visandit (lisatud)
- rotary_encoder_1.ino (küsitlusversioon)
- rotary_encoder_2.no (katkestusversioon)
Topeltklõpsake soovitud versiooni ja järgige ekraanil kuvatavaid juhiseid.
Nautige…
Muude juhendite vaatamiseks klõpsake siin.
Soovitan:
Mobiiliga juhitav Bluetooth -auto -- Lihtne -- Lihtne -- Hc-05 -- Mootorikilp: 10 sammu (koos piltidega)
Mobiiliga juhitav Bluetooth -auto || Lihtne || Lihtne || Hc-05 || Motor Shield: … Palun TELLI minu YouTube'i kanalile ………. See on Bluetooth-juhitav auto, mis kasutas mobiiliga suhtlemiseks Bluetooth-moodulit HC-05. Saame autot juhtida mobiiltelefoniga Bluetoothi kaudu. Auto liikumise juhtimiseks on olemas rakendus
COVID-19 armatuurlaud (lihtne ja lihtne): 4 sammu
COVID-19 juhtpaneel (lihtne ja lihtne): kõikjal on uudse COVID-19 viiruse puhang. Vajalik oli jälgida praegust COVID-19 stsenaariumi riigis. Niisiis, kodus olles oli see projekt, millele ma mõtlesin: " Informatsiooni armatuurlaud " - A
Lihtne ja lihtne ämblikmehe veebipilduja: 12 sammu
Lihtne ja lihtne ämblikmehe veebipilduja: kas olete näinud ämblikmehe filmi? Ämblikmehe koomiksiraamat? Midagi ähmaste inimestega seotud? Ämblikmees on näiliselt kõikjal. Miks mitte teha lihtne veebipilduja? Pärast väikest harjutamist lõin maja materjalidest kujunduse, mida saaks luua
Lihtne lihtne kodutöömasin: 4 sammu (piltidega)
Lihtne lihtne kodutöömasin: see masin on ehitatud odavatest materjalidest ja selle ehitamine ei ületa 7 dollarit. Selle ehitamiseks vajate kannatlikkust ja 2 tundi aega. Ja te peate olema tuttav jootmise ja juhtmestikuga, kuna see hõlmab väikest vooluringi. Kui see on ehitatud, ühendage see lihtsalt
DIY MusiLED, muusika sünkroonitud LED-id ühe klõpsuga Windowsi ja Linuxi rakendusega (32-bitine ja 64-bitine). Lihtne taastada, lihtne kasutada, lihtne teisaldada: 3 sammu
DIY MusiLED, muusika sünkroonitud LED-id ühe klõpsuga Windowsi ja Linuxi rakendusega (32-bitine ja 64-bitine). Lihtne taastada, lihtne kasutada, lihtne teisaldada .: See projekt aitab teil ühendada 18 LED-i (6 punast + 6 sinist + 6 kollast) oma Arduino plaadiga ja analüüsida arvuti helikaardi reaalajasignaale ning edastada need valgusdioodid, mis neid löögiefektide järgi süttivad (Snare, High Hat, Kick)