Talaan ng mga Nilalaman:

DIY Arduino Binary Alarm Clock: 14 Hakbang (na may Mga Larawan)
DIY Arduino Binary Alarm Clock: 14 Hakbang (na may Mga Larawan)

Video: DIY Arduino Binary Alarm Clock: 14 Hakbang (na may Mga Larawan)

Video: DIY Arduino Binary Alarm Clock: 14 Hakbang (na may Mga Larawan)
Video: LDmicro 14: I2C LCD & DS3231 Real-Time Clock (Microcontroller PLC Ladder Programming with LDmicro) 2024, Hulyo
Anonim
DIY Arduino Binary Alarm Clock
DIY Arduino Binary Alarm Clock
DIY Arduino Binary Alarm Clock
DIY Arduino Binary Alarm Clock
DIY Arduino Binary Alarm Clock
DIY Arduino Binary Alarm Clock

Ito na ulit ang klasikong binary na orasan! Ngunit sa oras na ito na may higit pang karagdagang pag-andar! Sa itinuturo na ito, ipapakita ko sa iyo kung paano bumuo ng isang binary alarm clock kasama ang Arduino na maaaring ipakita sa iyo hindi lamang oras, ngunit petsa, buwan, kahit na may mga pag-andar ng timer at alarm na maaari ding magamit bilang bedside lamp! Nang walang karagdagang ado magsimula na tayo!

Tandaan: Ang proyektong ito ay hindi gumagamit ng isang module ng RTC, kaya ang kawastuhan ay nakasalalay sa board na ginamit mo. Isinama ko ang isang mekanismo ng pagwawasto na magtatama ng naaanod na oras sa ilang partikular na tagal ng panahon ngunit kakailanganin mong mag-eksperimento sa paligid upang mahanap ang tamang halaga para sa tagal ng panahon (Higit pa sa ibaba na ito), at kahit na sa mekanismo ng pagwawasto ay naaanod pa rin ito sa mahabang panahon (kung ihinahambing sa walang isa). Kung mayroong interesado huwag mag-atubiling ipatupad ang paggamit ng module ng RTC sa proyektong ito

Mga gamit

5mm LED (ng anumang kulay, gumamit ako ng 13 puting LEDs na may isang RGB LED bilang tagapagpahiwatig) --- 14 pcs

Arduino Nano (maaaring gumana ang iba) --- 1 pc

Micro-switch --- 1 pc

Maliit na piraso ng aluminyo palara

Mounting board (para sa enclosure, ngunit huwag mag-atubiling idisenyo ang iyong sarili)

Piraso ng puting papel (o anumang iba pang kulay)

Ilang plastic film (ang ginamit bilang takip ng libro)

Bungkos ng mga wire

Buzzer --- 1pc

NPN transistor --- 1pc

Mga resistor 6k8 --- 14 pcs, 500R --- 1 pc, 20R (10Rx2) --- 1 pc, 4k7 --- 1pc

Power supply para sa proyekto (gumamit ako ng li-on na baterya)

5050 LED strip at isang slide switch (opsyonal)

Hakbang 1: Ikonekta ang Circuit

Ikonekta ang Circuit!
Ikonekta ang Circuit!

Hahatiin ko ang hakbang na ito sa:

1) Ang bahagi ng buzzer

2) Ang LED panel

3) Ang switch (pindutan ng push)

4) LED strip

5) Ang capacitance sensor

6) supply ng kuryente

7) Ikonekta ang lahat sa kanila sa Arduino

Karamihan sa mga oras, ito ay isang hakbang na "sundin ang eskematiko". Kaya suriin ang eskematiko sa itaas o kahit na i-download at i-print ito!

Hakbang 2: Paghahanda ng Bahagi ng Buzzer

