Kazalo:
- 1. korak: Osnove (res ne)
- 2. korak: razdelilnik napetosti
- 3. korak: Lestve za deljenje napetosti
- 4. korak: Povzetek
Video: Kako prebrati veliko stikal z enim zatičem MCU: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:09
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
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
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:
Kako prebrati več analognih vrednosti z enim analognim zatičem: 6 korakov (s slikami)
Kako prebrati več analognih vrednosti z enim analognim zatičem: V tej vadnici vam bom pokazal, kako prebrati več analognih vrednosti z uporabo samo enega vhoda za analogni vhod
DIY komplet stikal za daljinski upravljalnik 2262/2272 M4 plošča za kruh in rele za izdelovalca: 4 koraki (s slikami)
DIY komplet stikal za daljinski upravljalnik 2262/2272 M4 plošča za kruh in rele za izdelovalca: pametni dom prihaja v naše življenje. če želimo, da se pametni dom uresniči, potrebujemo veliko stikal na daljinsko upravljanje. danes bomo naredili preizkus, naredimo enostaven krog, da se naučimo teorije stikala za daljinsko upravljanje. to zasnovo kompleta SINONING ROBOT
Kako prebrati senzor diferenčnega tlaka MPX5010 z Arduinom: 5 korakov
Kako brati senzor diferenčnega tlaka MPX5010 z Arduinom: Način, kako sem napisal kodo, je tak, da ga je mogoče enostavno spremeniti, da ustreza drugemu senzorju tlaka. Samo spremenite naslednje spremenljivke const v kodi na podlagi vrednosti iz podatkovnega lista za kateri koli senzor tlaka: " sensorOffset "
0,96 -palčni I2C OLED s SMD zatičem: 3 koraki
0,96-palčni I2C OLED s SMD zatičem: Material: 1 x OPEN-SMART UNO R3 plošča 1 x 0,96-palčni I2C OLED s SMD zatičem 1 x IO razširitveni ščit 1 x preskusna napeljava 4 x Dopont kabel Pregled: Lep I2C OLED zaslon modul s SMD in PAD zatiči za DIY. Lahko ga spajkate na poskusno tiskano vezje ali
Tipkovnica z enim zatičem 4 × 4: 10 korakov
Tipkovnica One Pin 4 × 4: Vsakič, ko vidim tipkovnico, je priloženih veliko zatičev, to je velika izguba vaših zatičev Arduino, zato lahko zaženemo tipkovnico z enim in samo enim zatičem? Odgovor je tukaj