
Orodha ya maudhui:
2025 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2025-01-23 15:11

Encoders za Rotary ni vifungo vya kudhibiti vinavyogeuzwa kwa miradi ya elektroniki, ambayo hutumiwa mara kwa mara na watawala wadogowadogo wa familia ya Arduino. Wanaweza kutumiwa kurekebisha vigezo, tembea menyu, songa vitu kwenye skrini, weka maadili ya aina yoyote. Ni ubadilishaji wa kawaida wa potentiometers, kwa sababu zinaweza kuzungushwa kwa usahihi na bila kikomo, zinaongeza au kupunguza thamani moja kwa wakati mmoja, na mara nyingi hujumuishwa na swichi inayoweza kusukumwa kwa kazi za aina ya uteuzi. Zinakuja katika maumbo na saizi zote, lakini bei ya chini kabisa ni ngumu ku-unganisha nayo kama ilivyoelezwa hapo chini.
Kuna nakala nyingi juu ya maelezo ya kazi na njia za matumizi ya encoders za Rotary, na nambari kadhaa za sampuli na maktaba juu ya jinsi ya kuzitumia. Shida pekee ni kwamba hakuna hata mmoja wao anafanya kazi 100% sahihi na bei ya chini kabisa ya moduli za rotary za Wachina.
Hatua ya 1: Encoders za Rotary Ndani



Sehemu ya kuzunguka ya kisimbuzi ina pini tatu (na mbili zaidi kwa sehemu ya ubadilishaji wa hiari). Moja ni ardhi ya kawaida (nyeusi GND), zingine mbili ni za kuamua mwelekeo wakati kitovu kimegeuzwa (mara nyingi huitwa bluu CLK na nyekundu DT). Zote hizi zimeambatanishwa na pini ya kuingiza ya PULLUP ya microcontroller, na kufanya kiwango cha HIGH kisomee chaguomsingi. Wakati kitovu kimegeuzwa mbele (au saa moja kwa moja), kwanza CLK ya hudhurungi huanguka kwa kiwango cha chini, halafu DT nyekundu ifuatavyo. Kugeukia zaidi, CLK ya hudhurungi huinuka kurudi juu, halafu kama kiraka cha kawaida cha GND kinaacha pini zote mbili za unganisho, DT nyekundu pia huinuka kurudi juu. Kwa hivyo kukamilisha kupe kamili kamili ya FWD (au saa moja kwa moja). Same inakwenda mwelekeo mwingine BWD (au kinyume na saa), lakini sasa nyekundu huanguka kwanza, na bluu huinuka nyuma kama inavyoonyeshwa kwenye picha za ngazi mbili mtawaliwa.
Hatua ya 2: Mateso ambayo husababisha maumivu ya kweli kwa wengi



Shida ya kawaida kwa wanaovutia wa Arduino, moduli hizo za bei rahisi za usimbuaji Rotary zinabadilisha mabadiliko ya ziada katika viwango vya pato, na kusababisha usomaji wa hesabu za mwelekeo wa ziada na usiofaa. Hii inazuia kuhesabu bila makosa na inafanya kuwa ngumu kuingiza moduli hizi katika miradi sahihi ya rotary. Vipuli hivi vya ziada husababishwa na harakati za kiufundi za viraka juu ya pini za unganisho, na hata kutumia vitendaji vya ziada haziwezi kuziondoa kabisa. Bounces zinaweza kuonekana popote katika mizunguko kamili ya kupe, na zinaonyeshwa na hali halisi za maisha kwenye picha.
Hatua ya 3: Suluhisho la Mashine ya Jimbo (FSM)

Picha inaonyesha nafasi kamili ya hali ya mabadiliko ya kiwango kinachowezekana kwa pini mbili (bluu CLK na nyekundu DT), zote kwa bounces sahihi na za uwongo. Kulingana na mashine hii ya serikali suluhisho kamili inaweza kusanidiwa ambayo inafanya kazi kwa usahihi kila wakati kwa 100%. Kwa sababu hakuna ucheleweshaji wa uchujaji unaohitajika katika suluhisho hili, pia ni haraka iwezekanavyo. Faida nyingine ya kutenganisha nafasi ya hali ya pini kutoka kwa njia ya kufanya kazi ni kwamba mtu anaweza kutumia njia zote za kupigia kura au kukatiza kwa kupenda kwake mwenyewe. Kupiga kura au kukatiza kunaweza kugundua mabadiliko ya kiwango kwenye pini na utaratibu tofauti utahesabu hali mpya kulingana na hali ya sasa na hafla halisi za mabadiliko ya kiwango.
Hatua ya 4: Msimbo wa Arduino

Nambari hapa chini inahesabu kupe za FWD na BWD kwenye mfuatiliaji wa serial na pia inaunganisha kazi ya kubadili hiari.
// Peter Csurgay 2019-04-10
// Pini za rotary iliyopangwa kwa bandari za Arduino
#fafanua SW 21 #fafanua CLK 22 #fafanua DT 23
// Thamani ya sasa na ya zamani ya kaunta iliyoangaziwa na rotary
int curVal = 0; int prevVal = 0;
// Majimbo saba ya FSM (mashine ya serikali yenye mipaka)
#fafanua IDLE_11 0 #fafanua SCLK_01 1 #fafanua SCLK_00 2 #fafanua SCLK_10 3 #fafanua SDT_10 4 #fafanua SDT_00 5 #fafanua SDT_01 6 int state = IDLE_11;
usanidi batili () {
Serial. Kuanza (250000); Serial.println ("Anza…"); // Kiwango cha juu kitakuwa chaguomsingi kwa pini zote za PinMode (SW, INPUT_PULLUP); pinMode (CLK, INPUT_PULLUP); pinMode (DT, INPUT_PULLUP); // Wote CLK na DT watasababisha usumbufu kwa mabadiliko yote ya kiwango ambatanishaInterrupt (digitalPinToInterrupt (CLK), rotaryCLK, CHANGE); ambatishaKukatisha (digitalPinToInterrupt (DT), rotaryDT, MABADILIKO); }
kitanzi batili () {
// Kushughulikia swichi ya hiari iliyojumuishwa kwenye encoders kadhaa za rotary ikiwa (digitalRead (SW) == LOW) {Serial.println ("Pressed"); wakati (! digitalRead (SW)); } // Mabadiliko yoyote ya thamani ya kukanusha yanaonyeshwa kwenye Serial Monitor ikiwa (curVal! = PrevVal) {Serial.println (curVal); prevVal = curVal; }}
// Mabadiliko ya Mashine ya Serikali kwa mabadiliko ya kiwango cha CLK
rotary batiliCLK () {if (digitalRead (CLK) == LOW) {if (state == IDLE_11) state = SCLK_01; vinginevyo ikiwa (hali == SCLK_10) hali = SCLK_00; vinginevyo ikiwa (state == SDT_10) state = SDT_00; } mwingine {if (state == SCLK_01) state = IDLE_11; vinginevyo ikiwa (hali == SCLK_00) hali = SCLK_10; vinginevyo ikiwa (state == SDT_00) state = SDT_10; vinginevyo ikiwa (hali == SDT_01) {state = IDLE_11; curVal -; }}}
// Mabadiliko ya Mashine ya Serikali kwa mabadiliko ya kiwango cha DT
batili rotaryDT () {if (digitalRead (DT) == LOW) {if (state == IDLE_11) state = SDT_10; vinginevyo ikiwa (state == SDT_01) state = SDT_00; kingine ikiwa (state == SCLK_01) state = SCLK_00; } kingine {if (state == SDT_10) state = IDLE_11; vinginevyo ikiwa (state == SDT_00) state = SDT_01; kingine ikiwa (state == SCLK_00) state = SCLK_01; vinginevyo ikiwa (hali == SCLK_10) {state = IDLE_11; curVal ++; }}}
Hatua ya 5: Jumuishi isiyo na kasoro

Unaweza kuangalia kwenye video iliyoambatishwa kuwa suluhisho la FSM hufanya kazi kwa usahihi na haraka hata ikiwa kuna encoders za rotary za anuwai na athari kadhaa za kupunguka mara kwa mara.
Ilipendekeza:
Unganisha na urejeshe suluhisho zako zilizounganishwa na Hologram Nova na Ubidots: Hatua 9

Unganisha na urejeshe suluhisho zako zilizounganishwa na Hologram Nova na Ubidots: Tumia Hologram Nova yako kurudisha miundombinu. Sanidi Hologram Nova ukitumia Raspberry Pi kutuma data (ya joto) kwa Ubidots.Katika mwongozo ufuatao, Ubidots itaonyesha jinsi ya kusanidi Hologram Nova kwa kutumia Raspberry Pi na kuonyesha te
Suluhisho la Uchafuzi wa Nuru - Artemi: Hatua 14

Suluhisho la Uchafuzi wa Nuru - Artemi: Uchafuzi wa nuru ni kitu kinachoathiri sisi wote ulimwenguni. Tangu taa ya taa iligunduliwa, taa imekuwa maarufu zaidi na imekuwa ikitumika katika miji mikubwa kama New York City na Chicago. Nuru hii yote inaweza kuelezea
Mradi wa Arduino: Moduli ya Mtihani wa LoRa RF1276 ya Suluhisho la Kufuatilia GPS: Hatua 9 (na Picha)

Mradi wa Arduino: Moduli ya Mtihani wa LoRa Moduli RF1276 ya Ufumbuzi wa Kufuatilia GPS: Uunganisho: USB - SerialNeed: Chrome Browser Haja: 1 X Arduino Mega Haja: 1 X GPS Haja: 1 X SD Haja: 2 X LoRa Modem RF1276 Kazi: Arduino Tuma Thamani ya GPS kwa msingi kuu - Data kuu ya duka kuu katika Moduli ya Serverino ya Dataino: Masafa marefu
Suluhisho la Maono la bei rahisi na Arm Robot Kulingana na Arduino: Hatua 19 (na Picha)

Suluhisho la Maono la bei rahisi Pamoja na Silaha ya Roboti Kulingana na Arduino: Tunapozungumza juu ya maono ya mashine, siku zote hujisikia kuwa haiwezekani kwetu. Wakati tulifanya onyesho la maono lililofunguliwa wazi ambalo litakuwa rahisi sana kufanya kwa kila mtu. Katika video hii, na kamera ya OpenMV, haijalishi mchemraba mwekundu uko wapi, roboti ar
Simulizi-B Sonic Kamili Kamili Mswaki Kurekebisha Batri: Hatua 8

Oral-B Sonic Kamili Mswaki Urekebishaji wa Batri: Mradi huu unakuonyesha jinsi ya kubadilisha betri kwenye Oral-B Sonic Kamili mswaki. Huu ni mswaki mzuri wa umeme, lakini Oral-B inakuambia uitupe wakati betri za ndani za Ni-CD zinazoweza kuchajiwa zinakufa. Kando na upotevu wa tha