Paghahanda ng Bahagi ng Buzzer
Paghahanda ng Bahagi ng Buzzer
Paghahanda ng Bahagi ng Buzzer
Paghahanda ng Bahagi ng Buzzer
Paghahanda ng Bahagi ng Buzzer
Paghahanda ng Bahagi ng Buzzer

Kung nagamit mo na ang buzzer sa Arduino dati, malalaman mo na kung ikonekta namin ito nang direkta sa Arduino hindi ito sapat na malakas. Kaya kailangan namin ng isang amplifier. Upang maitayo ang amplifier, kailangan namin ng isang NPN transistor (karaniwang gagana ang anumang NPN, ginamit ko ang S9013 dahil nakuha ko ito mula sa dating proyekto), at ilang risistor upang limitahan ang kasalukuyang. Upang magsimula, kilalanin muna ang kolektor, emitter at base ng transistor. Ang kaunting googling ng datasheet ay gagana para dito. Pagkatapos, solder ang kolektor ng transistor sa negatibong terminal ng buzzer. Sa positibong terminal ng buzzer, naghihinang lamang kami ng isang piraso ng kawad dito upang maaari naming itong maghinang sa aming Arduino sa paglaon. Pagkatapos nito, maghinang ang 500R (o anumang katulad na halaga ng risistor) risistor sa base ng transistor at mula sa risistor, maghinang ng isa pang piraso ng kawad para magamit sa hinaharap. Sa wakas, maghinang ang dalawang 10R risistor sa serye sa emitter ng transistor at ikonekta ang isa pang kawad mula sa resistors.

Talagang, sumangguni sa eskematiko.

p / s: Hindi ko pa talaga alam kung paano pumili ng risistor para sa transistor sa oras na pagsulat nito. Ang halagang ginamit ko ay napili ng empirically.

Hakbang 3: Paghahanda ng LED Panel

Paghahanda ng LED Panel
Paghahanda ng LED Panel
Paghahanda ng LED Panel
Paghahanda ng LED Panel
Paghahanda ng LED Panel
Paghahanda ng LED Panel

I-plug ang mga LED at risistor sa prototyping board nang naaayon at maghinang. Ayan yun. Sundin ang eskematiko. Kung sakaling interesado ka sa spacing na ginamit ko, 3 butas ang pagitan para sa bawat haligi, at dalawang butas ang pagitan para sa bawat hilera (sumangguni sa larawan). At ang tagapagpahiwatig na LED? Sinaksak ko ito ng sapalaran.

Matapos ang paghihinang ng mga LED at risistor sa board, ikonekta ang lahat ng mga positibong terminal ng mga LED nang magkasama. Pagkatapos, isa-isang ang mga wire ng panghinang sa bawat isa sa risistor sa mga negatibong terminal ng mga LED upang maaari nating solder ang mga ito sa Arduino sa paglaon.

TANDAAN: Maaari kang malito sa hakbang na ito. Tandaan sa halip na ikonekta ang lahat ng lupa, magkokonekta kami ng lahat ng positibong terminal nang magkasama at negatibong terminal sa indibidwal na pin sa Arduino. Sa gayon ginagamit namin ang Arduino GPIO pin bilang ground, hindi Vcc. Kung sakali kung hindi mo sinasadyang maiugnay ito nang paatras, huwag mag-alala. Maaari mong baguhin ang lahat ng TAAS sa mababa at mababa sa mataas sa paggana ng ledcontrol.

Hakbang 4: Inihahanda ang Paglipat (pushbutton Talaga)

Inihahanda ang Paglipat (pushbutton Talaga)
Inihahanda ang Paglipat (pushbutton Talaga)
Inihahanda ang Paglipat (pushbutton Talaga)
Inihahanda ang Paglipat (pushbutton Talaga)
Inihahanda ang Paglipat (pushbutton Talaga)
Inihahanda ang Paglipat (pushbutton Talaga)

Para sa switch (tatawagin ko itong switch dahil gumamit ako ng micro-switch, ngunit alam mong pushbutton ito), kailangan namin ng isang 4k7 pull-down na risistor at syempre, ang switch mismo. Ah, huwag kalimutang maghanda ng ilang mga wire. Magsimula sa pamamagitan ng paghihinang ng risistor at isang piraso ng kawad sa karaniwang lupa (COM) ng micro-switch. Pagkatapos, maghinang ng isa pang piraso ng kawad sa karaniwang binuksan (HINDI) ng micro-switch. Panghuli, maglakip ng isa pang kawad sa risistor. I-secure ito sa ilang mainit na pandikit.

Sulok ng kaalaman: Bakit kailangan natin ng isang pull-down risistor?

"Kung ididiskonekta mo ang digital I / O pin mula sa lahat, ang LED ay maaaring kumurap nang hindi wasto. Ito ay dahil ang input ay" lumulutang "- iyon ay, random na babalik alinman sa TAAS o Mababa. Iyon ang dahilan kung bakit kailangan mo ng isang pull-up o pull-down risistor sa circuit. " - Pinagmulan: Arduino webisite

Hakbang 5: Paghahanda ng LED Strip

Paghahanda ng LED Strip
Paghahanda ng LED Strip
Paghahanda ng LED Strip
Paghahanda ng LED Strip

Ang LED strip ay para sa lampara sa gilid ng kama, na opsyonal. Ikonekta lamang ang LED strip at slide switch nang magkasama sa serye, walang espesyal.

Hakbang 6: Paghahanda ng Capacitance Sensor

Paghahanda ng Capacitance Sensor
Paghahanda ng Capacitance Sensor
Paghahanda ng Capacitance Sensor
Paghahanda ng Capacitance Sensor
Paghahanda ng Capacitance Sensor
Paghahanda ng Capacitance Sensor
Paghahanda ng Capacitance Sensor
Paghahanda ng Capacitance Sensor

Ok sumangguni sa larawan. Karaniwan ay ilalagay lamang namin ang kawad sa isang maliit na piraso ng aluminyo palara (dahil ang aluminyo palara ay hindi maaaring solder) pagkatapos ay i-tape ito sa isang maliit na piraso ng mounting board. Mabait na paalala, tiyaking hindi mo ganap na nai-tape ang aluminyo foil. Iwanan ang ilan dito para sa direktang pakikipag-ugnay.

Hakbang 7: Paghahanda ng Power Supply

Paghahanda ng Power Supply
Paghahanda ng Power Supply
Paghahanda ng Power Supply
Paghahanda ng Power Supply
Paghahanda ng Power Supply
Paghahanda ng Power Supply

Dahil gumamit ako ng li-on na baterya bilang supply ng kuryente, kailangan ko ng isang module na TP4056 para sa pagsingil at proteksyon, at isang boost converter upang mai-convert ang boltahe sa 9v. Kung nagpasya kang gumamit ng 9V wall adapter, maaaring kailanganin mo ang isang DC jack, o direkta lamang itong ikonekta. Tandaan na ang halaga ng risistor para sa amplifier ay disenyo para sa 9V at kung nais mong gumamit ng iba pang boltahe, maaaring kailanganin mong baguhin ang risistor.

Hakbang 8: Pagkonekta sa kanila sa Arduino

Pagkonekta sa kanila sa Arduino
Pagkonekta sa kanila sa Arduino
Pagkonekta sa Kanila sa Arduino
Pagkonekta sa Kanila sa Arduino
Pagkonekta sa Kanila sa Arduino
Pagkonekta sa Kanila sa Arduino

Sundin ang eskematiko! Sundin ang eskematiko! Sundin ang eskematiko!

Huwag ikonekta ang maling pin o ang mga bagay ay magiging kakaiba.

Hakbang 9: Enclosure

Enclosure
Enclosure
Enclosure
Enclosure
Enclosure
Enclosure
Enclosure
Enclosure

Ang sukat ng aking disenyo ay 6.5cm * 6.5cm * 8cm, kaya't medyo malaki ito Ito ay binubuo ng isang front window para sa LED display at tuktok na bintana para sa lampara sa tabi ng kama. Para sa aking disenyo, mag-refer sa mga larawan.

Hakbang 10: Oras ng Programming

Image
Image
Oras ng Programming!
Oras ng Programming!

I-download ang aking sketch sa ibaba at i-upload sa iyong Arduino. Kung hindi mo alam kung paano ito gawin, huwag mag-abala na gawin ang proyektong ito! Nakakatawa lang, narito ang isang mahusay na tutorial dito: Mag-upload ng sketch sa arduino

Pagkatapos buksan ang serial monitor, at dapat mong makita ang output nito sa kasalukuyang oras. Upang maitakda ang oras, narito kung paano ito gawin.

Upang itakda ang oras: h, XX - kung saan ang xx ay ang kasalukuyang oras

Upang magtakda ng minuto: min, XX - xx ang kasalukuyang minuto

Upang maitakda ang pangalawa: s, XX

Upang itakda ang petsa: d, XX

Upang itakda ang buwan: mon, XX

Kapag ang komentong nasa itaas ay naisakatuparan, dapat itong ibalik sa iyo ang halagang itinakda mo lamang. (Halimbawa kapag nagtakda ka ng oras na may h, 15, dapat itong ibalik ang Oras: 15 sa serial monitor.

Para sa capacitance sensor, maaaring kailanganin mong i-calibrate ito bago ito gumana. Upang magawa ito, pindutin ang micro-switch nang dalawang beses, at tingnan ang serial monitor. Dapat itong maglabas ng isang bungkos ng numero. Ngayon ilagay ang iyong daliri sa capacitance sensor, at tingnan ang tala ng saklaw ng numero. Susunod, baguhin ang variable na "captrigger". Sabihin nating nakakuha ka ng 20-30 kapag pinindot, pagkatapos ay itakda ang captrigger sa 20.

Gumamit ang sketch ng ADCTouch library, tiyaking na-install mo ito.

Hakbang 11: Pagwawasto sa Mekanismo

Ang tagal ng oras para sa mekanismo ng pagwawasto sa aking code ay nakatakda sa isa na tumpak para sa akin. Kung ang oras ay hindi pa rin tumpak, kailangan mong baguhin ang halaga ng variable na "corrdur"

Ang corrdur ngayon ay default sa 0 sa pinakabagong pag-update.

Ang halaga ng corrdur ay nangangahulugang kung gaano karaming milliseconds ang kinakailangan upang mabagal ang isang segundo

Upang malaman ang halaga ng corrdur, gamitin ang formula:

2000 / (y-x) / x)

kung saan x = tunay na tagal ng oras na lumipas at y = tagal ng oras na lumipas ng orasan, pareho sa pangalawa

Upang mahanap ang halaga ng x at y, kailangan mong gumawa ng kaunting eksperimento.

Itakda ang oras ng orasan sa aktwal na oras at itala ang paunang oras (ang aktwal na paunang oras at orasan ng paunang oras ay dapat na pareho). Pagkatapos ng ilang sandali (ilang oras), itala ang pangwakas na aktwal na oras at huling oras ng orasan.

x = tunay na huling oras-paunang oras at y = orasan huling oras-paunang oras

Pagkatapos ay baguhin ang halaga ng corrdur sa code at muling mag-upload sa Arduino.

Pagkatapos ulitin ang pagsubok at sa oras na ito ang formula ay nabago sa:

2000 / ((2 / z) + (y-x / x))

Kung saan ang x at y ay parehong bagay tulad ng dati, habang ang z ay ang kasalukuyang halaga ng corrdur.

I-upload muli at gawin ang pagsubok nang paulit-ulit hanggang sa ito ay tumpak na sapat para sa iyo.

Sa kaso kung ang iyong orasan ay nagpapabilis pa rin kahit na ang corrdur ay nakatakda sa 0 (nangangahulugang walang mekanismo ng pagwawasto), kailangan mong palitan ang pangalawang ++ sa pangalawang - sa bahagi ng pagwawasto ng mekanismo ng code (binigyan ko ito ng puna), itakda ang corrdur sa 0, pagkatapos hanapin ang hindi. ng millisecond aabutin upang mapabilis ang isang segundo.

Hakbang 12: Paano Gumamit ng Lahat ng Mga Pag-andar

Image
Image

Maaari mong baguhin ang mode sa pamamagitan ng pagpindot sa micro-switch.

Sa unang mode, nagpapakita lamang ito ng oras. Kung ang ilaw ng tagapagpahiwatig ay nag-flash sa 1 oras bawat segundo, patay ang alarma. Kung 2 beses bawat segundo, nakabukas ang alarma. Maaari mong i-snooze ang alarma sa loob ng 10 minuto sa unang mode sa pamamagitan ng pagpindot sa capacitance sensor.

Sa pangalawang mode, ipinapakita ang petsa. Walang ginagawa ang pagpindot sa capacitance sensor.

Sa pangatlong mode, maaari mong itakda ang timer. Ang pagpindot sa capacitance sensor ay magpapasara sa timer at dapat mong makita ang ilaw ng tagapagpahiwatig na nagsimulang mag-flashing. Ginagamit din ang sensor ng capacitance upang itakda ang oras ng timer. Ang saklaw ng timer ay 1 minuto hanggang 59 minuto.

Sa ika-apat na mode, maaari mong itakda ang oras ng alarma gamit ang capacitance sensor

Sa ikalimang mode, maaari mong itakda ang minuto ng alarma gamit ang capacitance sensor.

Sa ikaanim na mode, ang pagpindot sa capacitance sensor ay magre-reset minuto hanggang 30 at pangalawa sa 0 nang hindi binabago ang oras. Iyon ay nangangahulugang hangga't ang iyong orasan ay hindi naaanod sa loob ng 30 minuto, maaari mo itong mai-calibrate muli gamit ang mode na ito.

Ang ikapitong mode ay ang mode na walang gawin kung sakaling mag-glitch ang capacitance sensor kapag nagcha-charge.

Oh, upang maalis ang alarma, pindutin lamang ang micro-switch. (Pinakabagong UPDATE UPANG KASAMA ANG ALARM SNOOZE)

Kaya, kumusta ang pagbabasa ng orasan? Madali lang! Pagbabasa ng Binary Clock - Wikihow Maaari kang makaramdam ng kakaiba sa una, ngunit masasanay ka rito!

Hakbang 13: Konklusyon

Konklusyon
Konklusyon
Konklusyon
Konklusyon

Bakit ko sinimulan ang proyektong ito. Sa una ito ay dahil mayroon akong isang lumang digital na relo na nakahiga at nais kong gawing isang alarm clock. Sa kasamaang palad ang dating relo ay nasira na. Kaya't ako ay tulad ng bakit hindi bumuo ng isa gamit ang Arduino? Sa kaunting paghahanap sa google, nahanap ko ang proyektong ito ng binary na walang RTC na itinuturo ng Cello62. Gayunpaman, wala itong tampok na alarm clock na gusto ko, kaya kinukuha ko ang code at binago ko ito sa aking sarili. At ipinanganak ang proyekto. Bukod dito, nakita ko ang paligsahan sa orasan na tumatakbo sa itinuro kamakailan na nagbigay sa akin ng higit na pagganyak na gawin ito. Gayunpaman, ito pa rin ang aking unang proyekto gamit ang Arduino, kaya maraming mga posibleng pagpapabuti.

Pagpapabuti sa hinaharap:

1) Gumamit ng RTC

2) Itakda ang alarma o oras o timer nang wireless!

3) Anumang tampok na naiisip ko

Hakbang 14: Update: Pagkatapos ng Isang Linggong Paggamit

Update: Pagkatapos ng Isang Linggong Paggamit
Update: Pagkatapos ng Isang Linggong Paggamit
Update: Pagkatapos ng Isang Linggong Paggamit
Update: Pagkatapos ng Isang Linggong Paggamit
Update: Pagkatapos ng Isang Linggong Paggamit
Update: Pagkatapos ng Isang Linggong Paggamit

Bukod sa halatang problema - oras naaanod, ang susunod na sasabihin ko ay ang pagkonsumo ng kuryente. Una sa lahat, nilalakad ko ang boltahe hanggang sa 9v, na pagkatapos ay maaalis ng linear regulator sa Arduino. Ang linear regulator ay napaka-episyente. Ang orasan ay tatagal lamang sa ISANG ARAW. Iyon ay nangangahulugang kailangan kong i-recharge ito araw-araw. Hindi iyon ang pinakamalaking pakikitungo hanggang sa mapagtanto mo na ang buong sistema ay tungkol lamang sa 50% na mahusay. Dahil sa ang aking baterya ay 2000mAh, makakalkula ko ang nasayang na lakas araw-araw.

Nasayang ang lakas = (7.4Wh * 10%) + (7.4Wh * 90% * 50%) = 4.07Wh sa isang araw

Iyon ay 1.486kWh bawat taon! Maaari itong magamit upang pakuluan, uh, 283g ng tubig (mula 25 C hanggang 100 C)? Ngunit gayon pa man, pagbutihin ko ang kahusayan ng orasan. Ang paraan upang magawa ito ay hindi gamitin ang linear regulator. Nangangahulugan iyon na kailangan naming ayusin ang boost converter upang mag-output ng 5V nang direkta sa 5V pin sa Arduino. Susunod, upang mai-minimize ang lakas na nasayang pa, kailangan kong alisin ang dalawa sa board LED (pin13 at lakas), dahil masasayang ang 0.95Wh bawat araw. Sa kasamaang palad, ako ay ganap na noob sa SMD soldering kaya ang tanging paraan para magawa ko ito ay ang pagputol ng riles sa board. Pagkatapos nito, kailangan kong alisin ang risistor ng emitter sa buzzer at ang lampara sa kama (hindi gagana ang LED strip sa 5V). Ngunit nangangahulugang kailangan mong talikuran ang kamangha-manghang tampok na iyon? Hindi! Mayroon kang dalawang pagpipilian dito: Gumamit ng normal na 5mm LED diode, o gumamit ng 5V LED strip. Ngunit para sa akin, nakaramdam ako ng pagod sa paggawa ng proyektong ito sa buong nakaraang linggo, kaya't nagpasya akong talikuran ang tampok na ito. Gayunpaman, ginamit ko ang switch nang orihinal para sa tampok na ilaw para sa paglipat o pag-off sa panel ng orasan upang higit na makatipid ng enerhiya, ngunit natapos ang LED flashing kapag pinatay ko ito. Naging tampok ang bug? Hindi ko alam (Kahit sino malaman mangyaring sabihin sa akin sa ibaba).

Sa pagtatapos ng pagbabago, ang orasan ay tatagal ng higit sa 2 araw!

Susunod na mayroon akong isang hindi gaanong seryosong problema sa oras. Sa panahon ng pagsingil, ang capacitance sensor ay mababaliw, kaya nagdagdag ako ng isa pang mode na wala talagang ginagawa.

Tulad ng para sa oras na naaanod, dahil napakahirap mag-plug in sa computer araw-araw upang i-reset ito, nagdagdag ako ng isa pang mode na magtatakda ng minuto hanggang 30 at pangalawa sa 0. Iyon ay nangangahulugang maaari mong i-reset ito sa kalahating pasado anumang oras!

Inirerekumendang: