Talaan ng mga Nilalaman:
- Hakbang 1: Ang Circuit
- Hakbang 2: Patunay - Excel
- Hakbang 3: Arduino Programming
- Hakbang 4: Mga TinkerCAD Circuits
- Hakbang 5: "Napakahaba, at Salamat sa Lahat ng Isda." (ref.1)
- Hakbang 6: Mga Sanggunian
Video: Gumamit ng 1 Analog Input para sa 6 na Mga Pindutan para sa Arduino: 6 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Madalas naisip ko kung paano ako makakakuha ng mas maraming mga Digital Input para sa aking Arduino. Kamakailan lamang naisip ko na dapat kong magamit ang isa sa Mga Analog Input para sa pagdala ng maraming mga digital input. Gumawa ako ng mabilis na paghahanap at nahanap kung saan nagawa ito ng mga tao, ngunit pinapayagan lamang nito ang isang solong pindutan na mapindot nang paisa-isa. Nais kong magkaroon ng anumang kumbinasyon ng mga pindutan upang mai-press nang SIMULTANEOUSLY. Kaya, sa tulong ng TINKERCAD CIRCUITS, nagtakda ako upang mangyari ito.
Bakit ko gugustuhin ang mga sabay-sabay na pagpindot sa pindutan? Tulad ng nakalarawan sa disenyo ng TinkerCad Circuits, maaari itong magamit para sa mga input ng switch ng DIP para sa pagpili ng iba't ibang mga mode sa loob ng programa.
Ang circuit na naisip ko ay gumagamit ng magagamit na mapagkukunan ng 5V mula sa Arduino at gumagamit ng 7 resistors at 6 na mga pindutan o switch.
Hakbang 1: Ang Circuit
Ang Arduino ay mayroong mga analog input na tumatanggap ng 0V hanggang 5V input. Ang input na ito ay may isang 10-bit na resolusyon, na nangangahulugang ang signal ay nasira sa 2 ^ 10 na mga segment, o 1024 na bilang. Batay dito, ang karamihan na maaari naming posibleng mai-input sa isang analog input habang pinapayagan para sa sabay-sabay na pagpindot ay magiging 10 mga pindutan sa 1 analog na pag-input. Ngunit, hindi ito isang perpektong mundo. Mayroong paglaban sa mga conductor, ingay mula sa labas ng mga mapagkukunan, at di-sakdal na kapangyarihan. Kaya, upang bigyan ang aking sarili ng maraming kakayahang umangkop, binalak ko itong idisenyo para sa 6 na mga pindutan. Ito ay, sa bahagi, naiimpluwensyahan ng katotohanan na ang TinkerCAD Circuits ay mayroong isang 6-Switch DIP Switch na bagay, na magpapadali sa pagsubok.
Ang unang hakbang sa aking disenyo ay tiyakin na ang bawat pindutan, kapag naisa-isang pinindot, ay magbibigay ng isang natatanging boltahe. Pinawalang-bisa nito ang lahat ng mga resistors na pareho ang halaga. Ang susunod na hakbang ay ang mga halaga ng paglaban, kapag idinagdag sa kahanay, ay hindi maaaring magkaroon ng parehong pagtutol sa anumang solong halaga ng risistor. Kapag ang mga resistors ay konektado sa kahanay, ang nagreresultang paglaban ay maaaring makalkula ng Rx = 1 / [(1 / R1) + (1 / R2)]. Kaya, kung R1 = 2000 at R2 = 1000, Rx = 667. Pinagpalagay ko na sa pamamagitan ng pagdodoble ng laki ng bawat risistor, hindi ko makikita ang parehong paglaban para sa alinman sa mga kumbinasyon.
Kaya, ang aking circuit sa puntong ito ay upang magkaroon ng 6 na switch, bawat isa ay may sariling resistor. Ngunit, may isa pang risistor na kinakailangan upang makumpleto ang circuit na ito.
Ang huling risistor ay may 3 mga layunin. Una, kumikilos ito bilang isang Pull-Down risistor. Nang walang risistor, kapag walang mga pindutan na pinindot ang circuit ay hindi kumpleto. Papayagan nito ang boltahe sa Analog Input ng Arduino na lumutang sa anumang potensyal na boltahe. Ang isang Pull-Down resistor ay mahalagang Hugot ang Down boltahe sa 0 V. Ang Pangalawang layunin ay upang limitahan ang kasalukuyang ng circuit na ito. Nakasaad sa batas ni Ohm na V = IR, o Boltahe = Kasalukuyang pinarami ng Paglaban. Sa isang naibigay na mapagkukunan ng boltahe, mas malaki ang risistor ay nangangahulugan na ang kasalukuyang ay magiging mas maliit. Kaya, kung ang isang senyas na 5V ay inilapat sa isang 500ohm risistor, ang pinakamalaking kasalukuyang nakikita nating 0.01A, o 10mA. Ang Pangatlong layunin ay upang magbigay ng boltahe ng signal. Ang kabuuang kasalukuyang dumadaloy sa huling risistor ay ang: i = 5V / Rtotal, kung saan Rtotal = Rlast + {1 / [(1 / R1) + (1 / R2) + (1 / R3) + (1 / R4) + (1 / R5) + (1 / R6)]}. Gayunpaman, isama lamang ang 1 / Rx para sa bawat Resistor na may pinindot na kaukulang pindutan. Mula sa kabuuang kasalukuyang, ang Boltahe na ibinigay sa Analog Input ay magiging i * Rlast, o i * 500.
Hakbang 2: Patunay - Excel
Ang pinakamabilis at pinakamadaling paraan upang patunayan na makakakuha ako ng mga natatanging resistensya at sa gayon natatanging voltages sa circuit na ito ay ang paggamit ng mga kakayahan ng Excel.
Ini-set up ko ang lahat ng mga posibleng kumbinasyon ng mga switch ng input at inayos ang sunud-sunod na pagsunod sa mga binary pattern. Ang isang halaga ng "1" ay nagpapahiwatig na ang switch ay nakabukas, blangko ay nagpapahiwatig na ito ay naka-off. Sa tuktok ng spreadsheet, inilagay ko ang mga halaga ng paglaban para sa bawat switch at para sa pull-down na risistor. Pagkatapos ay kinakalkula ko ang katumbas na paglaban para sa bawat isa sa mga kumbinasyon, maliban sa kung ang lahat ng mga resistors ay naka-off dahil ang mga resistor na ito ay hindi makakaapekto nang walang mapagkukunang mapagkukunan na nagbibigay dito. Upang gawing madali ang aking mga kalkulasyon upang maaari kong kopyahin at i-paste sa bawat kumbinasyon, isinama ko ang lahat ng mga kumbinasyon sa pagkalkula sa pamamagitan ng pagpaparami ng bawat halaga ng paglipat (0 o 1) ng baligtad na halaga ng paglaban. Ang paggawa nito ay tinanggal ang paglaban nito mula sa pagkalkula kung ang switch ay naka-off. Ang nagreresultang equation ay makikita sa imahe ng spreadsheet, ngunit Req = Rx + 1 / (Sw1 / R1 + Sw2 / R2 + Sw3 / R3 + Sw4 / R4 + Sw5 / R5 + Sw6 / R6). Gamit ang Itotal = 5V / Req, natutukoy namin ang kabuuang kasalukuyang sa pamamagitan ng circuit. Ito ang parehong kasalukuyang dumadaan sa Pull-down risistor, at nagbibigay sa amin ng Boltahe sa aming Analog Input. Kinakalkula ito bilang Vin = Itotal x Rx. Sinusuri ang parehong data ng Req at ang data ng Vin, makikita natin na mayroon talaga kaming mga natatanging halaga.
Sa puntong ito, lilitaw na gagana ang aming circuit. Ngayon upang malaman kung paano i-program ang Arduino.
Hakbang 3: Arduino Programming
Nang magsimula akong mag-isip tungkol sa kung paano i-program ang Arduino, una kong binalak sa pag-set up ng mga indibidwal na saklaw ng boltahe para sa pagtukoy kung ang isang switch ay naka-on o naka-off. Ngunit, habang nakahiga sa kama isang gabi, naisip ko na dapat akong makahanap ng isang equation upang magawa ito. Paano? EXCEL. Ang Excel ay may kakayahang kalkulahin ang mga equation upang pinakamahusay na magkasya ang data sa isang tsart. Upang magawa ito, gugustuhin ko ang isang equation ng Integer Value ng mga switch (binary) laban sa input ng boltahe na naaayon sa halagang iyon. Sa aking Excel Workbook, inilagay ko ang Halaga ng Integer sa kaliwang bahagi ng spreadsheet. Ngayon upang matukoy ang aking equation.
Narito ang isang mabilis na tutorial sa kung paano matukoy ang equation ng isang linya sa loob ng Excel.
1) Pumili ng isang cell na hindi naglalaman ng anumang data. Kung mayroon kang napiling isang cell na may data, susubukan ng Excel na hulaan kung ano ito gusto mong i-trend. Ginagawa nitong mas mahirap na mag-set up ng isang trend, dahil bihirang mahulaan nang tama ang Excel.
2) Piliin ang tab na "Ipasok" at Pumili ng isang tsart na "Ikalat".
3) Pag-right click sa tsart box at mag-click sa "Piliin ang Data …". Lalabas ito sa window na "Piliin ang Pinagmulan ng Data". Piliin ang button na Magdagdag upang magpatuloy upang piliin ang data.
4) Bigyan ito ng Pangalan ng Serye (Opsyonal). Piliin ang Saklaw para sa X-Axis sa pamamagitan ng pag-click sa pataas na arrow at pagkatapos ay piliin ang data ng Boltahe. Piliin ang Saklaw para sa Y-Axis sa pamamagitan ng pag-click sa pataas na arrow at pagkatapos ay piliin ang Integer Data (0-63).
5) Pag-right click sa mga puntos ng data at Piliin ang "Magdagdag ng Trendline …" Sa window na "Format Trendline", piliin ang pindutang Polynomial. Sa pagtingin sa trend, nakikita namin na ang Order ng 2 ay hindi masyadong tugma. Pumili ako ng isang Order ng 3 at naramdaman na ito ay mas tumpak. Piliin ang checkbox para sa "Display Equation sa tsart". Ang huling equation ngayon ay ipinapakita sa tsart.
6) Tapos Na.
OK lang Bumalik sa programa ng Arduino. Ngayon na mayroon kaming equation, madali ang pag-program ng Arduino. Ang Integer na kumakatawan sa mga posisyon ng paglipat ay kinakalkula sa 1 linya ng code. Sa pamamagitan ng paggamit ng "bitread" na pagpapaandar, maaari nating kunin ang halaga ng bawat indibidwal na bit at sa gayon ay malaman ang estado ng bawat pindutan. (TINGNAN ANG LARAWAN)
Hakbang 4: Mga TinkerCAD Circuits
Kung hindi mo pa nasuri ang TinkerCAD Circuits, gawin ito ngayon. HINTAY !!!! Tapusin ang pagbabasa ng aking Instructable, at pagkatapos ay suriin ito. Ginagawang madali ng TinkerCAD Circuits ang pagsubok ng mga Arduino circuit. Nagsasama ito ng maraming mga de-koryenteng bagay at Arduinos, kahit na pinapayagan kang i-program ang Arduino para sa pagsubok.
Upang subukan ang aking circuit, nag-set up ako ng 6 na switch sa pamamagitan ng paggamit ng isang DIP switch pack at itinali ang mga ito sa resistors. Upang mapatunayan na ang halaga ng boltahe sa aking Excel Spreadsheet ay tama, nagpakita ako ng isang voltmeter sa Input sa Arduino. Ang lahat ng ito ay gumana tulad ng inaasahan.
Upang patunayan na ang Arduino Programming ay nagtrabaho, inilalabas ko ang mga estado ng mga switch sa LED, gamit ang digital output ng Arduino.
Pagkatapos ay inilipat ko ang bawat switch para sa bawat posibleng kombinasyon at ipinagmamalaki kong sabihin na "IT WORKS" !!!
Hakbang 5: "Napakahaba, at Salamat sa Lahat ng Isda." (ref.1)
Hindi ko pa ito nasusubukan gamit ang totoong kagamitan, dahil kasalukuyang naglalakbay ako para sa trabaho. Ngunit, matapos itong patunayan sa TinkerCAD Circuits, naniniwala akong gagana ito. Ang hamon ay ang mga halaga ng resistors na tinukoy ko ay hindi lahat ng karaniwang mga halaga para sa resistors. Upang mapalibot ito, plano kong gumamit ng mga potensyal at kombinasyon ng mga resistor upang makuha ang mga halagang kailangan ko.
Salamat sa pagbabasa ng aking itinuturo. Inaasahan kong makakatulong ito sa iyo sa iyong mga proyekto.
Mangyaring mag-iwan ng mga komento kung sinubukan mong harapin ang parehong balakid at kung paano mo ito nalutas. Gusto kong malaman ang higit pang mga paraan upang magawa ito.
Hakbang 6: Mga Sanggunian
Hindi mo akalaing magbibigay ako ng isang quote nang hindi nagbibigay ng isang sanggunian sa pinagmulan nito hindi ba?
ref. 1: Adams, Douglas. Napakahaba, at Salamat sa Lahat ng Isda. (Ang ika-4 na libro ng Hitchhikerer's Guide to the Galaxy "trilogy")
Inirerekumendang:
Visuino Paano Gumamit ng isang Button Bilang isang Pag-input upang Makontrol ang Mga Bagay Tulad ng LED: 6 Mga Hakbang
Visuino Paano Gumamit ng isang Button Bilang isang Pag-input upang Makontrol ang Mga Bagay Tulad ng LED: Sa tutorial na ito matututunan natin kung paano i-ON at I-OFF ang LED gamit ang isang simpleng pindutan at Visuino. Panoorin ang isang video ng demonstrasyon
Mga Pindutan para sa Pag-scroll sa Mouse: 5 Mga Hakbang
Mga Pindutan para sa Pag-scroll sa Mouse: Nagkaroon ako ng maraming mga daga ng computer sa mga nakaraang taon at ang scroll wheel ay ang isang bagay na patuloy na hindi gumagana o gumagana nang hindi wasto. Karamihan ay naiwasan ko ang paggamit ng pagpipilian ng pag-scroll hanggang kamakailan nang nagpasya akong ibigay ang graphics pack
ESP32 Capacitive Touch Input Gamit ang "Metallic Hole Plugs" para sa Mga Pindutan: 5 Hakbang (na may Mga Larawan)
Ang ESP32 Capacitive Touch Input Gamit ang "Metallic Hole Plugs" para sa Mga Pindutan: Habang tinatapos ko ang mga desisyon sa disenyo para sa paparating na proyekto na nakabatay sa ESP32 WiFi Kit 32 na nangangailangan ng tatlong pag-input ng pindutan, ang isang kapansin-pansin na problema ay ang WiFi Kit 32 ay hindi nagtataglay ng isang solong pindutang mekanikal, nag-iisa pa ring tatlong mga mechanical button, f
Isang Menu sa Arduino, at Paano Gumamit ng Mga Pindutan: 10 Hakbang (na may Mga Larawan)
Isang Menu sa Arduino, at Paano Gumamit ng Mga Pindutan: Sa aking Arduino 101 tutorial, tuturuan ka kung paano i-set up ang iyong kapaligiran sa Tinkercad. Gumagamit ako ng Tinkercad sapagkat ito ay isang napakalakas na online platform na nagpapahintulot sa akin na ipakita ang isang hanay ng mga kasanayan sa mga mag-aaral para sa pagbuo ng mga circuit. Huwag mag-atubiling
Pasadyang Arduino upang Panatilihing MAAARI ang Mga Pindutan sa Mga Manibela na May Bagong Car Stereo: 9 Mga Hakbang (na may Mga Larawan)
Pasadyang Arduino upang Panatilihin ang CAN Steering Wheel Buttons Sa Bagong Car Stereo: Napagpasyahan kong palitan ang orihinal na stereo ng kotse sa aking Volvo V70 -02 ng isang bagong stereo upang masisiyahan ako sa mga bagay tulad ng mp3, bluetooth at handsfree. Ang aking kotse ay may ilang mga kontrol sa manibela para sa stereo na nais kong magamit pa rin.