Sadržaj:
- Korak 1: Osnovne stvari (ne baš)
- Korak 2: Razdjelnik napona
- Korak 3: Ljestvice razdjelnika napona
- Korak 4: Sažetak
Video: Kako čitati mnoge prekidače s jednim MCU pinom: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:10
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
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
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:
Kako čitati DHT podatke na LCD -u pomoću Raspberry Pi: 6 koraka
Kako čitati DHT podatke na LCD -u pomoću Raspberry Pi: Temperatura i relativna vlažnost vazduha važni su vremenski podaci u okruženjima. To mogu biti podaci koje mini meteorološka stanica pruža. Očitavanje vaše temperature i relativne vlažnosti pomoću Raspberry Pi može se postići pomoću različitih varijanti
Kako čitati više analognih vrijednosti pomoću jednog analognog pina: 6 koraka (sa slikama)
Kako čitati više analognih vrijednosti pomoću jednog analognog pina: U ovom vodiču pokazat ću vam kako čitati više analognih vrijednosti koristeći samo jedan pin za analogni ulaz
Kako čitati MPX5010 osjetnik diferencijalnog pritiska s Arduinom: 5 koraka
Kako čitati MPX5010 osjetnik diferencijalnog pritiska s Arduinom: Način na koji sam napisao kod je takav da se može lako promijeniti tako da odgovara drugom senzoru pritiska. Samo promijenite sljedeće varijable const u kodu na osnovu vrijednosti iz podatkovnog lista za bilo koji senzor pritiska: " sensorOffset & quot
Kako napraviti sigurnosne prekidače za blokiranje za laserski rezač K40: 4 koraka (sa slikama)
Kako napraviti sigurnosne prekidače za blokiranje za laserski rezač K40: VAŽNO IZMJENA! Molimo vas da ne povezujete svoje blokade na električnu mrežu mašine. Umjesto toga spojite na PG pinove na PSU. Uskoro će izvršiti potpuno ažuriranje. -Tony 7/30-19Koji je jedan od prvih savjeta na internetu za vaše nove, (ma
Kako riješiti problem s pinom od 3,3 V na bijelim diskovima s etiketama koji su uklonjeni sa Western Digital 8TB Easystore pogona: 6 koraka
Kako riješiti problem s venom od 3,3 V na diskovima s bijelom naljepnicom, otrgnutim od Western Digital 8TB Easystore pogona: Ako vam je ovo uputstvo korisno, razmislite o pretplati na moj Youtube kanal za nadolazeće DIY vodiče o tehnologiji. Hvala ti