Kazalo:

Kako prebrati veliko stikal z enim zatičem MCU: 4 koraki
Kako prebrati veliko stikal z enim zatičem MCU: 4 koraki

Video: Kako prebrati veliko stikal z enim zatičem MCU: 4 koraki

Video: Kako prebrati veliko stikal z enim zatičem MCU: 4 koraki
Video: Использование кнопки скорости шагового двигателя 28BYJ-48 с 8 проектами: Ultimate Video Tutorial, урок 107 2024, November
Anonim
Kako prebrati veliko stikal z enim zatičem MCU
Kako prebrati veliko stikal z enim zatičem MCU

Ali ste se kdaj odrezali pri projektu (-ih) in projekt nenehno raste in raste, hkrati pa mu dodajate več stvari (temu pravimo Feaping Creaturism)? Na nedavnem projektu sem gradil merilnik frekvence in dodal pet funkcijski generator signalov/frekvenčni sintetizator. Kmalu sem dobil več stikal, kot so mi bile na voljo že nožice, kaj torej fant storiti?

Vendar sem imel kmalu na svojem Funboxu še sedem stikal (ja, tako sem klical svoj generator funkcij … vem, nimam ustvarjalnosti) in tukaj je kratek pouk, ki vam pokaže, kako lahko storite enako. Ne zahteva registrov premikov ali posebnih IC -jev. Pravzaprav tudi ne potrebuje mikrokrmilnika, če se premikate z ločenimi polprevodniki. Tu je en način, kako lahko preberete/upravljate več stikal z enim pinom na vašem AVR -ju (ali drugem mikrokrmilniku … Slišal sem, da poleg AVR -jev obstajajo tudi drugi mikrokrmilniki, vendar si ne predstavljam …).:)

1. korak: Osnove (res ne)

Če želite to narediti, potrebujete nekaj komponent. Pomaga, če imate veliko stikal, ki jih morate upravljati. Potrebovali boste tudi nekaj uporov in bodisi mikrokrmilnik, ki ima ADC (analogno-digitalno pretvorbo), ali kako drugače želite navesti, da je bilo stikalo aktivirano in katero stikalo je bilo.

Če želite, lahko uporabite napetostno krmiljeni oscilator, da to označite, morda z utripajočimi lučmi ali pa z zvokom. V tem delu se bom pretvarjal, da uporabljamo AVR, toda v vašem svetu se lahko pretvarjate, kar vas veseli. Pogrešam Boba Rossa.

2. korak: razdelilnik napetosti

Delilnik napetosti
Delilnik napetosti
Delilnik napetosti
Delilnik napetosti

V bistvu bomo to storili s tehniko in vezjem, imenovanim delilnik napetosti. Kot ste morda uganili, delilniki napetosti delijo napetost V,,,,, na neko vrednost, ki jo določite. Napetost lahko razdelite na več komponent, vključno s kondenzatorji in induktorji, vendar bom to storil z dobrim uporom. Ideja To, kar počnemo, je, da dve komponenti zaporedoma povzročimo, da bo vsaka posebej povzročila padec napetosti na komponenti. Poglej prvo sliko, če nimam smisla. Obstaja potencialna razlika 9V od železnice do železnice. Med 9V in 0V sta zaporedno dva upora. Vsaka od teh bo doživela padec napetosti, odvisno od upora, kot se verjetno spomnite iz V = IR. Če merite napetost med obema uporoma, boste dobili vrednost med 9V in 0V, odvisno od tega, koliko napetosti je padlo na prvi upor in koliko je ostalo, da pade na drugi upor, pred 0V. V tej situaciji obstaja enostavna formula za izračun padca napetosti na uporu in izgleda tako. Naj bo napetost nad uporom 1 (R1) V1, napetost nad uporom dva (R2) pa V2. Ker ne morem več uporabljati oblikovanja, si oglejte formulo 2 spodaj za formulo … Torej, v našem uporovnem delilniku lahko napetost Vout določimo po naši formuli za V2 (saj se bomo GND nanašali na 0V). Kaj ima to opraviti z zaznavanjem kopice stikal z enega zatiča? No, obrni stran in pokazal ti bom!

3. korak: Lestve za deljenje napetosti

Lestve za deljenje napetosti
Lestve za deljenje napetosti

Recimo, da imamo vsa stikala, morda šest ali osem ali šestnajst, vsa povezana z upori, od katerih vsak deluje kot delilnik napetosti, tako da se pri spreminjanju stanja stikalnega zatiča napetost odčita in na podlagi napetostne ravni lahko ve, katero stikalo je bilo pravkar aktivirano. Poglej spodaj. Na spodnji sliki sem povezal dva bloka stikal. Zgornji blok ima dve stikali, zadnji spodnji blok pa pet stikal. Na enak način lahko povežete ločena preklopna, trenutna, taktilna itd. Pomembno je omeniti upor, na katerega je priključeno stikalo. V mojem primeru sem skoraj podvojil upor naslednjega upora, da bi ustvaril napetostno vrzel, ki jo je enostavno izmeriti in ne zamenjati za stikalo pred ali po njem. Če še niste opazili, poglejte še enkrat in se zavedajte, da smo spet pri našem starem prijatelju, uporovnem delilniku napetosti. Prvi upor, 10k ohm, je priključen na 5V, drugi upor - upor, ki bo določil Vven za pin SWITCH_ADC, je priključen na vsako stikalo, zato je vsako stikalo povezano z določeno napetostjo Vout, ki jo je mogoče prebrati z zatiča ADC, priključenega na SWITCH_ADC. Nato iz vsakega stikala tako določite pričakovani Vout

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

za stikalo ena:

Vout = 5V * (500 / (10000 + 500)) = 5 * 0,048 = 0,24V ali 240 mV

za stikalo dva:

Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0,18 = 0,9V ali ~ 900mV

in tako naprej. Če imate pri roki le določene upore, vas prosimo, da svoje vrednosti zamenjate z lastnimi vrednostmi R2 … Ključna stvar pri tem je ohraniti dovolj veliko napetostno vrzel v napetosti med stikali, tako da bo na napaki na ADC zmagal ' t vas napoti na napetost, ki jo pričakuje sosednje stikalo. Ugotovil sem, da je najlažje narediti lestve za deljenje in na zatič ADC postaviti multimeter/voltmeter in pritisniti vsak zatič ter preveriti, katere vrednosti dobite. Morali bi biti precej natančni pri izračunu. Ko imate z vsakim stikalom vse pričakovane vrednosti napetosti z določenim uporom, lahko MCU prebere pin ADC in ga primerja z znanimi vrednostmi, da ugotovi, katero stikalo je bilo pritisnjeno. Na primer, recimo, da ste registrirali rutino prekinitvene storitve, ki se bo klicala, kadarkoli je na zatiču ADC zaznana sprememba. Znotraj tega ISR -ja bi lahko prebrali ADC in to vrednost primerjali s svojo tabelo stikal. Če uporabljate 8-bitno vrednost ADC, se bo vaša napetost pretvorila v število med 0 in 255, ki ustreza napetosti med 0V in 5V. To predpostavlja, da je vaš ADC konfiguriran na ta način.

4. korak: Povzetek

Torej, zdaj bi morali vedeti, kako biti varčen pri uporabi zatičev GPIO za stikala. Kadar koli vam primanjkuje zatičev GPIO ali jih komaj imate za začetek, ali če se zavedate, da boste uporabljali nabor stikal, je uporovni delilnik način, da shranite zatiče GPIO, medtem ko še vedno zagotavljate robusten mehanizem za zaznavanje stikalnega dostopa.

Priporočena: