Sadržaj:

Kako čitati mnoge prekidače s jednim MCU pinom: 4 koraka
Kako čitati mnoge prekidače s jednim MCU pinom: 4 koraka

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

Video: Kako čitati mnoge prekidače s jednim MCU pinom: 4 koraka
Video: ESP32 Tutorial 12 - WS2812 RGB Srip 4 Project with SunFounder's ESP32 IoT Learnig kit 2024, Novembar
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 (projekata), 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 šta momku treba 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. U stvari, ne zahtijeva ni mikrokontroler, ako se kotrljaju diskretni poluvodiči. Evo jednog načina na koji možete čitati/upravljati sa 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 vam imati mnoštvo prekidača kojima morate upravljati. Trebat će vam i 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 pretvarati da koristimo AVR, ali u vašem svijetu možete se pretvarati šta 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. Možete podijeliti napon s nekoliko komponenti, uključujući kondenzatore i prigušnice, ali ovdje ću to 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. Pogledajte prvu sliku ako nemam smisla. Postoji potencijalna razlika od 9 V od željeznice do šine. Između 9V i 0V postoje dva otpornika u seriji. Svaki od njih će doživjeti pad napona na sebi, ovisno o otporu, kao što se vjerojatno sjećate iz V = IR. Ako mjerite napon 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 gomile 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 povezane otpornicima koji svaki djeluju kao razdjelnik napona tako da se, kada se stanje pina sklopke promijeni, napon očitava i na temelju razine napona, mogu znati koji je prekidač upravo aktiviran. Pogledajte ispod. Na donjoj slici spojio sam dva bloka prekidača. Gornji blok ima dva prekidača, a najdonji blok ima pet prekidača. Na isti način možete povezati zasebne prekidače, trenutne, taktilne itd. Ono što je važno primijetiti je 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 ponovo i shvatite da smo se vratili našem starom prijatelju, otporničkom djelitelju napona. Prvi otpornik, 10k ohm, spojen je na 5V, a drugi otpornik - otpornik koji će odrediti Vvan za iglu SWITCH_ADC, spojen je na svaki prekidač i stoga je svaki prekidač povezan s posebnim Vout naponom koji se može očitati s ADC pina spojenog na SWITCH_ADC. Zatim odredite očekivani Vout iz svakog prekidača na takav način

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

za prekidač jedan:

Izlaz = 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 susjednog prekidača. Otkrio sam da je najjednostavnije da napravite ljestve razdjelnika i stavite multimetar/voltmetar na pin ADC -a i pritisnete svaki pin da vidite koje vrijednosti dobivate. Trebali bi biti prilično uočljivi u onome što izračunate. Nakon što dobijete sve očekivane vrijednosti napona od svakog prekidača pomoću određenog otpornika, tada možete dati MCU -u da pročita ADC pin i uporedi to s vašim poznatim vrijednostima kako bi utvrdio koji je prekidač pritisnut. Na primjer, recimo da ste registrirali rutinu usluge prekida koja će se pozivati kad god se otkrije promjena na pin -u ADC -a. Unutar tog ISR -a možete pročitati ADC i uporediti tu vrijednost sa tablicom prekidača. Ako koristite 8-bitnu vrijednost ADC-a, vaš napon će se 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 sačuvati svoje GPIO pinove, a da pritom i dalje pružate robustan mehanizam za otkrivanje pristupa prekidačem.

Preporučuje se: