Sisällysluettelo:
- Vaihe 1: Olennaiset asiat (ei oikeastaan)
- Vaihe 2: Jännitteenjakaja
- Vaihe 3: Jännitteenjakajatikkaat
- Vaihe 4: Yhteenveto
Video: Kuinka lukea monia kytkimiä yhdellä MCU -nastalla: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:04
Oletko koskaan piilottanut projektia (hankkeita) ja projekti kasvaa ja kasvaa samalla kun lisäät siihen lisää asioita (kutsumme sitä hölmöksi luovuudeksi)? Äskettäisessä projektissa rakensin taajuusmittaria ja lisäsin viiden funktion signaaligeneraattorin/taajuussyntetisaattorin. Pian päädyin enemmän kytkimiin kuin minulla oli käytettävissä olevia nastoja jäljellä, joten mitä kaveri tekee?
Kuitenkin minulla oli pian seitsemän muuta kytkintä Funboxissa (joo, sitä minä kutsuin funktiogeneraattorikseni… tiedän, minulla ei ole luovuutta), ja tässä on lyhyt ohje, joka näyttää, kuinka voit tehdä saman. Se ei vaadi vuororekistereitä tai erityisiä IC: itä. Itse asiassa se ei myöskään vaadi mikro -ohjainta, jos rullaat erillisiä puolijohteita. Tässä on yksi tapa, jolla voit lukea/hallita useita kytkimiä yhdellä nastalla AVR -laitteessasi (tai muussa mikrokontrollerissa … Olen kuullut, että AVR: n lisäksi on muitakin mikro -ohjaimia, mutta en voi kuvitella …).:)
Vaihe 1: Olennaiset asiat (ei oikeastaan)
Tämän saavuttamiseksi tarvitset muutamia komponentteja. Se auttaa monien kytkimien hallitsemisessa. Tarvitset myös joitain vastuksia ja joko mikro-ohjaimen, jossa on ADC (analoginen-digitaalinen muunnos) tai jollakin muulla tavalla haluat ilmoittaa, että kytkin oli aktivoitu ja mikä kytkin se oli.
Jos haluat, voit käyttää jänniteohjattua oskillaattoria osoittamaan tämän, ehkä joidenkin vilkkuvien valojen kanssa tai vaihtoehtoisesti äänen kanssa. Tässä iblessä aion teeskennellä, että käytämme AVR: ää, mutta maailmassasi voit teeskennellä mitä tahansa, joka tekee sinut onnelliseksi. Kaipaan Bob Rossia.
Vaihe 2: Jännitteenjakaja
Pohjimmiltaan tapa, jolla aiomme tehdä tämän, on käyttää tekniikkaa ja piiriä, jota kutsutaan jännitteenjakajaksi. Jännitteenjakajat jakavat V,, in,, jännitteen jollakin määrittämälläsi arvolla, kuten olet ehkä arvannut. Voit jakaa jännitteen useilla komponenteilla, mukaan lukien kondensaattorit ja induktorit, mutta tässä aion tehdä sen hyvällä vastuksella. Idea Mitä teemme, on asettaa kaksi komponenttia sarjaan, jotka aiheuttavat kumpikin erikseen jännitteen laskun komponentissa. Katso ensimmäinen kuva, jos minulla ei ole järkeä. Mahdollinen 9 V: n ero rautateistä rautateihin. 9V ja 0V välillä on kaksi vastusta sarjassa. Jokainen näistä kokee jännitehäviön itsestään riippuen vastuksesta, kuten luultavasti muistat V = IR. Jos otat jännitemittauksen kahden vastuksen välillä, saat jonkin arvon välillä 9V ja 0V riippuen siitä, kuinka paljon jännitettä on pudonnut ensimmäisen vastuksen yli ja kuinka paljon on jäljellä pudotusta toisen vastuksen yli ennen 0V. Tässä tilanteessa on yksinkertainen kaava jännitteen pudotuksen laskemiseksi vastuksen yli ja se näyttää tältä. Olkoon vastuksen 1 (R1) ylijännite V1 ja vastuksen 2 ylijännite (R2) V2. Koska en voi enää käyttää muotoilua, katso alla olevasta kuvasta 2 kaava… Joten resistiivisessä jakajassamme Vout -jännite voidaan määrittää kaavalla V2 (koska viitataan GND: hen 0V: ksi). Mitä tämä liittyy siihen, että yhdestä nastasta havaitaan joukko kytkimiä? No, käännä sivua, niin näytän sinulle!
Vaihe 3: Jännitteenjakajatikkaat
Oletetaan nyt, että meillä on kaikki kytkimet, ehkä kuusi, kahdeksan tai kuusitoista, kaikki kytkettyjä vastuksilla, jotka toimivat jännitteenjakajana siten, että kun kytkintangan tila muuttuu, jännite luetaan ja perustuu jännitetasoon, voi tietää, mikä kytkin on juuri aktivoitu. Katso alta. Alla olevassa kuvassa olen kytkenyt kaksi kytkinlohkoa. Ylimmässä lohkossa on kaksi kytkintä ja alimmassa lohkossa viisi kytkintä. Voit kytkeä erilliset kytkin-, hetkelliset, kosketus- jne. Kytkimet samalla tavalla. Tärkeä huomata on vastus, johon kytkin on kytketty. Esimerkissäni olen lähes kaksinkertaistanut seuraavan vastuksen resistanssin luodakseni jänniteraon, joka on helppo mitata eikä erehdy kytkimelle ennen tai jälkeen. Jos et ole huomannut aiemmin, katso uudelleen ja huomaa, että olemme palanneet vanhan ystävämme, resistiivisen jännitteenjakajan, luo. Ensimmäinen vastus, 10 k ohmia, on kytketty 5 V: iin ja toinen vastus - vastus, joka määrittää V: nulos SWITCH_ADC -nastalle, on kytketty kuhunkin kytkimeen, ja siksi jokainen kytkin on liitetty tiettyyn Vout -jännitteeseen, joka voidaan lukea SWITCH_ADC: stä kytketystä ADC -nastasta. Määritä seuraavaksi odotettu Vout kustakin kytkimestä
Vout = Vin * (R2 / (R1 + R2))
kytkimelle yksi:
Vout = 5 V * (500 / (10000 + 500)) = 5 * 0,048 = 0,24 V tai 240 mV
kytkimelle kaksi:
Vout = 5 V * (2200 / (10000 + 2200)) = 5 * 0,18 = 0,9 V tai ~ 900 mV
ja niin edelleen.. Voit vapaasti korvata omat arvosi R2: lla, jos sinulla on vain tietyt vastukset käden ulottuvilla … Tärkeintä tässä on pitää riittävän leveä jänniteväli kytkimien välillä niin, että ADC: n virhemarginaali voitti ' Älä laita sinua naapurikytkimen odottamaan jännitteeseen. Olen huomannut, että helpoin tapa on rakentaa jakaja tikkaat ja laittaa yleismittari/voltimetri ADC -nastaan ja painaa jokaista tappia ja katso mitä arvoja saat. Niiden pitäisi olla melko tarkkoja laskemassasi. Kun olet saanut kaikki odotetut jännitearvot kustakin kytkimestä käyttämällä tiettyä vastusta, voit saada MCU: n lukemaan ADC -nastan ja verrata sitä tunnettuihin arvoihisi määrittääksesi, mitä kytkintä painettiin. Oletetaan esimerkiksi, että olet rekisteröinyt keskeytyspalvelurutiinin, joka kutsutaan aina, kun ADC -nastassa havaitaan muutos. Tämän ISR: n sisällä voit lukea ADC: n ja verrata tätä arvoa kytkentätaulukkoosi. Jos käytät 8-bittistä ADC-arvoa, jännite muunnetaan numeroksi 0–255, joka vastaa 0–5 V: n jännitettä. Tämä olettaa, että olet määrittänyt ADC: si tällä tavalla.
Vaihe 4: Yhteenveto
Joten nyt sinun pitäisi tietää, miten säästää GPIO -nastojen käyttämistä kytkimissä. Aina kun GPIO -nastat ovat vähissä tai niillä ei juuri ole mitään aloitusta tai jos huomaat, että aiot käyttää kytkinpankkia, resistiivinen jakaja on tapa säästää GPIO -nastasi ja tarjota silti vankka mekanismi kytkimen käytön havaitsemiseksi.
Suositeltava:
Tuchless -kytkin kodinkoneisiin -- Hallitse kodinkoneitasi ilman mitään kytkimiä: 4 vaihetta
Tuchless -kytkin kodinkoneisiin || Hallitse kodinkoneitasi ilman mitään kytkimiä: Tämä on tuchless -kytkin kodinkoneille. Voit käyttää tätä missä tahansa julkisessa paikassa auttaaksesi torjumaan viruksia. Piiri perustuu op-vahvistimen ja LDR: n tekemään tummaan anturipiiriin. Toinen tärkeä osa tätä piiriä SR Flip-Flop sekvenssikennolla
Kuinka: Sido kengät yhdellä kädellä: 10 vaihetta
Kuinka: Sido kengät yhdellä kädellä: Kuinka opastaa kenkien sitomiseen yhdellä kädellä
Kuinka lukea MPX5010 -paine -eroanturi Arduinolla: 5 vaihetta
Kuinka lukea MPX5010 -paine -eroanturi Arduinolla: Koodin kirjoittamisen tapa on sellainen, että se voidaan helposti muuttaa sopimaan eri paineanturiin. Muuta vain seuraavia muuttujia koodissa minkä tahansa paineanturin tietolomakkeen arvojen perusteella: "sensorOffset"
Autonominen robotti, jolla on monia ominaisuuksia: 8 vaihetta (kuvilla)
Autonominen robotti, jolla on monia ominaisuuksia: Hei ystävät, tässä ohjeessa esitän uuden version aiemmasta ohjeistani, joka voi suorittaa seuraavat tehtävät: 1- Se voi liikkua itsenäisesti Arduino UNO: n ja L298N-moottoriajurin avulla- Se voi tehdä puhdistus pölynimurina 3- Se
Kuinka tehdä Lego -USB -asema vain yhdellä työkalulla!: 4 vaihetta
Kuinka tehdä Lego -USB -asema vain yhdellä työkalulla!: Annan sinun nähdä, kuinka tehdä Lego -USB -asema, jossa on vain joitakin Legoja, USB -asema ja jotain USB -aseman avaamiseen. , mulla ei ole vakaa käsi