Satura rādītājs:

Kā lasīt daudzus slēdžus ar vienu MCU tapu: 4 soļi
Kā lasīt daudzus slēdžus ar vienu MCU tapu: 4 soļi

Video: Kā lasīt daudzus slēdžus ar vienu MCU tapu: 4 soļi

Video: Kā lasīt daudzus slēdžus ar vienu MCU tapu: 4 soļi
Video: Нетронутый заброшенный дом с электричеством в Бельгии - это было нереально! 2024, Jūnijs
Anonim
Kā lasīt daudzus slēdžus ar vienu MCU tapu
Kā lasīt daudzus slēdžus ar vienu MCU tapu

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

Sprieguma dalītājs
Sprieguma dalītājs
Sprieguma dalītājs
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

Sprieguma dalītāja kāpnes
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: