Obsah:
- Krok 1: Základy (nie naozaj)
- Krok 2: Delič napätia
- Krok 3: Rebrík rozdeľovača napätia
- Krok 4: Zhrnutie
Video: Ako čítať mnoho prepínačov jedným pinom MCU: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:02
Vyhýbali ste sa niekedy projektu (projektom) a projekt stále rastie a rastie, pričom do neho pridávate ďalšie veci (hovoríme tomu Feaping Creaturism)? Na nedávnom projekte som postavil frekvenčný merač a pridal som päťfunkčný generátor signálu/frekvenčný syntetizátor. Čoskoro som skončil s väčším počtom prepínačov, než mi zostalo k dispozícii, takže čo má chlap robiť?
Čoskoro som však mal na svojom Funboxe ďalších sedem prepínačov (áno, tomu som hovoril generátor funkcií … Viem, nemám žiadnu kreativitu) a tu je krátky návod, ktorý vám ukáže, ako môžete to isté urobiť. Nevyžaduje žiadne posuvné registre ani konkrétne integrované obvody. V skutočnosti nevyžaduje ani mikrokontrolér, ak sa otáčate diskrétnymi polovodičmi. Toto je jeden zo spôsobov, ako môžete čítať/spravovať viac prepínačov pomocou jedného kolíka na AVR (alebo inom mikrokontroléri … Počul som, že okrem AVR existujú aj ďalšie mikrokontroléry, ale neviem si to predstaviť …).:)
Krok 1: Základy (nie naozaj)
Aby ste to dosiahli, budete potrebovať niekoľko komponentov. Pomáha mať množstvo prepínačov, ktoré musíte spravovať. Budete tiež potrebovať nejaké odpory a buď mikrokontrolér, ktorý má ADC (analógovo-digitálna konverzia), alebo iným spôsobom, ktorým by ste chceli naznačiť, že bol aktivovaný spínač a ktorý to bol.
Ak by ste chceli, môžete na to použiť napäťovo riadený oscilátor, možno pomocou blikajúcich svetiel alebo alternatívne so zvukom. V tomto prípade budem predstierať, že používame AVR, ale vo svojom svete môžete predstierať, že vás robí šťastným. Chýba mi Bob Ross.
Krok 2: Delič napätia
V zásade to urobíme pomocou techniky a obvodu nazývaného delič napätia. Oddeľovače napätia robia, ako ste asi uhádli, delenie napätia V,, v, nejakou hodnotou, ktorú určíte. Napätie môžete rozdeliť na niekoľko komponentov vrátane kondenzátorov a induktorov, ale tu to urobím pomocou dobrého odporu. Myšlienka To, čo robíme, je zaradenie dvoch komponentov do série, ktoré spôsobia, jednotlivo, pokles napätia v komponente. Pozrite sa na prvý obrázok, ak mi to nedáva zmysel. Existuje potenciálny rozdiel 9 V od koľajnice k železnici. Medzi 9V a 0V sú dva odpory v sérii. Každý z nich zaznamená pokles napätia sám v závislosti od odporu, ako si pravdepodobne pamätáte z V = IR. Ak zmeráte napätie medzi dvoma odpormi, dostanete nejakú hodnotu medzi 9 V a 0 V, v závislosti od toho, koľko napätia pokleslo na prvom odpore a koľko ešte zostáva poklesnúť cez druhý odpor pred 0 V. V tejto situácii existuje jednoduchý vzorec na výpočet poklesu napätia na rezistore a vyzerá to takto. Nech napätie na odpore 1 (R1) je V1 a napätie na odpore dva (R2) je V2. Pretože už nemôžem používať formátovanie, pozrite sa na obrázok 2 nižšie na vzorec … Takže v našom odporovom deliči môže byť napätie Vout určené naším vzorcom pre V2 (pretože budeme odkazovať na GND na 0V). Čo to má spoločné s tým, že je z jedného kolíka zistených veľa prepínačov? Otočte stránku a ja vám to ukážem!
Krok 3: Rebrík rozdeľovača napätia
Teraz predpokladajme, že máme všetky naše prepínače, možno šesť alebo osem alebo šestnásť, všetky prepojené pomocou odporov, z ktorých každý funguje ako delič napätia tak, že keď sa zmení stav spínacieho kolíka, napätie sa odčíta a na základe napäťovej hladiny môže vedieť, ktorý prepínač bol práve aktivovaný. Pozrite sa nižšie. Na obrázku nižšie som spojil dva bloky prepínačov. Najhornejší blok má dva prepínače a najspodnejší blok má päť prepínačov. Rovnakým spôsobom môžete pripojiť svoje samostatné prepínače, chvíľkové, hmatové atď. Dôležitá vec, ktorú si musíte všimnúť, je odpor, ku ktorému je pripojený váš prepínač. V mojom prípade som takmer zdvojnásobil odpor ďalšieho rezistora, aby som vytvoril medzeru napätia, ktorú je ľahké merať a nemýliť sa s prepínačom pred alebo po. Ak ste si to predtým nevšimli, znova sa pozrite a uvedomte si, že sme späť u nášho starého priateľa, odporového deliča napätia. Prvý odpor, 10 kOhm, je pripojený k 5 V a druhý odpor - odpor, ktorý bude určovať Vvon pre kolík SWITCH_ADC je pripojený ku každému prepínaču, a preto je ku každému prepínaču priradené konkrétne napätie Vout, ktoré je možné čítať z kolíka ADC pripojeného na SWITCH_ADC. Ďalej určte očakávaný Vout z každého prepínača
Vout = Vin * (R2 / (R1 + R2))
pre prepínač jeden:
Výstup = 5 V * (500 / (10 000 + 500)) = 5 * 0,048 = 0,24 V alebo 240 mV
pre prepínač dva:
Výstup = 5 V * (2200 / (10 000 + 2200)) = 5 * 0,18 = 0,9 V alebo ~ 900 mV
a tak ďalej.. Pokojne nahraďte R2 svojimi vlastnými hodnotami, ak máte poruke iba určité odpory … Kľúčovou vecou je udržať dostatočne širokú medzeru v napätí medzi prepínačmi, aby zvíťazila akákoľvek chyba v ADC. t vás uvedie do napätia očakávaného od susedného spínača. Zistil som, že najľahšie je postaviť deliaci rebrík a na pin ADC vložiť multimetr/voltmetr a stlačiť každý kolík a zistiť, aké hodnoty získate. Mali by byť celkom presní v tom, čo vypočítate. Akonáhle budete mať všetky očakávané hodnoty napätia z každého prepínača pomocou konkrétneho odporu, potom môžete nechať svoj MCU prečítať pin ADC a porovnať ho so svojimi známymi hodnotami, aby ste zistili, ktorý spínač bol stlačený. Povedzme napríklad, že ste zaregistrovali rutinnú službu prerušenia, ktorá sa bude volať vždy, keď dôjde k zistenej zmene na pine ADC. Vnútri tohto ISR by ste mohli prečítať ADC a porovnať túto hodnotu s vašou prepínacou tabuľkou. Ak používate 8-bitovú hodnotu ADC, vaše napätie bude prevedené na číslo medzi 0 a 255, ktoré zodpovedá napätiu medzi 0 V a 5 V. To predpokladá, že máte takto nakonfigurovaný ADC.
Krok 4: Zhrnutie
Teraz by ste teda mali vedieť, ako šetriť na používaní pinov GPIO na prepínače. Kedykoľvek vám začnú dochádzať piny GPIO alebo s nimi takmer žiadny nebudete mať, alebo ak si uvedomíte, že budete používať banku prepínačov, odporový delič je spôsob, ako uložiť svoje piny GPIO a súčasne poskytnúť robustný mechanizmus na detekciu prístupu prepínača.
Odporúča:
Ako čítať údaje DHT na LCD displeji pomocou Raspberry Pi: 6 krokov
Ako čítať údaje DHT na LCD displeji pomocou Raspberry Pi: Teplota a relatívna vlhkosť sú dôležité údaje o počasí v prostredí. Môžu to byť údaje, ktoré poskytuje malá meteorologická stanica. Odčítanie vašej teploty a relatívnej vlhkosti s Raspberry Pi je možné dosiahnuť pomocou rôznych variácií
Ako čítať mikrometre .: 3 kroky
Ako čítať mikrometre .: Dobrý deň, volám sa Damian Paul. Som študentom druhého ročníka Technického inštitútu Lake Area v programe presného obrábania. Pred návštevou Technického inštitútu Lake Area prevádzkujem CNC stroje viac ako 2 roky. Dnes sa chystám
Ako čítať viac analógových hodnôt pomocou jedného analógového kolíka: 6 krokov (s obrázkami)
Ako čítať viac analógových hodnôt pomocou jedného analógového pinu: V tomto návode vám ukážem, ako čítať viac analógových hodnôt pomocou iba jedného analógového vstupného pinu
Klávesnica s jedným pinom 4 × 4: 10 krokov
One Pin 4 × 4 Keypad: Zakaždým, keď vidím klávesnicu, prichádza s veľkým počtom pinov, je to veľká strata vašich pinov Arduino, takže môžeme spustiť klávesnicu s jediným a jediným pinom?. Odpoveď je tu
AKO ČÍTAŤ SCHÉMA OKRUHU: 4 kroky
AKO ČÍTAŤ SCHÉMA OKRUHU: tento návod vám ukáže, ako presne prečítať všetky tie mätúce schémy zapojenia a potom ako zostaviť obvody na doske! Pre všetky rádia nadšencov elektroniky je to MUST-READ návod. Vedieť, ako čítať obvody je