Orodha ya maudhui:

Jinsi ya Kusoma Mabadiliko mengi na Pini moja ya MCU: Hatua 4
Jinsi ya Kusoma Mabadiliko mengi na Pini moja ya MCU: Hatua 4

Video: Jinsi ya Kusoma Mabadiliko mengi na Pini moja ya MCU: Hatua 4

Video: Jinsi ya Kusoma Mabadiliko mengi na Pini moja ya MCU: Hatua 4
Video: UKIONA DALILI HIZI 9 WIKI 2 BAADA YA KUJAMIIANA KAPIME UKIMWI HARAKA HUENDA UMEAMBUKIZWA 2024, Novemba
Anonim
Jinsi ya kusoma swichi nyingi na pini moja ya MCU
Jinsi ya kusoma swichi nyingi na pini moja ya MCU

Je! Umewahi kujiburudisha na mradi na mradi unaendelea kukua na kuongezeka, wakati unapoongeza vitu zaidi kwake (tunauita Uumbaji wa Kuogopa)? Kwenye mradi wa hivi karibuni, nilikuwa naunda mita ya masafa na nikaongeza synthesizer ya jenereta / ishara ya kazi tano. Hivi karibuni nilijifunga na swichi nyingi kuliko vile nilikuwa na pini zilizopo, kwa hivyo ni mtu gani wa kufanya?

Walakini, hivi karibuni nilikuwa na swichi zingine saba kwenye Funbox yangu (ndio, ndivyo nilivyoita jenereta yangu ya kazi… najua, sina ubunifu) na hapa kuna muhtasari mfupi unaokuonyesha jinsi unaweza kufanya vivyo hivyo. Haihitaji rejista yoyote ya mabadiliko au IC maalum. Kwa kweli, haiitaji mdhibiti mdogo, ama, ikiwa semiconductors tofauti ndio jinsi unavyotembeza. Hapa kuna njia moja unayoweza kusoma / kudhibiti swichi nyingi kwa kutumia pini moja kwenye AVR yako (au mdhibiti mwingine mdogo… Nimesikia kuna wadhibiti wengine mbali na AVR, lakini siwezi kufikiria…).:)

Hatua ya 1: Muhimu (sio Kweli)

Ili kufanikisha hili, utahitaji vifaa vichache. Inasaidia kuwa na swichi nyingi ambazo unapaswa kusimamia. Utahitaji pia vipingaji na mdhibiti mdogo ambaye ana ADC (Analog-to-Digital Conversion) au njia nyingine ambayo ungependa kuonyesha kwamba kulikuwa na swichi iliyowezeshwa na ambayo ilikuwa kubadili.

Ikiwa ungetaka unaweza kutumia oscillator inayodhibitiwa na voltage kuonyesha hii, labda na taa zingine za blinken, au vinginevyo, na sauti. Katika hii ible, nitajifanya tunatumia AVR, lakini katika ulimwengu wako unaweza kujifanya chochote kinachokufurahisha. Ninamkosa Bob Ross.

Hatua ya 2: Mgawanyiko wa Voltage

Mgawanyiko wa Voltage
Mgawanyiko wa Voltage
Mgawanyiko wa Voltage
Mgawanyiko wa Voltage

Kwa kweli, njia ambayo tutafanya hii ni kwa kutumia mbinu na mzunguko unaoitwa mgawanyiko wa voltage. Wagawanyaji wa voltage hufanya, kama unavyodhani, hugawanya V,, ndani,, voltage na thamani fulani unayoamua. Unaweza kugawanya voltage na vifaa kadhaa, pamoja na capacitors na inductors, lakini hapa nitafanya na kipingaji nzuri cha ol. Wazo Tunachofanya ni kuweka vifaa viwili mfululizo ambavyo vitasababisha, kila mmoja mmoja, kushuka kwa voltage kwenye sehemu hiyo. Angalia picha ya kwanza ikiwa sina maana. Kuna tofauti inayowezekana ya 9V kutoka reli hadi reli. Kati ya 9V na 0V kuna vipinga viwili mfululizo. Kila moja ya hii itapata kushuka kwa voltage yenyewe, kulingana na upinzani, kwani labda unakumbuka kutoka V = IR. Ikiwa utachukua kipimo cha voltage kati ya vipinga viwili, utapata thamani kati ya 9V na 0V, kulingana na ni voltage ngapi imeshuka kwenye kontena la kwanza na ni kiasi gani kilichobaki kushuka juu ya kontena la 2, kabla ya 0V. Kuna fomula ya moja kwa moja ya kuhesabu kushuka kwa voltage kwenye kontena katika hali hii na inaonekana kama hii. Wacha voltage juu ya kontena 1 (R1) iwe V1 na voltage juu ya kontena mbili (R2) iwe V2. Kwa kuwa siwezi kutumia fomati tena, angalia picha 2 hapa chini kwa fomula… Kwa hivyo, katika mgawanyiko wetu wa kupinga, voltage ya Vout inaweza kuamua na fomula yetu ya V2 (kwani tutakuwa tukirejelea GND hadi 0V). Je! Hii ina uhusiano gani na kuwa na rundo la swichi zinazogunduliwa kutoka kwa pini moja? Kweli, fungua ukurasa na nitakuonyesha!

Hatua ya 3: Ngazi ya Kugawanya Voltage

Ngazi ya Kugawanya Voltage
Ngazi ya Kugawanya Voltage

Sasa tuseme tuna swichi zetu zote, labda sita au nane au kumi na sita, zote zimeunganishwa kupitia kontena ambazo kila moja hufanya kama mgawanyiko wa voltage kwamba wakati hali ya pini ya kubadili inabadilika, voltage inasomwa na kulingana na kiwango cha voltage, sisi unaweza kujua ni swichi ipi iliyoamilishwa tu. Angalia hapa chini. Katika picha hapa chini, nimeunganisha vizuizi viwili vya swichi. Kizuizi cha juu zaidi kina swichi mbili, na kizuizi cha chini kabisa kina swichi tano. Unaweza kuunganisha kubadili kwako tofauti, kwa muda mfupi, kugusa, nk kwa njia ile ile. Jambo muhimu kutambua ni kontena ambalo swichi yako imeunganishwa. Katika mfano wangu, nimekuwa karibu mara mbili ya upinzani wa kontena inayofuata ili kuunda pengo la voltage ambayo ni rahisi kupima na sio kosa kwa kubadili kabla au baada. Ikiwa haujagundua hapo awali, angalia tena, na utambue kwamba tumerudi kwa rafiki yetu wa zamani mgawanyiko wa voltage inayopinga. Kinzani ya kwanza, 10k ohm, imeunganishwa na 5V na kontena la 2 - kontena ambalo litaamua Vnje kwa pini ya SWITCH_ADC, imeunganishwa kwa kila swichi na kwa hivyo, kila swichi inahusishwa na voltage fulani ya Vout ambayo inaweza kusomwa kutoka kwa pini ya ADC iliyounganishwa kwenye SWITCH_ADC. Ifuatayo, amua Sauti inayotarajiwa kutoka kwa kila swichi kama hivyo

Piga = Vin * (R2 / (R1 + R2))

kwa kubadili moja:

Piga = 5V * (500 / (10000 + 500)) = 5 * 0.048 = 0.24V au 240 mV

kwa kubadili mbili:

Piga = 5V * (2200 / (10000 + 2200)) = 5 * 0.18 = 0.9V au ~ 900mV

na kadhalika.. Jisikie huru kuchukua nafasi ya maadili yako mwenyewe kwa R2 ikiwa una vipingaji vingine tu vinavyofaa … Jambo la msingi hapa ni kuweka pengo la kutosha la voltage kati ya swichi ili kwamba kiasi chochote cha makosa kwenye ADC kishinde ' t kukuweka kwenye voltage inayotarajiwa kutoka swichi ya jirani. Nimepata jambo rahisi kufanya ni kujenga ngazi ya mgawanyiko na kuweka multimeter / voltmeter kwenye pini ya ADC na bonyeza kila pini na uone ni maadili gani unayopata. Wanapaswa kuwa mzuri kwa kile unachohesabu. Mara tu unapokuwa na maadili yote ya voltage yanayotarajiwa kutoka kwa kila swichi ukitumia kontena fulani, basi unaweza kuwa na MCU yako isome pini ya ADC na ulinganishe hiyo na maadili yako yanayojulikana ili kubaini ni ubadilishaji gani uliobanwa. Kwa mfano, sema umesajili utaratibu wa usumbufu wa huduma ambao utaitwa wakati wowote kuna mabadiliko yaliyogunduliwa kwenye pini ya ADC. Ndani ya ISR hiyo, unaweza kusoma ADC na kulinganisha thamani hiyo dhidi ya meza yako ya kubadili. Ikiwa unatumia 8-bit ADC thamani, voltage yako itabadilishwa kuwa nambari kati ya 0 na 255 ambayo inalingana na voltage kati ya 0V na 5V. Hii inadhani kuwa ADC yako imesanidiwa hivi.

Hatua ya 4: Muhtasari

Kwa hivyo, sasa unapaswa kujua jinsi ya kutumia pesa kutumia pini za GPIO kwa swichi. Wakati wowote unapokuwa chini ya pini za GPIO, au hauna chochote cha kuanzia, au ikiwa utagundua kuwa utatumia benki ya swichi, mgawanyiko wa kupinga ndio njia ya kwenda kuokoa pini zako za GPIO wakati bado unatoa utaratibu thabiti wa kugundua ufikiaji wa swichi.

Ilipendekeza: