Sisällysluettelo:
- Vaihe 1: Piiri
- Vaihe 2: Todiste - Excel
- Vaihe 3: Arduino -ohjelmointi
- Vaihe 4: TinkerCAD -piirit
- Vaihe 5: "Niin kauan ja kiitos kaikista kaloista." (viite 1)
- Vaihe 6: Viitteet
Video: Käytä 1 analogista tuloa 6 painikkeelle Arduinolle: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Olen usein ihmetellyt, miten voisin saada enemmän digitaalituloja Arduinolleni. Äskettäin tuli mieleeni, että minun pitäisi pystyä käyttämään yhtä analogituloista useiden digitaalitulojen tuomiseen. Tein nopean haun ja löysin paikat, joissa ihmiset pystyivät tekemään tämän, mutta ne sallivat vain yhden painikkeen painamisen kerrallaan. Haluan, että mitä tahansa näppäinyhdistelmää voidaan painaa yksinkertaisesti. Joten TINKERCAD CIRCUITSin avulla päätin toteuttaa tämän.
Miksi haluan samanaikaisia painalluksia? Kuten TinkerCad -piirien suunnittelussa on havainnollistettu, sitä voidaan käyttää DIP -kytkentätuloihin eri tilojen valitsemiseksi ohjelman sisällä.
Piirini, jonka keksin, käyttää Arduinon saatavilla olevaa 5 V: n lähdettä ja käyttää 7 vastusta ja 6 painiketta tai kytkintä.
Vaihe 1: Piiri
Arduinossa on analogiset tulot, jotka hyväksyvät 0V - 5V tulon. Tämän tulon resoluutio on 10 bittiä, mikä tarkoittaa, että signaali on jaettu 2^10 segmenttiin tai 1024 laskuun. Tämän perusteella eniten, mitä voisimme koskaan syöttää analogituloon ja sallia samanaikaiset painallukset, olisi 10 painiketta 1 analogiseen tuloon. Mutta tämä maailma ei ole täydellinen. Johtimissa on vastus, ulkopuolisten lähteiden melu ja epätäydellinen virta. Joten antaakseni itselleni paljon joustavuutta, suunnittelin suunnittelevani tämän 6 painikkeelle. Tähän vaikutti osittain se, että TinkerCAD Circuitsilla oli 6-kytkininen DIP-kytkinobjekti, mikä helpottaisi testaamista.
Suunnitteluni ensimmäinen askel oli varmistaa, että jokainen painike, kun sitä painetaan erikseen, tuottaa ainutlaatuisen jännitteen. Tämä sulki pois sen, että kaikki vastukset olisivat saman arvoisia. Seuraava askel oli, että rinnakkain lisättyjen vastusarvojen vastus ei voinut olla sama kuin millään yksittäisellä vastuksen arvolla. Kun vastukset on kytketty rinnakkain, tuloksena oleva vastus voidaan laskea Rx = 1/[(1/R1)+(1/R2)]. Joten jos R1 = 2000 ja R2 = 1000, Rx = 667. Arvelin, että kaksinkertaistamalla kunkin vastuksen koon, en näkisi samaa vastusta missään yhdistelmässä.
Joten, piirini tähän pisteeseen oli saada 6 kytkintä, joista jokaisella on oma vastus. Mutta tämän piirin loppuun saattamiseksi tarvitaan vielä yksi vastus.
Viimeisellä vastuksella on 3 tarkoitusta. Ensinnäkin se toimii vetovastusvastuksena. Ilman vastusta, kun mitään painikkeita ei paineta, piiri on epätäydellinen. Tämä antaisi Arduinon analogisen tulon jännitteen kellua mihin tahansa jännitepotentiaaliin. Pull-down-vastus vetää olennaisesti jännitteen alas 0 V. Toinen tarkoitus on rajoittaa tämän piirin virtaa. Ohmin lain mukaan V = IR tai jännite = virta kerrottuna vastuksella. Tietyllä jännitelähteellä suurempi vastus tarkoittaa, että virta olisi pienempi. Joten jos 5 V: n signaali kohdistettiin 500 ohmin vastukseen, suurin näkemämme virta olisi 0,01A tai 10mA. Kolmas tarkoitus on tarjota signaalijännite. Viimeisen vastuksen läpi kulkeva kokonaisvirta olisi: i = 5V/Rtotal, missä Rtotal = Rlast+{1/[(1/R1)+(1/R2)+(1/R3)+(1/R4)+ (1/R5)+(1/R6)]}. Sisällytä kuitenkin vain 1/Rx jokaiselle vastukselle, jonka vastaavaa painiketta on painettu. Kokonaisvirrasta analogiatuloon syötettävä jännite olisi i*Rlast tai i*500.
Vaihe 2: Todiste - Excel
Nopein ja helpoin tapa todistaa, että saisin ainutlaatuisia vastuksia ja siten ainutlaatuisia jännitteitä tällä piirillä, oli käyttää Excelin ominaisuuksia.
Asetin kaikki mahdolliset kytkentätulojen yhdistelmät ja järjestin nämä peräkkäin binäärimallien mukaan. Arvo "1" osoittaa, että kytkin on päällä, tyhjä osoittaa, että se on pois päältä. Laskentataulukon yläosaan laitan vastusarvot kullekin kytkimelle ja alasvetovastukselle. Laskin sitten vastaavan vastuksen kullekin yhdistelmälle, paitsi silloin, kun kaikki vastukset ovat pois päältä, koska näillä vastuksilla ei ole vaikutusta ilman virtalähdettä. Laskennan helpottamiseksi, jotta voisin kopioida ja liittää jokaiseen yhdistelmään, sisällytin kaikki laskutoimitukset kertomalla kunkin kytkimen arvon (0 tai 1) sen käänteisellä vastusarvolla. Tämä eliminoi sen vastuksen laskelmasta, jos kytkin oli pois päältä. Tuloksena oleva yhtälö näkyy laskentataulukon kuvassa, mutta Req = Rx + 1/(Sw1/R1 + Sw2/R2 + Sw3/R3 + Sw4/R4 + Sw5/R5 + Sw6/R6). Käyttämällä Itotal = 5V / Req määritetään piirin läpi kulkeva kokonaisvirta. Tämä on sama virta, joka kulkee alasvetovastuksen läpi ja antaa meille jännitteen analogiseen tuloon. Tämä lasketaan muodossa Vin = Itotal x Rx. Tarkasteltaessa sekä Req -tietoja että Vin -tietoja voimme nähdä, että meillä on todellakin ainutlaatuisia arvoja.
Tässä vaiheessa näyttää siltä, että piirimme toimii. Nyt selvittää, kuinka ohjelmoida Arduino.
Vaihe 3: Arduino -ohjelmointi
Kun aloin miettiä Arduinon ohjelmointia, alun perin suunnittelin yksittäisten jännitealueiden määrittämistä sen määrittämiseksi, onko kytkin päällä vai pois päältä. Mutta kun makasin sängyssä yhden yön, mieleeni tuli, että minun pitäisi pystyä löytämään yhtälö tämän tekemiseksi. Miten? EXCEL. Excel pystyy laskemaan yhtälöt parhaiten vastaamaan kaavion tietoja. Tätä varten haluan yhtälön kytkinten (binaarinen) kokonaislukuarvosta verrattuna kyseistä arvoa vastaavaan jännitetuloon. Laitoin Excel -työkirjaani Kokonaisluku -arvon laskentataulukon vasempaan reunaan. Määritä nyt yhtälöni.
Tässä on nopea opetusohjelma viivan yhtälön määrittämiseksi Excelissä.
1) Valitse solu, joka ei sisällä tietoja. Jos olet valinnut solun, jossa on tietoja, Excel yrittää arvata, mikä on trendi. Tämän vuoksi trendin asettaminen on paljon vaikeampaa, koska Excel ennustaa harvoin oikein.
2) Valitse "Insert" -välilehti ja valitse "Scatter" -kaavio.
3) Napsauta hiiren kakkospainikkeella kaavion ruutua ja napsauta "Valitse tiedot…". Tämä tuo esiin "Valitse tietolähde" -ikkunan. Jatka tietojen valitsemista valitsemalla Lisää -painike.
4) Anna sille sarjanimi (valinnainen). Valitse X-akselin alue napsauttamalla ylös-nuolta ja valitsemalla sitten jännitetiedot. Valitse Y-akselin alue napsauttamalla ylänuolta ja valitsemalla Kokonaislukutiedot (0-63).
5) Napsauta datapisteitä hiiren kakkospainikkeella ja valitse "Lisää trendiviiva …" Valitse "Muotoile trendiviiva" -ikkunassa Polynomi -painike. Tarkasteltaessa suuntausta näemme, että järjestys 2 ei täysin vastaa. Valitsin tilauksen 3 ja tunsin tämän olevan paljon tarkempaa. Valitse Näytä yhtälö kaaviossa -valintaruutu. Lopullinen yhtälö näkyy nyt kaaviossa.
6) Valmis.
OK. Palaa Arduino -ohjelmaan. Nyt kun meillä on yhtälö, Arduinon ohjelmointi on helppoa. Kokonaisluku, joka edustaa kytkimen asemia, lasketaan yhdellä koodirivillä. Käyttämällä "bitread" -toimintoa voimme napata kunkin yksittäisen bitin arvon ja siten tietää kunkin painikkeen tilan. (KATSO KUVAT)
Vaihe 4: TinkerCAD -piirit
Jos et ole tutustunut TinkerCAD -piiriin, tee se nyt. ODOTA!!!! Lopeta Instructable -ohjelman lukeminen ja tarkista se sitten. TinkerCAD Circuits tekee Arduino -piirien testaamisesta erittäin helppoa. Se sisältää useita sähköisiä esineitä ja Arduinoja, joiden avulla voit jopa ohjelmoida Arduinon testausta varten.
Testatakseni piirini, asetin 6 kytkintä käyttämällä DIP -kytkinpakettia ja sidoin ne vastuksiin. Todistaakseni, että Excel -laskentataulukkoni jännitearvo oli oikea, näytin volttimittarin Arduinon tulossa. Tämä kaikki toimi odotetusti.
Todistaakseni, että Arduino -ohjelmointi toimi, lähetän kytkinten tilat LED -valolle käyttämällä Arduinon digitaalilähtöjä.
Vaihdoin sitten kaikki kytkimet kaikkiin mahdollisiin yhdistelmiin ja voin ylpeänä sanoa "IT WORKS" !!!
Vaihe 5: "Niin kauan ja kiitos kaikista kaloista." (viite 1)
En ole vielä kokeillut tätä oikeilla laitteilla, koska matkustan tällä hetkellä työn vuoksi. Mutta todistettuani sen TinkerCAD Circuitsilla uskon, että se toimii. Haasteena on, että määrittämäni vastuksen arvot eivät ole kaikki vakioiden vakioarvoja. Tämän kiertämiseksi aion käyttää potentiometrejä ja vastuksen yhdistelmiä tarvittavien arvojen saamiseksi.
Kiitos, että luit ohjeeni. Toivon, että se auttaa sinua projekteissasi.
Jätä kommentit, jos olet yrittänyt ratkaista saman esteen ja miten olet ratkaissut sen. Haluaisin oppia lisää tapoja tehdä tämä.
Vaihe 6: Viitteet
Etkö luullut, että annan lainauksen antamatta viittausta sen lähteeseen?
viite. 1: Adams, Douglas. Niin kauan, ja kiitos kaikista kaloista. (Lomamatkailijan opas galaksiin -trilogian neljäs kirja)
Suositeltava:
Testaa paljas Arduino, peliohjelmistolla kapasitiivista tuloa ja LED -valoa käyttäen: 4 vaihetta
Testaa paljas Arduino, jossa peliohjelmisto käyttää kapasitiivista tuloa ja LED-valoa: " Push-It " Interaktiivinen peli, jossa käytetään paljaita Arduino -kortteja, ei tarvita ulkoisia osia tai johdotusta (käyttää kapasitiivista kosketusliitäntää). Yllä oleva osoittaa, että se toimii kahdella eri levyllä. Nopeasti esittelemään/v
4 painikepeliä käyttäen yhtä analogista tuloa: 6 vaihetta (kuvien kanssa)
4 Painikepelit yhden analogitulon avulla: Tämä ohje on keskittynyt yhden analogisen tulolinjan käyttämiseen useille painikkeille, jotka voidaan havaita toisistaan riippumatta. Kaikki pelit (kahdeksan
Opetusohjelma: Kuinka käyttää analogista ultraääni-etäisyysanturia US-016 Arduino UNO: n kanssa: 3 vaihetta
Opetusohjelma: Kuinka käyttää analogista ultraääni-etäisyysanturia US-016 Arduino UNO: n kanssa: Kuvaus: US-016-ultraäänen käynnistysmoduuli sallii 2 cm ~ 3 m mittaamattomat ominaisuudet, syöttöjännite 5 V, käyttövirta 3,8 mA, tukee analogista lähtöjännitettä, vakaa ja luotettava. Tämä moduuli voi vaihdella sovelluksesta riippuen
Peruutuspysäköintiavustin autotallissa käyttäen olemassa olevaa turva -anturia ja analogista piiriä: 5 vaihetta
Peruutuspysäköintiavustin autotallissa käyttämällä olemassa olevaa turva -anturia ja analogista piiriä: Epäilen, että monet keksinnöt ihmiskunnan historiassa tehtiin valittavien vaimojen takia. Pesukone ja jääkaappi näyttävät varmasti kelvollisilta ehdokkailta. Minun pieni "keksintö" Tässä ohjeessa kuvattu on sähköinen
KÄYTÄ KÄYTÄ VANHTA KANNETTAVAA AKKUASIA TEHOA PANKKI: 9 vaihetta (kuvilla)
KÄYTÄ VANHA LAPTOP -AKKU TEHOA PANKKI: [Toista video] [Solar Power Bank] Muutama kuukausi sitten Dellin kannettavan tietokoneen akku ei toiminut.Kun irrotan sen verkkovirrasta, kannettava tietokone sammui välittömästi. Muutaman päivän kuluttua turhautuneena, vaihdoin pariston ja säilytin kuolleen (minun