Sadržaj:
- Korak 1: Krug
- Korak 2: Dokaz - Excel
- Korak 3: Arduino programiranje
- Korak 4: TinkerCAD kola
- Korak 5: "Tako dugo i hvala za svu ribu." (ref.1)
- Korak 6: Reference
Video: Koristite 1 analogni ulaz za 6 tipki za Arduino: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Često sam se pitao kako bih mogao dobiti više digitalnih ulaza za svoj Arduino. Nedavno mi je palo na pamet da bih trebao moći koristiti jedan od analognih ulaza za unošenje više digitalnih ulaza. Napravio sam brzu pretragu i otkrio gdje su ljudi to mogli učiniti, ali to je omogućilo samo jedno pritiskanje dugmeta odjednom. Želim imati mogućnost istovremenog pritiska na bilo koju kombinaciju dugmadi. Stoga sam, uz pomoć TINKERCAD KRUGA, krenuo u ostvarenje ovoga.
Zašto bih htio istovremene pritiske na tipke? Kao što je ilustrirano u dizajnu TinkerCad kola, moglo bi se koristiti za ulaze DIP prekidača za odabir različitih načina rada u okviru programa.
Krug koji sam smislio koristi 5V izvor dostupan od Arduina i koristi 7 otpornika i 6 tipki ili prekidača.
Korak 1: Krug
Arduino imaju analogne ulaze koji prihvaćaju ulaz 0V do 5V. Ovaj ulaz ima 10-bitnu rezoluciju, što znači da je signal podijeljen na 2^10 segmenata ili 1024 broja. Na osnovu ovoga, najviše što smo ikada mogli unijeti u analogni ulaz, a dopuštajući istovremene pritiske, bilo bi 10 tipki na 1 analogni ulaz. Ali, ovo nije savršen svijet. Postoji otpor u vodičima, buka iz vanjskih izvora i nesavršena snaga. Dakle, kako bih sebi dao dovoljno fleksibilnosti, planirao sam dizajnirati ovo za 6 tipki. Na to je djelomično utjecala činjenica da su TinkerCAD sklopovi imali DIP prekidač sa 6 prekidača, što bi olakšalo testiranje.
Prvi korak u mom dizajnu bio je osigurati da svako dugme, pojedinačno pritisnuto, daje jedinstveni napon. Time je isključeno da svi otpornici imaju istu vrijednost. Sljedeći korak je bio da vrijednosti otpora, ako se dodaju paralelno, ne mogu imati isti otpor kao niti jedna vrijednost otpornika. Kada su otpornici spojeni paralelno, rezultirajući otpor može se izračunati pomoću Rx = 1/[(1/R1)+(1/R2)]. Dakle, ako je R1 = 2000 i R2 = 1000, Rx = 667. Nagađao sam da udvostručenjem veličine svakog otpornika neću vidjeti isti otpor ni u jednoj kombinaciji.
Dakle, moj krug do ove tačke je bio da imam 6 prekidača, svaki sa svojim otpornikom. No, potreban je još jedan otpornik za dovršetak ovog kruga.
Posljednji otpornik ima 3 namjene. Prvo, djeluje kao pull-down otpornik. Bez otpornika, kada se ne pritisne nijedno dugme, kolo je nepotpuno. To bi omogućilo da napon na Arduino analognom ulazu pluta do bilo kojeg naponskog potencijala. Pull-Down otpornik u osnovi spušta napon na 0 V. Druga je svrha ograničiti struju ovog kruga. Ohmov zakon kaže da je V = IR, ili napon = struja pomnožena sa otporom. Uz dati izvor napona, veći otpornik znači da bi struja bila manja. Dakle, ako bi se 5V signal primijenio na otpornik od 500ohm, najveća struja koju bismo mogli vidjeti bila bi 0,01A ili 10mA. Treća svrha je osigurati napon signala. Ukupna struja koja protiče kroz posljednji otpornik bila bi: i = 5V/Rtotal, gdje je Rtotal = Rlast+{1/[(1/R1)+(1/R2)+(1/R3)+(1/R4)+ (1/R5)+(1/R6)]}. Međutim, uključite samo 1/Rx za svaki otpornik na kojem je pritisnuto odgovarajuće dugme. Od ukupne struje, napon koji se dovodi na analogni ulaz bio bi i*Rlast ili i*500.
Korak 2: Dokaz - Excel
Najbrži i najlakši način da dokažem da ću s ovim krugom dobiti jedinstvene otpore, a time i jedinstvene napone bio je korištenje mogućnosti programa Excel.
Postavio sam sve moguće kombinacije prekidačkih ulaza i organizirao ove sekvencijalno slijedeći binarne obrasce. Vrijednost "1" označava da je prekidač uključen, prazno znači da je isključen. Na vrhu proračunske tablice stavio sam vrijednosti otpora za svaki prekidač i za padajući otpornik. Zatim sam izračunao ekvivalentni otpor za svaku kombinaciju, osim kada su svi otpornici isključeni jer ti otpornici neće utjecati bez izvora napajanja. Da bih olakšao svoje proračune kako bih mogao kopirati i zalijepiti u svaku kombinaciju, uključio sam sve kombinacije u izračun množenjem svake vrijednosti prekidača (0 ili 1) s njegovom obrnutom vrijednošću otpora. Time je uklonjen njegov otpor iz proračuna ako je prekidač bio isključen. Dobivena jednadžba može se vidjeti na slici proračunske tablice, ali Req = Rx + 1/(Sw1/R1 + Sw2/R2 + Sw3/R3 + Sw4/R4 + Sw5/R5 + Sw6/R6). Koristeći Itotal = 5V / Req, određujemo ukupnu struju kroz kolo. To je ista struja koja prolazi kroz pull-down otpornik i daje nam napon na našem analognom ulazu. Ovo se računa kao Vin = Itotal x Rx. Ispitujući i Req podatke i Vin podatke, možemo vidjeti da zaista imamo jedinstvene vrijednosti.
U ovom trenutku izgleda da će naš krug raditi. Sada da shvatimo kako programirati Arduino.
Korak 3: Arduino programiranje
Kad sam počeo razmišljati o tome kako programirati Arduino, u početku sam planirao postavljanje pojedinačnih raspona napona za utvrđivanje je li prekidač uključen ili isključen. Ali, dok sam jedne noći ležao u krevetu, palo mi je na pamet da bih trebao pronaći jednadžbu za to. Kako? EXCEL. Excel ima mogućnost izračunavanja jednadžbi koje najbolje odgovaraju podacima u grafikonu. Da bih to učinio, želim jednadžbu cijele vrijednosti sklopki (binarnih) u odnosu na ulaz napona koji odgovara toj vrijednosti. U Excel radnoj svesci stavio sam cijelu vrijednost na lijevu stranu proračunske tablice. Sada da odredim moju jednačinu.
Evo kratkog vodiča o tome kako odrediti jednadžbu linije u Excelu.
1) Odaberite ćeliju koja ne sadrži nikakve podatke. Ako ste odabrali ćeliju s podacima, Excel će pokušati pogoditi što želite trend. To znatno otežava postavljanje trenda jer Excel rijetko predviđa ispravno.
2) Odaberite karticu "Insert" i odaberite "Scatter" grafikon.
3) Desnom tipkom miša kliknite okvir s grafikonom i kliknite "Odaberi podatke …". Ovo će otvoriti prozor "Odabir izvora podataka". Pritisnite dugme Dodaj da biste nastavili sa odabirom podataka.
4) Dajte mu naziv serije (opcionalno). Odaberite raspon za X-os klikom na strelicu prema gore, a zatim odabirom podataka o naponu. Odaberite raspon za Y-osu klikom na strelicu prema gore, a zatim odabirom Integer Data (0-63).
5) Desnom tipkom miša kliknite podatkovne točke i odaberite "Dodaj liniju trenda …" U prozoru "Oblikovanje linije trenda" odaberite gumb Polinom. Gledajući trend, vidimo da se Red 2 ne podudara sasvim. Odabrao sam Narudžbu 3 i smatrao sam da je ovo mnogo preciznije. Potvrdite okvir za "Prikaži jednadžbu na grafikonu". Konačna jednadžba sada je prikazana na grafikonu.
6) Gotovo.
UREDU. Nazad na program Arduino. Sada kada imamo jednadžbu, programiranje Arduina je jednostavno. Cijeli broj koji predstavlja pozicije prekidača izračunava se u 1 retku koda. Korištenjem "bitread" funkcije možemo dohvatiti vrijednost svakog pojedinog bita i tako znati stanje svakog dugmeta. (VIDI FOTOGRAFIJE)
Korak 4: TinkerCAD kola
Ako niste provjerili TinkerCAD kola, učinite to sada. ČEKAJTE !!!! Čitajte moj Instructable, a zatim ga provjerite. TinkerCAD sklopovi čine testiranje Arduino krugova vrlo lakim. Uključuje nekoliko električnih objekata i Arduinosa, čak vam omogućuje programiranje Arduina za testiranje.
Da bih testirao svoj krug, postavio sam 6 sklopki pomoću DIP sklopke i vezao ih za otpornike. Da bih dokazao da je vrijednost napona u mojoj Excel proračunskoj tablici ispravna, prikazao sam voltmetar na ulazu u Arduino. Sve je ovo funkcioniralo kako se očekivalo.
Da bih dokazao da je Arduino programiranje radilo, izlazim stanje prekidača na LED diode, koristeći Arduino digitalne izlaze.
Zatim sam promijenio svaki prekidač za svaku moguću kombinaciju i s ponosom mogu reći "RADI" !!!
Korak 5: "Tako dugo i hvala za svu ribu." (ref.1)
Ovo još moram isprobati koristeći pravu opremu, jer trenutno putujem na posao. Ali, nakon što sam to dokazao s TinkerCAD sklopovima, vjerujem da će uspjeti. Izazov je u tome što vrijednosti otpornika koje sam naveo nisu sve standardne vrijednosti za otpornike. Kako bih to zaobišao, planiram upotrijebiti potenciometre i kombinacije otpornika kako bih dobio potrebne vrijednosti.
Hvala vam što ste pročitali moje uputstvo. Nadam se da će vam pomoći u vašim projektima.
Ostavite komentare ako ste pokušali riješiti ovu prepreku i kako ste je riješili. Volio bih saznati više načina za to.
Korak 6: Reference
Zar niste mislili da ću ponuditi citat bez navođenja izvora?
ref. 1: Adams, Douglas. Tako dugo i hvala za svu ribu. (Četvrta knjiga trilogije "Autostoperski vodič kroz galaksiju")
Preporučuje se:
Testirajte Bare Arduino, sa softverom za igre koji koristi kapacitivni ulaz i LED: 4 koraka
Testirajte Bare Arduino, sa softverom za igre koji koristi kapacitivni ulaz i LED: " Push-It " Interaktivna igra koja koristi golu Arduino ploču, nisu potrebni vanjski dijelovi niti ožičenje (koristi kapacitivni ulaz na dodir). Gore prikazano, pokazuje da radi na dvije različite ploče. Pritisnite-Ima dvije svrhe. Za brzo demonstriranje/v
Arduino kontrola brzine i smjera istosmjernog motora pomoću potenciometra, OLED zaslona i tipki: 6 koraka
Arduino kontrola brzine i smjera istosmjernog motora pomoću potenciometra, OLED zaslona i gumba: U ovom ćemo vodiču naučiti kako koristiti upravljački program istosmjernog motora L298N i potenciometar za kontrolu brzine i smjera istosmjernog motora s dva gumba i prikazati vrijednost potenciometra. na OLED ekranu. Pogledajte demonstracijski video
Lagani start, brzina i smjer istosmjernog motora pomoću potenciometra, OLED zaslona i tipki: 6 koraka
Glatko pokretanje, brzina i smjer istosmjernog motora pomoću potenciometra, OLED zaslona i tipki: U ovom ćemo vodiču naučiti kako koristiti upravljački program L298N DC MOTOR CONTROL i potenciometar za upravljanje glatkim pokretanjem, brzinom i smjerom istosmjernog motora s dva gumba i prikazati vrijednost potenciometra na OLED zaslonu. Pogledajte demonstracijski video
Arduino kontrola brzine i smjera istosmjernog motora pomoću potenciometra i tipki: 6 koraka
Arduino kontrola brzine i smjera istosmjernog motora pomoću potenciometra i gumba: U ovom ćemo vodiču naučiti kako koristiti upravljački program za istosmjerno upravljanje motorom L298N i potenciometar za kontrolu brzine i smjera istosmjernog motora s dva gumba. Pogledajte demonstracijski video
IoT analogni ulaz - početak rada s IoT -om: 8 koraka
IoT analogni ulaz - početak rada s IoT -om: Razumijevanje analognih ulaza ključni je dio razumijevanja načina na koji stvari oko nas funkcioniraju, većina ako nisu svi senzori su analogni senzori (ponekad se ti senzori pretvaraju u digitalne). Za razliku od digitalnih ulaza koji mogu biti samo uključeni ili isključeni, analogni ulaz