Talaan ng mga Nilalaman:

LED Clock Gamit ang Neopixels: 4 Hakbang (na may Mga Larawan)
LED Clock Gamit ang Neopixels: 4 Hakbang (na may Mga Larawan)

Video: LED Clock Gamit ang Neopixels: 4 Hakbang (na may Mga Larawan)

Video: LED Clock Gamit ang Neopixels: 4 Hakbang (na may Mga Larawan)
Video: Arduino MASTERCLASS | Full Programming Workshop in 90 Minutes! 2024, Hulyo
Anonim
LED Clock Gamit ang Neopixels
LED Clock Gamit ang Neopixels
LED Clock Gamit ang Neopixels
LED Clock Gamit ang Neopixels
LED Clock Gamit ang Neopixels
LED Clock Gamit ang Neopixels
LED Clock Gamit ang Neopixels
LED Clock Gamit ang Neopixels

Maligayang pagdating sa aking itinuturo sa kung paano gumawa ng isang LED na orasan gamit ang 60 Neopixels.

Mahahanap mo ang isang naka-attach na isang PDF ay para sa mga segment ng orasan, ang isa pa ay para sa base at panghuli ang isa ay isang template na makakatulong sa pagdikit ng mga seksyon nang magkasama.

Kaya upang makumpleto ito kakailanganin mo ang mga sumusunod

  • Ang singsing na 60 neopixels ay nasa 4 na quarters. hanapin ang "ws2812 ring 60" (£ 12.00)
  • Paghahanap ng RTC para sa "module na DS3231" (£ 2.50)
  • Arduino Nano (£ 4)
  • 3mm / 1/8 "playwud.
  • mga piraso ng kawad. sana ay mayroon ka sa paligid?
  • 5v USB power supply unit. Ang uri ng iyong mga anak ay nawasak ang konektor sa.

Nasa ibaba ang mga item na pinalakas ng baterya ng Lipo ngunit pagkatapos ng pagsubok, ang orasan ay natupok ng sobrang lakas kaya ang baterya ay nahulog pabor sa isang pangunahing USB PSU.

  • dc-dc converter paghahanap na "boost converter" (£ 3)
  • Nagcha-charge circuit TP4056 paghahanap "tp4056" (£ 2)
  • LiPo 1000Mah solong cell. hanapin ang "1000mah lipo 3.7" O "503450 lipo" (£ 8.00)

Ang numero ng LiPo ay 503450 at maaaring masarap malaman na nangangahulugan ito ng 50mm ang haba 34mm ang lapad at 5.0 ang lalim.

Hakbang 1: Ang Mga Wood Bits

Ang Mga Bits na Kahoy
Ang Mga Bits na Kahoy
Ang Mga Bits na Kahoy
Ang Mga Bits na Kahoy
Ang Mga Bits na Kahoy
Ang Mga Bits na Kahoy

Dapat mong makita sa mga larawan na nai-print ko ang disenyo at naipit din ito sa playwud. Ang hindi maaaring maging halata ay pinutol ko ang 3 mga seksyon nang sabay-sabay at ang ilalim na seksyon ay pinutol muna sa paligid ng perimeter, pagkatapos ay ang isang seksyon ay tinanggal (mula sa likuran) pagkatapos ang butas ay pinutol sa natitirang dalawang seksyon pagkatapos ng isa pang seksyon tinanggal na iniiwan ang natitira lamang sa unahan at ang puwang para sa mga wire ay naputol.

Kapag ang lahat ng mga piraso ay na-cut out dapat mo munang suriin kung paano sila magkasya magkasama pagkatapos ay idikit ang lahat. itinayo ko ang 3 mga layer sa tuktok ng isang plano ng orasan upang matiyak na ang lahat ay wastong pabilog. Tiyaking nakukuha mo rin ang mga ibabang piraso sa tamang oryentasyon at ang kumpletong gitnang hiwa ay naka-mount baligtad upang mahulog mo ang mga kasukasuan.

Pinapayagan ng mga butas sa harap na mga seksyon na makaupo ang mga solder na magkasanib na tirahan at pinapayagan ng mas mababang seksyon na dumaan ang mga wire.

Ipinapakita rin ng serye ng mga larawan kung paano pinagsama ang base.

Hakbang 2: Mga kable sa LED Ring

Kable ng LED Ring
Kable ng LED Ring
Kable ng LED Ring
Kable ng LED Ring
Kable ng LED Ring
Kable ng LED Ring
Kable ng LED Ring
Kable ng LED Ring

Hindi maraming sasabihin tungkol sa hakbang na ito, ngunit kung sakaling hindi mo pa nagamit ang isang strip ng WS2812LED sila ay matalino kaya't ang bawat isa ay mayroong isang data sa loob at labas. Sa mga arko ng 15 LED's, hinahawakan ng PCB ang lahat ng mga koneksyon ngunit kapag sumali ka sa mga seksyon kailangan mong gawin ang mga koneksyon sa kuryente at data. Hindi mo maaaring makuha ang mga koneksyon na mali dahil ang mga ito ay nasa isang bilog subalit kapag natapos mo ang bilog dapat kang magkaroon ng isang link na nawawala sa data na IN / OUT upang payagan kang ikonekta ang mga wires sa data na IN. Kung saan ang mga wire ay kumonekta sa data SA ay magiging unang LED o dahil ito ay tama na may bilang na ZERO.

Nagtataka ako kung paano ang pinakamahusay na paraan upang ayusin ang singsing ng LED sa singsing na kahoy? ngunit sa huli nagpasya akong gamitin ang looming cord at pag-isahin sa paligid ng paligid ng paglaktaw ng isang LED sa bawat oras.

Hakbang 3: Pag-kable ng Arduino Nano at Lakas

Kable ng Arduino Nano at Lakas
Kable ng Arduino Nano at Lakas
Kable ng Arduino Nano at Lakas
Kable ng Arduino Nano at Lakas
Kable ng Arduino Nano at Lakas
Kable ng Arduino Nano at Lakas

Una akong nagpasya na gumamit ng isang LiPo sa proyektong ito ngunit nang subukan ko ito ang baterya ay pinatuyo sa magdamag. Sa una akala ko ang baterya ay maaaring maging duff kaya sinukat ko ang kasalukuyang at natuklasan ang circuit ay pagguhit ng 73mA na nangangahulugang sa baterya ay magiging higit pa. Sa katunayan sinukat ko ang kasalukuyang sa baterya (bago ang boost converter) at natuklasan na higit sa 110mA. Kaya't maliwanag na ang orasan na ito ay hindi tatakbo sa isang baterya.

Kaya sa halip pipiliin kong gumamit ng isang 5V USB charger. May posibilidad akong magkaroon ng maraming mga patay na USB charger sa paligid dahil sa mga konektor na nakakakuha ng pang-aabuso mula sa dalawang maliliit na bata.

Kaya dahil gumagamit kami ng WS2812 LED mayroon lamang kaming 3 koneksyon sa Arduino Nano.

  • Lakas
  • Lupa
  • Data SA. Orange sa D2 sa Nano

Susunod na mayroon kaming RTC mayroon lamang itong 4 na mga wire.

  • Power 5 Volts
  • Lupa
  • SCL (I2C Clock) Blue hanggang A5 sa Nano
  • SDA (I2C Data) Dilaw hanggang A4 sa Nano

Panghuli kailangan namin ng lakas at pupunta ito sa terminal ng power 5 V sa Nano.. ang Vin ay idinisenyo upang magkaroon ng boltahe na mas malaki sa 5 volts (ie 7-12 Volts) at sa lupa.

Hakbang 4: Ang Programa

Masisiyahan ako sa pag-program, hindi lang ako mahusay dito.

Suliranin 1

Ang mga segundo at minuto ay tamang ipinakita bilang isang numero mula 0-59. Gayunpaman ang unang LED at samakatuwid ang zero ay nasa ilalim. Kaya't kailangan itong maitama.

walang bisa correctPos (int A)

{kung (A 30) {A = A - 31; }} temp = A; }

Suliranin 2

Sinubukan kong limasin ang lahat ng mga LED bago ipakita ang bagong posisyon subalit naging sanhi ito upang kumurap ang mga LED. Kaya't nagpasya akong itakda ang susunod na LED at pagkatapos ay i-off ang nakaraang. Naging maayos ito ?? NOPE dahil kung ang bagong posisyon ay zero ito ay susubukan at patayin ang -1. kaya't hinarap iyon nang sabay.

walang bisa ang pag-deletePrevious (int B)

// tanggalin ang dating pinangunahan, kung ito ay zero pagkatapos // patayin ang 59 iba pa lamang ibawas ang 1 // at i-off ang isa. {if (B == 0) {strip.setPixelColor (59, 0, 0, 0); // All off} else {strip.setPixelColor (B - 1, 0, 0, 0); // all off}}

Suliranin 3

Ang paggawa sa itaas ay gumana nang maayos hanggang sa ang bagong pangalawang posisyon ay nasa lugar ng lumang minuto. Na nangangahulugang ang minutong na-update pagkatapos ng mga segundo ay naka-off ito! Pareho sa oras / minuto din

kung (secs == mins-1)

{strip.setPixelColor (min-1, 0, 30, 0); }

Suliranin 4

Nagsisimulang magmukhang mabuti ang mga bagay kaya't paghaluin natin ang mga kulay kapag nahulog sila sa parehong posisyon?

kung (mins == seg)

{strip.setPixelColor (min, 15, 13, 0); // berde at pula upang maging dilaw. }

Suliranin 5

Ang mga oras ay nagsisimula bilang 24 na oras na format. kaya kailangan muna nitong itama

kung (oras> 12)

{oras = oras -12; }

Suliranin 6

At hayaan kalimutan may mga 24 na oras sa isang araw at mayroon akong 60 LED's. Madali talagang beses ito sa pamamagitan ng 5

oras = oras * 5;

Suliranin 7

Sa tapos na sa itaas mayroon na tayong oras na paglukso sa 4 na LED mas maganda ang hitsura nito kung ginamit nito ang lahat ng mga LED at wastong ipinakita ang mga praksyon ng isang oras? Muli ito ay isang madaling pag-aayos idinagdag ko lamang ang orihinal na numero ng minuto na hinati sa 12 sa mga oras.

oras = oras + (addMin / 12);

Suliranin 8

Kapag ang oras o minuto na humantong ay nasa ilalim ng segundo nawala para sa isang segundo bago.

oras = kung (min == 0)

{if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // green}} kung (oras == 0) {if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // green}}

Suliranin 9

Pagtatakda ng oras. Napagpasyahan kong panatilihing simple ang pagbuo na ito kaya hindi nagsama ng mga pindutan upang ayusin ang oras. Kaya't isang bagay lamang sa pagkonekta ng orasan sa iyong computer at paglo-load ng isang bagong oras. I-komento lamang ang seksyon sa ibaba at itakda ang iyong kinakailangang oras pagkatapos i-load ang programa. Sa sandaling itama ang muling puna sa linya at muling ipadala ang programa, kung hindi man mawalan ka ng kuryente ay muling tatakbo ang pag-setup at muling mai-load ang dating oras.

// Abril 12, 2020 ng 11:20 pm tatawag ka:

//rtc.adjust(DateTime(2020, 4, 12, 23, 20, 0));

Inirerekumendang: