Sadržaj:

Kako čitati mnoge sklopke s jednim MCU pinom: 4 koraka
Kako čitati mnoge sklopke s jednim MCU pinom: 4 koraka

Video: Kako čitati mnoge sklopke s jednim MCU pinom: 4 koraka

Video: Kako čitati mnoge sklopke s jednim MCU pinom: 4 koraka
Video: ESP32 Tutorial 12 - WS2812 RGB Srip 4 Project with SunFounder's ESP32 IoT Learnig kit 2024, Studeni
Anonim
Kako čitati mnoge prekidače s jednim MCU pinom
Kako čitati mnoge prekidače s jednim MCU pinom

Jeste li ikada odmakli od projekata (a), a projekt nastavlja rasti i rasti, dok mu dodajete još stvari (mi to zovemo Feaping Creaturism)? Na nedavnom projektu izgradio sam mjerač frekvencije i dodao generator funkcija sa pet funkcija/sintetizator frekvencije. Ubrzo sam završio s više prekidača nego što mi je ostalo na raspolaganju, pa što momku učiniti?

Međutim, uskoro sam imao još sedam prekidača na svom Funboxu (da, tako sam nazvao svoj generator funkcija … znam, nemam kreativnosti) i evo kratkog uputstva koje vam pokazuje kako možete učiniti isto. Ne zahtijeva nikakve registre pomaka ili posebne IC -ove. Zapravo, ne zahtijeva ni mikrokontroler, ako se kotrljaju diskretni poluvodiči. Evo jednog načina na koji možete čitati/upravljati s više prekidača koristeći jedan pin na vašem AVR -u (ili drugom mikrokontroleru … Čuo sam da postoje i drugi mikrokontroleri osim AVR -a, ali ne mogu zamisliti …).:)

Korak 1: Osnovne stvari (ne baš)

Da biste to postigli, trebat će vam nekoliko komponenti. Pomaže imati mnoštvo prekidača kojima morate upravljati. Također će vam trebati neki otpornici i mikrokontroler s ADC-om (analogno-digitalna konverzija) ili na neki drugi način na koji želite naznačiti da je prekidač aktiviran i koji je to prekidač.

Ako želite, mogli biste upotrijebiti oscilator s naponskim upravljanjem da to naznačite, možda s nekim trepćućim svjetlima, ili alternativno, sa zvukom. U ovom ću se razdoblju pretvarati da koristimo AVR, ali u vašem svijetu možete se pretvarati što god vas čini sretnima. Nedostaje mi Bob Ross.

Korak 2: Razdjelnik napona

Razdjelnik napona
Razdjelnik napona
Razdjelnik napona
Razdjelnik napona

U osnovi, način na koji ćemo to učiniti je pomoću tehnike i sklopa koji se nazivaju djelitelj napona. Razdjelnici napona, kao što ste možda pretpostavili, dijele napon V,,,,, na neku vrijednost koju sami odredite. Napon možete podijeliti s nekoliko komponenti, uključujući kondenzatore i prigušnice, ali to ću učiniti s dobrim otpornikom. Ideja Ono što radimo je stavljanje dvije komponente u seriju koje će uzrokovati, svaka pojedinačno, pad napona na komponenti. Pogledaj prvu sliku ako nemam smisla. Postoji potencijalna razlika od 9 V od željeznice do šine. Između 9V i 0V postoje dva otpornika u nizu. Svaki od njih će osjetiti pad napona na sebi, ovisno o otporu, kao što se vjerojatno sjećate iz V = IR. Ako napravite mjerenje napona između dva otpornika, dobit ćete neku vrijednost između 9V i 0V, ovisno o tome koliko je napona palo na prvi otpornik i koliko je preostalo da padne preko drugog otpornika, prije 0V. U ovoj situaciji postoji jednostavna formula za izračunavanje pada napona na otporniku i izgleda ovako. Neka napon na otporniku 1 (R1) bude V1, a napon na otporniku dva (R2) V2. Budući da više ne mogu koristiti oblikovanje, pogledajte formulu 2 ispod za formulu … Dakle, u našem otporničkom razdjelniku, Vout napon se može odrediti našom formulom za V2 (budući da ćemo GND označavati na 0V). Kakve to veze ima s otkrivanjem hrpe prekidača s jednog pina? Pa okreni stranicu pa ću ti pokazati!

Korak 3: Ljestvice razdjelnika napona

Ljestvice razdjelnika napona
Ljestvice razdjelnika napona

Pretpostavimo da sada imamo sve naše sklopke, možda šest ili osam ili šesnaest, sve spojene preko otpornika koji svaki djeluje kao razdjelnik napona tako da se, kad se promijeni stanje pina sklopke, očita napon i temelji se na razini napona, može znati koji je prekidač upravo aktiviran. Pogledajte ispod. Na donjoj slici spojio sam dva bloka prekidača. Gornji blok ima dva prekidača, a donji blok ima pet prekidača. Na isti način možete spojiti svoje zasebne prekidače, trenutne, taktilne itd. Važno je primijetiti otpornik na koji je spojen vaš prekidač. U mom primjeru skoro sam udvostručio otpor sljedećeg otpornika kako bih stvorio naponski jaz koji je lako izmjeriti i ne zamijeniti prekidač prije ili poslije. Ako prije niste primijetili, pogledajte ponovno i shvatite da smo se vratili našem starom prijatelju, otporničkom djelitelju napona. Prvi otpornik, 10 k ohma, spojen je na 5 V, a drugi otpornik - otpornik koji će odrediti Vvan za pin SWITCH_ADC, spojen je na svaki prekidač i stoga je svaki prekidač povezan s određenim Vout naponom koji se može očitati s ADC pina spojenog na SWITCH_ADC. Zatim odredite očekivani Vout iz svakog prekidača tako

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

za prekidač jedan:

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

za prekidač dva:

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

i tako dalje. Slobodno zamijenite svoje vlastite vrijednosti za R2 ako imate samo određene otpornike pri ruci … Ključna stvar ovdje je zadržati dovoljno širok jaz u naponu između sklopki kako bi svaka greška na ADC -u pobijedila ' t staviti vas u napon koji se očekuje od susjedne sklopke. Otkrio sam da je najjednostavnije izgraditi ljestve razdjelnika i staviti multimetar/voltmetar na pin ADC -a i pritisnuti svaki pin i vidjeti koje vrijednosti dobivate. Trebali bi biti prilično svjesni onoga što izračunate. Nakon što dobijete sve očekivane vrijednosti napona od svakog prekidača pomoću određenog otpornika, tada možete MCU -u očitati pin ADC -a i usporediti ga s vašim poznatim vrijednostima kako biste utvrdili koji je prekidač pritisnut. Na primjer, recimo da ste registrirali rutinu usluge prekida koja će se pozivati kad god se primijeti promjena na pin -u ADC -a. Unutar tog ISR -a mogli ste pročitati ADC i usporediti tu vrijednost sa tablicom prekidača. Ako koristite 8-bitnu vrijednost ADC-a, vaš će se napon pretvoriti u broj između 0 i 255 koji odgovara naponu između 0V i 5V. Ovo pretpostavlja da ste ADC konfigurirali na ovaj način.

Korak 4: Sažetak

Dakle, sada biste trebali znati biti štedljivi u korištenju GPIO pinova za prekidače. Kad god vam ponestane GPIO pinova, ili ih jedva imate za početak, ili ako shvatite da ćete koristiti niz prekidača, otpornički razdjelnik je način na koji možete spasiti svoje GPIO pinove, a da pritom i dalje pružate robustan mehanizam za otkrivanje pristupa prekidačem.

Preporučeni: