» Electronics » Arduino »Pinangunahan ang Matrix sa WS2812

Pinangunahan ang Matrix sa WS2812

Pinangunahan ang Matrix sa WS2812

Magandang hapon, nais kong ibahagi ang isa pa gawang bahay. Sa pagkakataong ito ay nagpasya akong sumulat ng mga tagubilin para sa paggawa ng Led matrix. Ang laki ay maliit na 10x10 diode. Ngunit ayon sa tagubiling ito, posible na gumawa ng mga matris at malalaking sukat. Para sa kagandahang idinagdag backlight. Ang batayan ay kinuha ng WS2812 na maaaring tugunan na mga LED na naka-mount sa isang tape sa 60 diode bawat metro. Pamamahalaan namin sila Arduino Pro Mini. Mayroong maraming mga pagpipilian para sa paggamit ng matrix. Halimbawa, nagdagdag ako ng sensor ng temperatura at isinulat ang firmware ng orasan nang walang RTC.

Kakailanganin namin:
- WS2812 tape na may 120 LEDs, 60 piraso bawat metro
-
- Ang power supply para sa 5V 1A
- sensor sensor ng ds18b20
- Resistor 4.7 Kom 0.25 W
- Makapal ang chipboard na 10 mm
- Matte o "Gatas" na plastik
- Makapal na karton
- de-koryenteng tape
- pagkonekta ng mga wire
- circuit board
- Mga pindutan
- Mga self-tapping screws 19 mm
- paghihinang bakal
- Solder, rosin
- Double-panig na tape
- USB-TTL
- Drill o distornilyador
- Ang electric fret saw
- Mga drills para sa kahoy

Hakbang 1 Paghahanda ng Diode
Kumuha kami ng isang siksik na karton at "lined" ito, iyon ay, gumuhit kami ng mga pahalang na linya na may distansya sa pagitan ng mga 16 mm. Nagbibilang kami ng 100 diode mula sa aming tape. Ang 100 mode na diode na ito sa mga segment ng 10 diode. Ang natitirang 20 ay pinutol ng isang diode. Dapat itong gawin nang maingat at mahigpit na kasama ang mga linya ng paggupit. Hayaan akong ipaliwanag: 10 mga segment ng 10 diode kabuuang 100 ang kinakailangan para sa matrix, ang natitirang 20 ay backlit. Ang mga seksyon ng 10 diode ay nakadikit sa karton kasama ang mga linya. Bigyang-pansin ang direksyon ng control signal para sa mga diode! Ang control signal ay dapat ibigay sa tamang direksyon, para sa layuning ito ang arrow ay ipinapakita sa direksyon ng tape. I-paste ang unang strip mula sa kaliwa hanggang kanan, iyon ay, IN (input) sa tape ay dapat sa kaliwa, at OUT (sa kanan). Kaya, ang IN (input) ng unang strip ay dapat na nasa itaas na kaliwang sulok! I-paste ang susunod na strip sa kabaligtaran, mula sa kanan - sa kaliwa. Ang pangatlo muli mula kaliwa hanggang kanan. Sa gayon pa. Kapag sinusunod ang direksyon ng control signal, dapat tayong makakuha ng isang linya ng zigzag, na nagsisimula sa itaas na kaliwang sulok. Ang pangunahing bagay ay hindi malito ang anupaman.

Sa pagitan ng una at pangalawang guhit, na malapit sa simula, ay gumagawa ng isang butas para sa mga wire. Itala ang mga wire sa unang strip, mas mabuti ang maraming kulay, upang hindi makihalubilo. Ipinapasa namin sila sa butas na ginawa. Susunod, ang nagbebenta ng aming mga guhitan na may maikling mga wire. + 5 mula sa unang lukab hanggang sa 5 sa pangalawa. GND sa GND. Mula sa labas ng unang guhit hanggang sa IN ng pangalawang guhit, mula sa labas ng pangalawang guhit hanggang sa IN ng pangatlo, at iba pa. Ang resulta ay dapat na sumusunod:


Hakbang 2 Ginagawa ang kaso.
Ang kaso ay binubuo ng tatlong bahagi. Una, kailangan mong i-cut ang frame mula sa chipboard 10 mm makapal. Pinakamainam na i-cut gamit ang isang jigsaw, ngunit sa kawalan maaari itong manu-manong makunan. Ang gilid ng panlabas na parisukat ay 190 mm.Panloob - 170 mm. Para sa kagandahan, mas mahusay na bilugan ang mga sulok. Kaya, ang isang frame na may sukat na 190 x 190 mm at isang kapal ng pader na 10 mm ay dapat makuha. Pagkatapos ng pagputol, linisin namin ng pinong papel de liha.


Nagpapatuloy kami sa paggawa ng pangalawang bahagi. Ikinakabit namin ang aming frame sa sheet ng chipboard at gumuhit ng isang lapis sa paligid ng panlabas na gilid. Inalis namin ang frame. Umatras kami ng 30 mm sa bawat panig papunta sa loob ng square at gumuhit ng isang panloob na parisukat. Dapat kang makakuha ng isa pang frame na sumusukat sa 190 x 190, ngunit may isang kapal ng gilid na 30 mm. Sa layo na 5 mm mula sa panlabas na gilid ng frame na ito, at sa pantay na distansya mula sa bawat isa, gumawa kami ng mga butas na may diameter na 3 mm. 2 butas sa bawat panig. Kinakailangan sila para sa mga turnilyo. Kailangan mo ring magpasya kung saan ang tuktok, at sa itaas na kaliwang sulok ng panloob na parisukat, gumawa ng isang puwang para sa mga wire.


Sa reverse side ng pangalawang frame, kasama ang perimeter ng panloob na bahagi, kinakailangan upang i-screw ang mga segment mula sa parehong chipboard na 10 mm makapal. Ang resulta ay dapat magmukhang ganito:


Pumunta sa kapulungan. Inilalagay namin ang pangalawang frame sa mesa. Nangunguna, mag-diode up, maglagay ng isang kahon ng karton na may mga diode. At takpan namin ang lahat ng ito sa unang frame. Ilagay ang karton sa pagitan ng mga frame upang ang mga diode ay tumatakbo kahanay sa mga gilid ng frame at sa pantay na distansya mula sa mga gilid. Pinihit namin ito nang buong, nang maingat upang hindi matumba ang mga diode, at i-twist ito nang lahat. Pagkatapos nito, pinutol namin ang labis na karton.


Pumunta sa backlight. Sa gilid ng mga diode, sa pagitan ng penultimate at huling strip, mas malapit sa kaliwang gilid, kailangan mong mag-drill ng isang butas para sa mga wire. Itala ang mga wires hanggang sa dulo ng huling guhit at i-thread ang mga wires sa pamamagitan ng butas. Ang natitira at gupitin nang paisa-isa 20 mga diode ay dapat na nakadikit sa likuran, sa pantay na distansya mula sa bawat isa. 5 piraso sa bawat panig. Ang direksyon ng signal signal ay ang bawat oras na kamay na nagsisimula mula sa ibabang kanang sulok. Ibinebenta namin ang mga ito pati na rin ang matrix. Ang mga hinangang wire mula sa dulo ng matrix ay ibinebenta sa unang diode. + 5 mula sa unang diode hanggang sa +5 ng pangalawa. GND sa GND. Mula sa labas ng unang diode hanggang IN ng pangalawa, mula sa OUT ng pangalawa hanggang IN sa ikatlo, at iba pa.

Inilalagay namin ang aming Arduino Pro Mini sa loob ng likuran ng frame, sa likod ng matrix. Para sa kapangyarihan gumamit ng isang nagpapatatag na 5 boltahe ng suplay ng kuryente. Sa isang kasalukuyang lakas ng hindi bababa sa 1 Ampere. Ang mga diode ay medyo masigla at kung plano mong i-on ang lahat sa kanila at sa loob ng mahabang panahon, ang power supply ay kinakailangan ng mas malakas, inirerekumenda ko ang 1.5 - 2 amperes. Ikinonekta namin ang lahat ng ito mula sa +5 supply ng kuryente sa +5 Arduino at +5 WS2812. -5 supply ng kuryente sa GND Arduino at GND WS2812. Ang control wire mula sa IN WS2812 ay konektado sa "pin 6" Arduino.


Ang mga diode ay masyadong maliwanag, at hindi sila mukhang napaka aesthetically nakalulugod. Samakatuwid, kinakailangan upang gumawa at mag-install ng isang diffuser. Ang plastik na Matte ay pinakaangkop para sa ito, o bilang ito ay tinatawag na "gatas". Kinakailangan na ilakip ang matris sa plastik at bilog na may lapis. Pagkatapos ay i-cut at i-fasten sa double-sided tape sa front frame. Hindi laging posible na mabilis na makahanap ng ganoong plastik na mabilis, ngunit talagang nais kong simulan ang produkto. Sa kasong ito, maaari mong gamitin ang puting karton o papel na pang-landscape sa halip na plastic.


Sa pamamagitan ng parehong prinsipyo, posible na gumawa ng isang matris ng malalaking sukat. Kinakailangan lamang upang maikuwento ang mga sukat ng kaso.

Hakbang 3 Ikonekta ang sensor ng temperatura.
Ito ay lamang na ang relo na ito ay hindi kawili-wili, kaya magdagdag ng sensor ng temperatura dito. Upang masukat ang temperatura, gagamitin namin ang integrated sensor DS18B20. Ito ay may mataas na katumpakan ng pagsukat, ang pagkakamali ay hindi hihigit sa 0.5 ° C. Mula sa pabrika, ang sensor ay na-calibrate at hindi kinakailangan ang karagdagang mga setting. Malawak na pagsukat ng temperatura ng temperatura -55 ... + 125 ° C. Maaari itong magamit sa anumang silid. Kung sa kalye, pagkatapos ay kailangan mong mag-ingat ng proteksyon mula sa kahalumigmigan. Mayroong dalawang mga mode ng pagpapatakbo: na may isang panlabas na mapagkukunan ng kapangyarihan at "galit na galit na kapangyarihan". Inirerekumenda ko ang paggamit gamit ang panlabas na kapangyarihan.


Maraming mga sensor ay maaaring isama sa isang linya ng komunikasyon. Ngunit para sa amin, ang isa ay sapat. +5 kinuha namin mula sa power supply. GND hanggang -5. Wire mula sa pin "DQ" ds18b20 hanggang "pin 9" Arduino.Tandaan na maglagay ng isang pull-up risistor sa pagitan ng "DQ" at +5 sa 4.7 kOhm. Sa palagay ko, mas maginhawa na gawin ito sa sensor mismo. Ipinakita namin ito sa kanang kanang sulok:


Hakbang 4 Paghahanda ng isang board na may mga pindutan.
Sa kasong ito, ginagamit namin ang matrix bilang isang orasan. Ang oras ay maaaring itakda gamit ang serial port sa pamamagitan ng pagkonekta sa Arduino sa computer. Hindi ito laging maginhawa. Samakatuwid, gagawa kami ng isang board na may tatlong mga pindutan upang itakda ang oras. Bilang karagdagan sa ito, ang matrix ay maaaring magamit para sa iba pang mga layunin, magsulat lamang ng isa pang sketch. Pagkatapos ay maaaring magamit ang mga pindutan para sa iba pang mga layunin.


Ikinonekta namin ang mga ito tulad ng sumusunod: ikonekta ang wire na karaniwang sa lahat ng tatlong mga pindutan sa "GND" Arduino. Ang unang pindutan, nagsisilbi itong ipasok ang mode ng setting ng oras at lumipat sa oras at petsa, kumonekta sa "Pin 2". Ang pangalawa, ang pindutan para sa pagtaas ng halaga, ay ang "Pin 3", at ang pangatlo, ang pindutan para sa pagbawas ng halaga, ay ang "Pin 4". Ikinakabit namin ang mga pindutan sa double-sided tape sa likod ng matrix:


Hakbang 5 firmware.
Tulad ng sinabi ko, ang matrix ay maaaring magamit para sa iba't ibang mga layunin. Kasalukuyan akong nakasulat ng isang sketsa para sa mga relo lamang. Sa kasunod na pagtula at iba pang mga sketch. Para sa pagsulat at pagpuno ay gumagamit ako ng Arduino IDE 1.8.5. Maaari mong kontrolin ang matris sa maraming paraan. Kontrolin ang bawat diode nang paisa-isa o bilang isang solong matris. Sa aking sketch gumamit ako ng unang pagpipilian. Upang gawin ito, kailangan mo ng isang library mula sa Adafruit na tinawag na NeoPixel-master:
adafruit_neopixel-master.rar [27.83 Kb] (mga pag-download: 71)


Upang gumana sa mga diode tulad ng sa matrix matrix Adafruit_NeoMatrix-master at Adafruit-GFX-Library-master:
matrix_libraries.rar [282.01 Kb] (mga pag-download: 80)


Kailangan ng isang sensor ng temperatura ang library ng OneWire.
onewire.rar [16.75 Kb] (mga pag-download: 64)


Upang mai-edit at punan ang sketch, dapat mo munang i-install ang Arduino IDE mula sa opisyal na website ng Arduino.cc, at pagkatapos ang lahat ng mga aklatang ito. Kinakailangan upang ma-unzip ang mga archive na ito at ilagay ang mga na-unpack na file sa "library" folder na matatagpuan sa folder na may Arduino IDE na naka-install. Posible ring mag-install ng mga aklatan nang diretso sa Arduino IDE. Nang hindi ma-unpack ang nai-download na mga archive, sa Arduino IDE, piliin ang menu na Sketch - Connect Library. Sa tuktok ng listahan ng drop-down, piliin ang "Idagdag .Zip Library". Sa dialog na lilitaw, piliin ang library na nais mong idagdag. Matapos ang lahat ng mga pagmamanipula, dapat mong i-restart ang Arduino IDE.

Ang sensor ng temperatura ay may isang natatanging address para sa bawat aparato - isang 64-bit code. Ang paghahanap ng code na ito ay isang mahirap na gawain. Samakatuwid, dapat mo munang ikonekta ang sensor sa Arduino, punan ang sketch na matatagpuan sa File - Mga Halimbawa - Dallas temperatura - menu ng OneWireSearch. Susunod, patakbuhin ang Mga tool - Monitor ng Port. Dapat hanapin ng Arduino ang iyong sensor at isulat ang address nito. Kopyahin namin o isulat lamang ang address ng iyong sensor. Buksan ang sketch Ard_Tic_Tak_WS2812_Matrix_10x10_Serial_Knopki_Term, hanapin ang linya:

byte addr [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // address ng aking sensor 


Isinulat namin ang address ng iyong sensor sa pagitan ng mga tirante, pinapalitan ang address ng aking sensor.

Ang relo na ito ay hindi gumagamit ng module ng RTC. Samakatuwid, kung sila ay nagmamadali o nasa likuran, dapat mong baguhin ang halaga sa linya:

kung (micros () - prevmicros & gt; 494000) {// pagbabago sa iba pa para sa pagsasaayos ay 500,000


Upang matukoy ang bilang na kailangan mo ng empirically. Kung ang iyong relo ay nagmamadali, dapat mong dagdagan ang bilang na ito; kung ako sa likod, bawasan mo ito.

Punan ang sketch.


Humihingi ako ng paumanhin, ngunit hindi ako nagtagumpay sa pagkuha ng litrato kasama ang mga diode na naka-on. Sinubukan ko at walang mga ilaw. Ngunit tiniyak kong nabubuhay ka na mas mukhang mas mahusay sila.




0
0
0

Magdagdag ng isang puna

    • ngitinakangitixaxaok langhindi alamyahoonea
      bosskumamottangaoooo-ooagresibolihim
      sorrysayawsayaw2sayaw3kapatawarantumulonginumin
      humintomga kaibiganmabutigoodgoodsipolswoondila
      usokpumapalakpakkrayolaipahayagnakakainisdon-t_mentionpag-download
      initnakakainistumawa1mdapagpupulongnakikipag-usapnegatibo
      hindi_ipopcornparusahanbasahintakottakotpaghahanap
      panunuyasalamat_youitoto_clueumniktalamaksumang-ayon
      masamabeeeblack_eyeblum3namulamagyabanginip
      censoredkaaya-ayalihim2nagbabantatagumpayyusun_bespectacled
      shokrespektlolnagustuhanmaligayang pagdatingkrutoyya_za
      ya_dobryikatulongne_huliganne_othodimapusokpagbabawalmalapit

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...