INHOUDSOPGAWE:

Hoe om baie skakelaars met een MCU -pen te lees: 4 stappe
Hoe om baie skakelaars met een MCU -pen te lees: 4 stappe

Video: Hoe om baie skakelaars met een MCU -pen te lees: 4 stappe

Video: Hoe om baie skakelaars met een MCU -pen te lees: 4 stappe
Video: Die Antwoord - Baita Jou Sabela feat. Slagysta (Official Video) 2024, November
Anonim
Hoe om baie skakelaars met een MCU -pen te lees
Hoe om baie skakelaars met een MCU -pen te lees

Het u al ooit 'n projek of projekte ontwrig en die projek groei en groei, terwyl u nog meer dinge daarby voeg (ons noem dit 'n Feaping Creaturism)? By 'n onlangse projek het ek 'n frekwensiemeter gebou en 'n vyffunksie -seingenerator/frekwensiesintetiseerder bygevoeg. Ek beland gou met meer skakelaars as wat ek beskikbare penne oor het, so wat moet 'n man doen?

Ek het egter spoedig nog sewe skakelaars op my Funbox gehad (ja, dit is wat ek my funksiegenerator genoem het … ek weet, ek het geen kreatiwiteit nie) en hier is 'n kort instruksie wat u wys hoe u dieselfde kan doen. Dit vereis geen skofregisters of spesifieke IC's nie. In werklikheid is dit ook nie 'n mikrobeheerder nodig nie, as diskrete halfgeleiers hoe jy rol. Hier is een manier waarop u verskeie skakelaars kan lees/bestuur met 'n enkele pen op u AVR (of ander mikrobeheerder … ek het gehoor dat daar ander mikrobeheerders is as AVR's, maar ek kan my nie voorstel nie …).:)

Stap 1: Die noodsaaklikhede (nie regtig nie)

Om dit te bereik, benodig u 'n paar komponente. Dit help om 'n menigte skakelaars te hê wat u moet bestuur. U benodig ook weerstande en óf 'n mikrobeheerder met ADC (analoog-na-digitale omskakeling), óf op 'n ander manier wat u wil aandui dat 'n skakelaar geaktiveer is en watter skakelaar dit is.

As u wil, kan u 'n spanningsgestuurde ossillator gebruik om dit aan te dui, miskien met 'n paar blinken ligte, of alternatiewelik met klank. In hierdie artikel gaan ek voorgee dat ons 'n AVR gebruik, maar in u wêreld kan u voorgee wat u ook al gelukkig maak. Ek mis Bob Ross.

Stap 2: Die spanningsverdeler

Die spanningsverdeler
Die spanningsverdeler
Die spanningsverdeler
Die spanningsverdeler

In wese is die manier waarop ons dit gaan doen deur 'n tegniek en stroombaan te gebruik wat 'n spanningsverdeler genoem word. Spanningsverdelers verdeel, soos u al vermoed het, die spanning V, in,, deur 'n waarde wat u bepaal. U kan die spanning met verskillende komponente verdeel, insluitend kapasitors en induktors, maar hier gaan ek dit doen met die goeie weerstand. Die idee wat ons doen, is om twee komponente in serie te plaas wat elkeen afsonderlik 'n spanningsval oor die komponent sal veroorsaak. Kyk na die eerste prentjie as ek nie sin het nie. Daar is 'n potensiële verskil van 9V van spoor tot spoor. Tussen 9V en 0V is daar twee weerstande in serie. Elkeen hiervan sal 'n spanningsval oor homself ondervind, afhangende van die weerstand, soos u waarskynlik onthou van V = IR. As u 'n spanningsmeting tussen die twee weerstande doen, kry u 'n waarde tussen 9V en 0V, afhangende van hoeveel spanning oor die eerste weerstand gedaal het en hoeveel daar oor is om oor die 2de weerstand te daal, voor 0V. Daar is 'n eenvoudige formule vir die berekening van die spanningsval oor 'n weerstand in hierdie situasie, en dit lyk so. Laat die spanning oor weerstand 1 (R1) V1 wees en die spanning oor weerstand twee (R2) V2. Aangesien ek nie meer formatering kan gebruik nie, kyk na prentjie 2 hieronder vir die formule … Dus, in ons resistiewe verdeler, kan die Vout -spanning bepaal word deur ons formule vir V2 (aangesien ons GND na 0V verwys). Wat het dit te doen met die feit dat 'n klomp skakelaars uit een pen opgespoor word? Blaai om, ek wys jou!

Stap 3: Voltage Divider Ladder

Voltage Divider Ladder
Voltage Divider Ladder

Gestel ons het al ons skakelaars, miskien ses of agt of sestien, almal gekoppel via weerstande wat elkeen as 'n spanningsverdeler optree, sodat wanneer die toestand van die skakelaarpen verander, die spanning gelees word en gebaseer is op die spanningsvlak kan weet watter skakelaar pas geaktiveer is. Kyk hieronder. Op die onderstaande prentjie het ek twee blokke skakelaars verbind. Die boonste blok het twee skakelaars, en die onderste blok het vyf skakelaars. U kan u afsonderlike skakelaars, kortstondige, tasbare, ens. Skakelaars op dieselfde manier verbind. Die belangrikste ding om op te let is die weerstand waarmee u skakelaar gekoppel is. In my voorbeeld het ek die weerstand van die volgende weerstand byna verdubbel om 'n spanningsgaping te skep wat maklik is om te meet, en nie die fout van die skakelaar voor of daarna nie. As u nog nie vantevore opgemerk het nie, kyk weer en besef dat ons terug is na ons ou vriend, die weerstandspanningsverdeler. Die eerste weerstand, die 10k ohm, is gekoppel aan 5V en die 2de weerstand - die weerstand wat V sal bepaaluit vir SWITCH_ADC -pen, is aan elke skakelaar gekoppel en daarom word elke skakelaar geassosieer met 'n spesifieke Vout -spanning wat gelees kan word vanaf die ADC -pen wat by SWITCH_ADC gekoppel is. Bepaal vervolgens die verwagte Vout van elke skakelaar so

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

vir skakelaar een:

Vout = 5V * (500 / (10000 + 500)) = 5 * 0,048 = 0,24V of 240 mV

vir skakelaar twee:

Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0,18 = 0,9V of ~ 900mV

ensovoorts.. Vervang u eie waardes vir R2 as u slegs sekere weerstande byderhand het … sit u in die spanning wat van 'n naburige skakelaar verwag word. Ek het gevind dat die maklikste ding om te doen, is om die skeidingsleer te bou en 'n multimeter/voltmeter op die ADC -pen te plaas en op elke pen te druk om te sien watter waardes u kry. Hulle moet redelik in lyn wees met wat u bereken. As u al die verwagte spanningswaardes van elke skakelaar met 'n spesifieke weerstand het, kan u u MCU die ADC -pen laat lees en dit vergelyk met u bekende waardes om te bepaal watter skakelaar ingedruk is. Sê byvoorbeeld dat u 'n onderbrekingsdiensroetine geregistreer het wat gebel sal word wanneer daar 'n verandering op die ADC -pen voorkom. Binne die ISR kan u die ADC lees en die waarde vergelyk met u skakelbord. As u 'n 8-bis ADC-waarde gebruik, word u spanning omgeskakel in 'n getal tussen 0 en 255 wat ooreenstem met 'n spanning tussen 0V en 5V. Dit veronderstel dat u u ADC op hierdie manier gekonfigureer het.

Stap 4: Opsomming

Dus, nou moet u weet hoe om spaarsamig te wees met die gebruik van GPIO -penne vir skakelaars. As u te min GPIO -penne het, of u amper nie kan begin nie, of as u besef dat u 'n groot aantal skakelaars gaan gebruik, is die weerstandsverdeler die manier om u GPIO -penne te stoor, terwyl u steeds 'n robuuste meganisme om toegang tot die skakelaar op te spoor.

Aanbeveel: