Satura rādītājs:
- 1. darbība. Būtiskais (ne īsti)
- 2. solis: sprieguma dalītājs
- 3. solis: sprieguma dalītāja kāpnes
- 4. darbība. Kopsavilkums
Video: Kā lasīt daudzus slēdžus ar vienu MCU tapu: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 11:00
Vai esat kādreiz aizrāvies ar kādu projektu (-iem), un projekts turpina augt un augt, kamēr jūs tam pievienojat vairāk lietu (to mēs saucam par Feaping Creaturism)? Nesenā projektā es būvēju frekvences mērītāju un pievienoju piecu funkciju signālu ģeneratoru/frekvences sintezatoru. Drīz es beidzu ar vairāk slēdžiem, nekā man bija palikušas pieejamās tapas, un ko puisis darīt?
Tomēr drīz manā Funbox bija vēl septiņi slēdži (jā, tā es saucu savu funkciju ģeneratoru … es zinu, man nav radošuma), un šeit ir īss pamācība, kas parāda, kā jūs varat darīt to pašu. Tam nav nepieciešami maiņu reģistri vai īpaši IC. Patiesībā tam nav nepieciešams arī mikrokontrolleris, ja rullējat diskrētus pusvadītājus. Šeit ir viens veids, kā jūs varat nolasīt/pārvaldīt vairākus slēdžus, izmantojot vienu AVR (vai cita mikrokontrollera) tapu. Esmu dzirdējis, ka bez AVR ir arī citi mikrokontrolleri, bet es nevaru iedomāties …).:)
1. darbība. Būtiskais (ne īsti)
Lai to izdarītu, jums būs nepieciešami daži komponenti. Tas palīdz, ja ir daudz slēdžu, kas jums jāpārvalda. Jums būs nepieciešami arī daži rezistori un vai nu mikrokontrolleris, kuram ir ADC (analogo ciparu pārveidošana), vai kāds cits veids, kā vēlaties norādīt, ka ir aktivizēts slēdzis un kurš slēdzis tas bija.
Ja vēlaties, varat izmantot sprieguma kontrolētu oscilatoru, lai to norādītu, iespējams, ar mirgojošām gaismām vai arī ar skaņu. Šajā brīnumā es izlikšos, ka mēs izmantojam AVR, bet jūsu pasaulē jūs varat izlikties visu, kas jūs dara laimīgu. Man pietrūkst Boba Rosa.
2. solis: sprieguma dalītājs
Būtībā veids, kā mēs to darīsim, ir izmantot tehniku un ķēdi, ko sauc par sprieguma dalītāju. Sprieguma dalītāji, kā jūs jau uzminējāt, sadala spriegumu V,,,, ar kādu jūsu noteikto vērtību. Jūs varat sadalīt spriegumu ar vairākiem komponentiem, ieskaitot kondensatorus un induktorus, bet šeit es to darīšu ar labo pretestību. Ideja Tas, ko mēs darām, ir divu komponentu salikšana virknē, kas katram atsevišķi izraisīs sprieguma kritumu visā komponentā. Paskaties pirmajā bildē, ja man nav jēgas. Pastāv iespējama 9V atšķirība no dzelzceļa uz dzelzceļu. Starp 9V un 0V virknē ir divi rezistori. Katrs no tiem piedzīvos sprieguma kritumu atkarībā no pretestības, kā jūs droši vien atceraties no V = IR. Ja veicat sprieguma mērījumus starp diviem rezistoriem, jūs iegūsit noteiktu vērtību starp 9V un 0V, atkarībā no tā, cik daudz sprieguma ir samazinājies pirmajā rezistorā un cik daudz ir atlicis nomest virs otrā rezistora pirms 0V. Šajā situācijā ir vienkārša formula sprieguma krituma aprēķināšanai pret rezistoru, un tas izskatās šādi. Ļaujiet spriegumam virs rezistora 1 (R1) būt V1 un spriegumam virs otrā rezistora (R2) jābūt V2. Tā kā es vairs nevaru izmantot formatējumu, skatiet formulu 2. attēlā zemāk … Tātad, mūsu pretestības dalītājā Vout spriegumu var noteikt pēc mūsu formulas V2 (jo mēs atsaucamies uz GND uz 0V). Kāds tam sakars ar daudzu slēdžu noteikšanu no vienas tapas? Nu, pāršķir lapu un es tev parādīšu!
3. solis: sprieguma dalītāja kāpnes
Tagad pieņemsim, ka mums ir visi mūsu slēdži, varbūt seši, astoņi vai sešpadsmit, visi ir savienoti, izmantojot rezistorus, kas katrs darbojas kā sprieguma dalītājs tā, ka, mainoties slēdža tapas stāvoklim, spriegums tiek nolasīts un, pamatojoties uz sprieguma līmeni, mēs var zināt, kurš slēdzis tikko tika aktivizēts. Paskaties zemāk. Tālāk redzamajā attēlā esmu pievienojis divus slēdžu blokus. Augšējā blokā ir divi slēdži, bet apakšējā blokā ir pieci slēdži. Tādā pašā veidā varat savienot atsevišķus pārslēgšanas, īslaicīgos, taustes utt. Svarīga lieta, kas jāņem vērā, ir rezistors, kuram ir pievienots jūsu slēdzis. Manā piemērā es gandrīz dubultoju nākamā rezistora pretestību, lai izveidotu sprieguma spraugu, kuru ir viegli izmērīt un nekļūdīties slēdzim pirms vai pēc. Ja iepriekš neesat pamanījis, paskatieties vēlreiz un saprotiet, ka esam atgriezušies pie sava vecā drauga - pretestības sprieguma dalītāja. Pirmais rezistors, 10k omi, ir pievienots 5V un otrais rezistors - rezistors, kas noteiks Vārā SWITCH_ADC tapai ir savienots ar katru slēdzi, un tāpēc katrs slēdzis ir saistīts ar noteiktu Vout spriegumu, ko var nolasīt no ADC tapas, kas pievienota SWITCH_ADC. Pēc tam nosakiet paredzamo Vout no katra slēdža
Vout = Vin * (R2 / (R1 + R2))
pirmajam slēdzim:
Vout = 5V * (500 / (10000 + 500)) = 5 * 0,048 = 0,24 V vai 240 mV
otrajam slēdzim:
Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0,18 = 0,9V vai ~ 900mV
un tā tālāk.. Jūtieties brīvi aizstāt savas vērtības ar R2, ja jums ir pa rokai tikai daži rezistori … Galvenais šeit ir saglabāt pietiekami plašu sprieguma spraugu starp slēdžiem, lai uzvarētu jebkāda kļūdas robeža ADC ' t neievietojiet jūs spriegumā, ko sagaida no blakus slēdža. Es atklāju, ka vienkāršākais, ko darīt, ir izveidot sadalītāja kāpnes un uzlikt ADC tapai multimetru/voltmetru, nospiest katru tapu un redzēt, kādas vērtības jūs iegūstat. Viņiem vajadzētu būt diezgan precīzam, ko aprēķināt. Kad esat ieguvis visas paredzamās sprieguma vērtības no katra slēdža, izmantojot noteiktu rezistoru, varat likt MCU nolasīt ADC tapu un salīdzināt to ar zināmajām vērtībām, lai noteiktu, kurš slēdzis tika nospiests. Piemēram, pieņemsim, ka esat reģistrējis pārtraukuma pakalpojumu rutīnu, kas tiks izsaukta ikreiz, kad ADC tapā tiks konstatētas izmaiņas. Šajā ISR jūs varētu izlasīt ADC un salīdzināt šo vērtību ar savu slēdžu tabulu. Ja izmantojat 8 bitu ADC vērtību, jūsu spriegums tiks pārveidots par skaitli no 0 līdz 255, kas atbilst spriegumam no 0 V līdz 5 V. Tas pieņem, ka jūsu ADC ir konfigurēts šādā veidā.
4. darbība. Kopsavilkums
Tātad, tagad jums vajadzētu zināt, kā taupīgi izmantot slēdžiem paredzētas GPIO tapas. Ikreiz, kad trūkst GPIO tapu vai gandrīz nemaz nav ar ko sākt, vai ja saprotat, ka izmantosit slēdžu banku, pretestības dalītājs ir veids, kā saglabāt GPIO tapas, vienlaikus nodrošinot spēcīgs mehānisms slēdža piekļuves noteikšanai.
Ieteicams:
Kā lasīt vairākas analogās vērtības, izmantojot vienu analogo tapu: 6 soļi (ar attēliem)
Kā lasīt vairākas analogās vērtības, izmantojot vienu analogo tapu: šajā apmācībā es jums parādīšu, kā lasīt vairākas analogās vērtības, izmantojot tikai vienu analogās ievades tapu
0,96 collu I2C OLED ar SMD tapu: 3 soļi
0,96 collu I2C OLED ar SMD tapu: materiāls: 1 x OPEN-SMART UNO R3 tāfele 1 x 0,96 collu I2C OLED ar SMD tapu 1 x IO paplašināšanas vairogs 1 x testa stiprinājums To ir viegli pielodēt eksperimenta PCB vai
DIP melodijas selektors, izmantojot 1 tapu: 4 soļi
DIP melodijas selektors, izmantojot 1 tapu: kādu laiku strādāju pie " mūzikas kastes " projekts, kuram bija jāizvēlas starp 10 dažādiem melodijas fragmentiem. Dabiska izvēle konkrētas melodijas izvēlei bija 4 kontaktu iegremdēšanas slēdzis, jo 4 slēdži nodrošina 24 = 16 dažādus iestatījumus. H
Vairāku pogu savienošana ar vienu tapu Arduino: 4 soļi
Vairāku pogu savienošana ar vienu Arduino tapu: Sveiki, visi, kad jūsu Arduino projektos ir pāraugušas mirgojošas gaismas diodes, jums var būt vajadzīgas dažas papildu tapas. Es jums parādīšu triku, kuru varat izmantot, ja jums var būt vairākas pogas, kas visas ir savienotas ar vienu un to pašu analogo tapu
Kontrolējiet jebko ar vienu AVR tapu: 4 soļi
Kontrolējiet jebko ar vienu AVR tapu: šī pamācība parāda, kā kontrolēt LED grupu ar vienu mikroprocesora izeju. Mikro, ko izmantošu, ir Atmel Attiny2313