» Elektronik » Arduino »Led Matrix pada WS2812

Led Matrix pada WS2812

Led Matrix pada WS2812

Selamat petang, saya ingin berkongsi yang lain buatan sendiri. Kali ini saya memutuskan untuk menulis arahan untuk pembuatan matriks Led. Saiz kecil 10x10 diod. Tetapi mengikut arahan ini, adalah mungkin untuk membuat matriks dan saiz besar. Untuk kecantikan, tambah lampu latar. Asas diambil oleh LED berwayar WS2812 yang dipasang pada pita di 60 diod per meter. Kami akan menguruskan mereka Arduino Pro Mini. Terdapat banyak pilihan untuk menggunakan matriks. Sebagai contoh, saya menambah sensor suhu dan menulis firmware jam tanpa RTC.

Kita perlukan:
- Pita WS2812 dengan 120 LED, 60 keping setiap meter
-
- Bekalan kuasa untuk 5V 1A
- Sensor suhu ds18b20
- Resistor 4.7 Kom 0.25 W
- papan serat 10 mm tebal
- Matte atau plastik "Susu"
- Kadbod yang tebal
- pita elektrik
- menyambung wayar
- papan litar
- Butang
- Skru sendiri mengetuk 19 mm
- besi pematerian
- Solder, rosin
- Pita bermuka dua
- USB-TTL
- Gerudi atau pemutar skru
- Electric fret saw
- Latihan untuk kayu

Langkah 1 Penyediaan Diod
Kami mengambil kadbod yang padat dan "berbaris", iaitu, kita menggambar garis mendatar dengan jarak di antara mereka 16 mm. Kami mengira 100 diod dari pita kami. Mod 100 mod ini menjadi segmen 10 diod. Baki 20 dipotong satu diod. Ini mesti dilakukan dengan teliti dan tegas di sepanjang garis potong. Katakan saya: 10 segmen 10 jumlah dioda 100 diperlukan untuk matriks, baki 20 adalah backlit. Bahagian 10 dioda terpaku pada kadbod sepanjang garis. Perhatikan arah isyarat kawalan untuk diod! Isyarat kawalan harus dibekalkan ke arah yang betul, untuk tujuan ini anak panah ditunjukkan pada arah pita. Gali jalur pertama dari kiri ke kanan, iaitu, IN (input) pada pita harus di sebelah kiri, dan OUT (di sebelah kanan). Oleh itu, IN (input) jalur pertama sepatutnya berada di sudut kiri atas! Lekatkan jalur seterusnya sebaliknya, dari kanan - ke kiri. Yang ketiga lagi dari kiri ke kanan. Jadi lebih jauh lagi. Apabila mengikuti arah isyarat kawalan, kita perlu mendapatkan garis zigzag, bermula dari sudut kiri atas. Perkara utama bukan untuk mengelirukan apa-apa.

Antara jalur pertama dan kedua, dekat dengan permulaan, membuat lubang untuk wayar. Solder wayar ke jalur pertama, sebaiknya berwarna-warni, supaya tidak dicampur. Kami melewati mereka melalui lubang yang dibuat. Seterusnya, pateri jalur kami dengan wayar pendek. + 5 dari rongga pertama hingga +5 yang kedua. GND ke GND. Dari OUT jalur pertama ke IN jalur kedua, dari OUT jalur kedua ke IN dari ketiga, dan sebagainya. Hasilnya adalah sebagai berikut:


Langkah 2 Membuat kes itu.
Kes itu terdiri daripada tiga bahagian. Pertama, anda perlu memotong bingkai dari papan serat 10 mm tebal. Lebih baik dipotong dengan jigsaw, tetapi dengan ketiadaan ia dapat diambil secara manual. Bahagian segi luaran ialah 190 mm.Dalaman - 170 mm. Untuk kecantikan, lebih baik untuk mengelilingi sudut. Oleh itu, satu rangka dengan saiz 190 x 190 mm dan ketebalan dinding 10 mm hendaklah diperolehi. Selepas memotong, kami membersihkan dengan kertas pasir halus.


Kami meneruskan pengilangan bahagian kedua. Kami melampirkan bingkai kami ke lembaran serpai dan menarik pensil di pinggir luar. Kami mengeluarkan bingkai tersebut. Kami berundur 30 mm pada setiap sisi ke dalam alun-alun dan lukiskan segi empat dalam. Anda perlu mendapatkan bingkai lain yang berukuran 190 x 190, tetapi dengan ketebalan sampingan 30 mm. Pada jarak 5 mm dari pinggir luar bingkai ini, dan pada jarak yang sama antara satu sama lain, kita membuat lubang dengan diameter 3 mm. 2 lubang pada setiap sisi. Mereka diperlukan untuk skru. Anda juga perlu membuat keputusan di mana bahagian atas akan berada, dan di sudut kiri atas persegi dalaman, buat slot untuk wayar.


Di sisi belakang kerangka kedua, di sepanjang perimeter sisi dalaman, adalah perlu untuk menskal segmen dari papan serat yang sama 10 mm tebal. Hasilnya sepatutnya seperti ini:


Pergi ke perhimpunan. Kami meletakkan bingkai kedua di atas meja. Teratas, diodkan, letakkan kotak kadbod dengan diod. Dan kita menutupinya dengan bingkai pertama. Letakkan kadbod antara bingkai supaya diod berjalan selari dengan sisi bingkai dan pada jarak yang sama dari tepi. Kami mematikannya, dengan berhati-hati agar tidak mengetuk diod, dan memutarnya bersama-sama. Selepas itu, kami memotong kadbod yang berlebihan.


Pergi ke lampu latar. Di sisi diod, antara jalur terakhir dan lepas, dekat dengan tepi kiri, anda perlu menggerudi lubang untuk wayar. Solder wayar ke akhir jalur terakhir dan benang wayar ini melalui lubang. Baki dan potong satu pada masa 20 dioda mesti terpaku pada bahagian belakang, pada jarak yang sama antara satu sama lain. 5 helai pada setiap sisi. Arah isyarat kawalan adalah tangan setiap jam bermula dari sudut kanan bawah. Kami menyolder mereka serta matriks. Wayar asal dari akhir matriks disolder ke diod pertama. + 5 dari diod pertama hingga +5 yang kedua. GND ke GND. Daripada OUT diod pertama ke IN dari kedua, dari OUT kedua ke IN dari ketiga, dan sebagainya.

Kami meletakkan Arduino Pro Mini kami di dalam bingkai belakang, di belakang matriks. Untuk kuasa menggunakan bekalan kuasa 5 volt yang stabil. Dengan kekuatan semasa sekurang-kurangnya 1 Ampere. Diod adalah agak licik dan jika anda bercadang untuk menghidupkannya segera dan untuk masa yang lama, bekalan kuasa diperlukan lebih kuat, saya cadangkan 1.5 - 2 amperes. Kami menyambung semua ini bersama-sama dari +5 bekalan kuasa kepada +5 Arduino dan +5 WS2812. -5 bekalan kuasa dengan GND Arduino dan GND WS2812. Wayar kawalan dari IN WS2812 disambungkan ke "pin 6" Arduino.


Diod adalah sangat terang, dan mereka tidak kelihatan sangat estetik yang menyenangkan. Oleh itu, perlu mengeluarkan dan memasang penyebar. Plastik matte paling sesuai untuk ini, atau kerana ia dipanggil "susu". Ia perlu melampirkan matriks kepada plastik dan bulatan dengan pensil. Kemudian potong dan pasang pada pita dua sisi pada bingkai depan. Ia tidak selalu mungkin untuk mencari plastik itu dengan cepat, tetapi saya benar-benar mahu memulakan produk. Dalam kes ini, anda boleh menggunakan kadbod putih atau kertas lanskap bukan plastik.


Dengan prinsip yang sama, mungkin untuk membuat matriks saiz besar. Ia hanya perlu untuk mengira dimensi kes itu.

Langkah 3 Sambungkan sensor suhu.
Hanya jam tangan ini tidak menarik, jadi tambah sensor suhu padanya. Untuk mengukur suhu, kami akan menggunakan DS18B20 sensor bersepadu. Ia mempunyai ketepatan pengukuran yang tinggi, ralat tidak melebihi 0.5 ° C. Sudah dari kilang, sensor dikalibrasi dan tiada tetapan tambahan diperlukan. Julat pengukuran suhu luas -55 ... + 125 ° C. Ia boleh digunakan di mana-mana bilik. Jika di jalan, maka anda perlu menjaga perlindungan daripada kelembapan. Terdapat dua mod operasi: dengan sumber kuasa luaran dan "kuasa palsu". Saya cadangkan menggunakan kuasa luaran.


Beberapa sensor boleh dimasukkan ke dalam satu talian komunikasi. Tetapi bagi kita, ada yang cukup. +5 kita ambil dari bekalan kuasa. GND ke -5. Wayar dari pin "DQ" ds18b20 ke "pin 9" Arduino.Ingat untuk meletakkan resistor pull-up antara "DQ" dan +5 pada 4.7 kOhm. Pada pendapat saya, ia adalah paling mudah untuk melakukan ini pada sensor itu sendiri. Kami memaparkannya di sudut kanan atas:


Langkah 4 Menyediakan papan dengan butang.
Dalam kes ini, kita menggunakan matriks sebagai jam. Masa boleh ditetapkan menggunakan port siri dengan menyambungkan Arduino ke komputer. Ini tidak selalunya mudah. Oleh itu, kami akan mengeluarkan papan dengan tiga butang untuk menetapkan waktu. Di samping itu, matriks boleh digunakan untuk tujuan lain, hanya menulis lakaran lain. Kemudian butang boleh digunakan untuk tujuan lain.


Kami menyambungkannya seperti berikut: sambungkan wayar biasa kepada ketiga-tiga butang ke Arduino "GND". Butang pertama, ia berfungsi memasuki mod penetapan masa dan beralih dari masa ke masa dan tarikh, bersambung ke "Pin 2". Yang kedua, butang untuk meningkatkan nilai, ialah "Pin 3", dan yang ketiga, butang untuk mengurangkan nilai, ialah "Pin 4". Kami melampirkan butang ke pita dua sisi di belakang matriks:


Langkah 5 firmware.
Seperti yang saya katakan, matriks boleh digunakan untuk tujuan yang berlainan. Saya telah menulis lakaran untuk jam tangan sahaja. Dalam lakaran seterusnya dan lakaran lain. Untuk menulis dan mengisi saya menggunakan Arduino IDE 1.8.5. Anda boleh mengawal matriks dalam beberapa cara. Mengawal setiap satu diode secara individu atau sebagai satu matriks. Dalam lakaran saya, saya menggunakan pilihan pertama. Untuk melakukan ini, anda memerlukan perpustakaan dari Adafruit yang dipanggil NeoPixel-master:
adafruit_neopixel-master.rar [27.83 Kb] (muat turun: 71)


Untuk bekerja dengan dioda seperti matriks matriks Adafruit_NeoMatrix-master dan Adafruit-GFX-Library-master:
matrix_libraries.rar [282.01 Kb] (muat turun: 80)


Sensor suhu memerlukan perpustakaan OneWire.
onewire.rar [16.75 Kb] (muat turun: 64)


Untuk mengedit dan mengisi lakaran, anda mesti terlebih dahulu memasang Arduino IDE dari laman web rasmi Arduino.cc, dan kemudian semua perpustakaan ini. Ia adalah perlu untuk unzip arkib ini dan letakkan fail-fail yang belum dibongkar dalam folder "perpustakaan" yang terletak di dalam folder dengan Arduino IDE dipasang. Ia juga mungkin untuk memasang perpustakaan secara langsung di IDE Arduino. Tanpa membongkar arkib yang dimuat turun, dalam Arduino IDE, pilih menu Skrin - Sambungkan Perpustakaan. Di bahagian atas senarai lungsur, pilih "Tambah .Zip Library". Dalam dialog yang muncul, pilih perpustakaan yang ingin anda tambah. Selepas semua manipulasi, anda mesti memulakan semula IDE Arduino.

Sensor suhu mempunyai alamat unik untuk setiap peranti - kod 64-bit. Mencari kod ini adalah tugas yang menuntut. Oleh itu, anda mesti menyambungkan sensor terlebih dahulu ke Arduino, isi lakaran yang terdapat dalam Fail - Contoh - Suhu Dallas - OneWireSearch menu. Seterusnya, jalankan Alat - Monitor Pantas. Arduino perlu mencari sensor anda dan tulis alamatnya. Kami menyalin atau hanya menulis alamat sensor anda. Buka lakaran Ard_Tic_Tak_WS2812_Matrix_10x10_Serial_Knopki_Term, cari garisan:

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


Kami menulis alamat sensor anda di antara pendakap, menggantikan alamat sensor saya.

Jam tangan ini tidak menggunakan modul RTC. Oleh itu, jika mereka terburu-buru atau di belakang, anda harus menukar nilai dalam talian:

jika (micros () - prevmicros & gt; 494000) {// perubahan yang lain untuk penyesuaian ialah 500,000


Adalah perlu untuk menentukan bilangan ini secara empirik. Sekiranya jam tangan anda tergesa-gesa, anda perlu menambah nombor ini, jika saya berada di belakang, mengurangkannya.

Isikan lakaran.


Saya minta maaf, tetapi saya tidak berjaya mengambil gambar dengan diod dihidupkan. Saya cuba dengan dan tanpa lampu. Tetapi saya memberi jaminan bahawa anda hidup mereka kelihatan lebih baik.




0
0
0

Tambah komen

    • senyumtersenyumxaxaokdontknowyahoonea
      bosawalbodohyaya-yaagresifrahsia
      maaftariandance2dance3pengampunanmembantuminuman
      berhentikawan-kawanbaikgoodgoodwiseltolaklidah
      asapbertepuk tangancraymengisytiharkanderisivejangan dengarmuat turun
      panasberalunketawa1mdamesyuaratmoskingnegatif
      not_ipopcornmenghukumbacamenakutkanmenakutkancarian
      mengejekterima kasihinito_clueumnikakutbersetuju
      burukbeeeblack_eyeblum3memerahbermegahkebosanan
      ditapiskesenanganrahsia2mengancamkemenanganyusun_bespectacled
      shokrespektloldiingatiselamat datangkrutoyya_za
      ya_dobryipembantune_huliganne_othodifludlarangantutup

Kami menasihati anda untuk membaca:

Bawa ia untuk telefon pintar ...