Isi kandungan:

Jam LED Menggunakan Neopixel: 4 Langkah (dengan Gambar)
Jam LED Menggunakan Neopixel: 4 Langkah (dengan Gambar)

Video: Jam LED Menggunakan Neopixel: 4 Langkah (dengan Gambar)

Video: Jam LED Menggunakan Neopixel: 4 Langkah (dengan Gambar)
Video: How to Make Digital Clock Neopixel WS2812B 2024, Julai
Anonim
Jam LED Menggunakan Neopixels
Jam LED Menggunakan Neopixels
Jam LED Menggunakan Neopixels
Jam LED Menggunakan Neopixels
Jam LED Menggunakan Neopixels
Jam LED Menggunakan Neopixels
Jam LED Menggunakan Neopixels
Jam LED Menggunakan Neopixels

Selamat datang di instruksiku mengenai cara membuat jam LED menggunakan 60 Neopixels.

Anda akan dapati 3 yang dilampirkan PDF adalah untuk segmen jam, yang lain adalah untuk pangkalan dan yang terakhir adalah templat untuk membantu melekatkan bahagian-bahagiannya.

Oleh itu, untuk menyelesaikannya, anda memerlukan perkara berikut

  • Cincin 60 neopixel terdapat dalam 4 suku. cari "cincin 60 ws2812" (£ 12.00)
  • Pencarian RTC untuk "modul DS3231" (£ 2.50)
  • Arduino Nano (£ 4)
  • Papan lapis 3mm / 1/8 ".
  • kepingan dawai. mudah-mudahan anda mempunyai sekitar?
  • Unit bekalan kuasa USB 5v. Jenis yang akan dihancurkan oleh anak-anak anda.

Berikut adalah item berkuasa bateri Lipo tetapi setelah melakukan ujian, jam menghabiskan terlalu banyak tenaga sehingga bateri dijatuhkan untuk memilih PSU USB utama.

  • carian penukar dc-dc "boost converter" (£ 3)
  • Litar pengecasan carian TP4056 "tp4056" (£ 2)
  • Sel tunggal LiPo 1000Mah. cari "1000mah lipo 3.7" ATAU "503450 lipo" (£ 8.00)

Nombor LiPo adalah 503450 dan mungkin senang mengetahui bahawa ini bermaksud panjang 50mm lebar 34mm dan kedalaman 5.0.

Langkah 1: The Wood Bits

Bit Kayu
Bit Kayu
Bit Kayu
Bit Kayu
Bit Kayu
Bit Kayu

Anda semestinya dapat melihat dalam gambar-gambar yang saya telah mencetak reka bentuknya dan juga meletakkannya di atas papan lapis. Yang mungkin tidak jelas ialah saya telah memotong 3 bahagian sekaligus dan bahagian bawahnya dipotong terlebih dahulu di sekitar perimeter, kemudian satu bahagian dikeluarkan (dari belakang) kemudian lubang itu dipotong di dua bahagian yang tinggal kemudian bahagian lain dikeluarkan hanya tinggal sedikit bahagian depan kemudian slot wayar dipotong.

Apabila semua bit telah dipotong, anda harus memeriksa terlebih dahulu bagaimana semua bit itu bersatu kemudian merekatkan semuanya. saya membina 3 lapisan di atas pelan jam untuk memastikan semuanya berputar dengan betul. Pastikan juga bahawa anda mendapat bahagian bawah dengan arah yang betul dan potongan tengah yang lengkap dipasang terbalik sehingga anda melilit sendi.

Lubang-lubang di bahagian depan membolehkan sendi-sendi yang dipateri di tempat duduk masuk dan bahagian bawahnya membolehkan wayar-wayar itu dapat dilalui.

Rangkaian gambar juga menunjukkan bagaimana pangkalan itu disatukan.

Langkah 2: Pendawaian Cincin LED

Pendawaian Cincin LED
Pendawaian Cincin LED
Pendawaian Cincin LED
Pendawaian Cincin LED
Pendawaian Cincin LED
Pendawaian Cincin LED
Pendawaian Cincin LED
Pendawaian Cincin LED

Tidak banyak yang boleh diperkatakan mengenai langkah ini, tetapi sekiranya anda tidak menggunakan jalur WS2812LED, mereka bijak sehingga masing-masing mempunyai data masuk dan keluar. Dalam lengkungan 15 LED, PCB mengendalikan semua sambungan tetapi apabila anda bergabung dengan bahagian tersebut, anda perlu membuat sambungan kuasa dan data. Anda tidak dapat membuat sambungan salah kerana mereka berada dalam bulatan namun apabila anda telah menyelesaikan bulatan, anda seharusnya mempunyai satu pautan yang tidak terdapat pada data IN / OUT untuk membolehkan anda menyambungkan wayar ke data IN. Di mana wayar menyambung ke data IN akan menjadi LED pertama atau kerana ia bernombor betul NOL.

Saya tertanya-tanya bagaimana cara terbaik untuk memasang cincin LED ke gelang kayu? tetapi pada akhirnya saya memutuskan untuk menggunakan tali pengikat dan alat tenun yang mengelilingi lilitan melangkau LED setiap kali.

Langkah 3: Pendawaian Arduino Nano dan Kuasa

Pendawaian Arduino Nano dan Kuasa
Pendawaian Arduino Nano dan Kuasa
Pendawaian Arduino Nano dan Kuasa
Pendawaian Arduino Nano dan Kuasa
Pendawaian Arduino Nano dan Kuasa
Pendawaian Arduino Nano dan Kuasa

Pada mulanya saya memutuskan untuk menggunakan LiPo pada projek ini tetapi ketika saya mencuba bateri habis semalam. Pada mulanya saya fikir bateri mungkin habis jadi saya mengukur arus dan mendapati litar melukis 73mA yang bermaksud pada bateri ia akan menjadi lebih banyak. Sebenarnya saya mengukur arus pada bateri (sebelum penukar penguat) dan mendapati ia melebihi 110mA. Jadi jelas bahawa jam ini tidak akan menggunakan bateri.

Oleh itu, saya memilih untuk menggunakan pengecas USB 5V. Saya cenderung mempunyai banyak pengecas USB yang mati kerana penyambungnya disalahgunakan oleh dua anak kecil.

Oleh kerana kami menggunakan WS2812 LED, kami hanya mempunyai 3 sambungan ke Arduino Nano.

  • Kuasa
  • Tanah
  • Data DALAM. Jingga hingga D2 di Nano

Seterusnya kita mempunyai RTC ini hanya mempunyai 4 wayar.

  • Kuasa 5 Volt
  • Tanah
  • SCL (Jam I2C) Biru hingga A5 di Nano
  • SDA (Data I2C) Kuning hingga A4 di Nano

Terakhir kita memerlukan kuasa dan ini menuju ke terminal kuasa 5 V di Nano.. Vin direka untuk mempunyai voltan lebih besar daripada 5 volt (iaitu 7-12 Volt) dan tanah.

Langkah 4: Program

Saya sangat menikmati pengaturcaraan, saya tidak begitu mahir.

Masalah 1

Detik dan minit ditunjukkan dengan betul sebagai nombor dari 0-59. Walau bagaimanapun LED pertama dan oleh itu sifar berada di bahagian bawah. Jadi ini perlu diperbetulkan.

batal betulPos (int A)

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

Masalah 2

Saya cuba membersihkan semua LED sebelum memaparkan kedudukan baru namun ini menyebabkan LED berkelip. Oleh itu, saya memutuskan untuk menyalakan LED seterusnya dan kemudian mematikan yang sebelumnya. Ini berfungsi dengan baik ?? NOPE kerana jika kedudukan baru adalah sifar maka ia akan mencuba dan mematikan -1. jadi itu ditangani pada masa yang sama.

batal hapusLebih (int B)

// hapus petunjuk sebelumnya, jika ia sifar maka // matikan 59 yang lain hanya tolak 1 // dan matikan yang satu. {if (B == 0) {strip.setPixelColor (59, 0, 0, 0); // Semua off} yang lain {strip.setPixelColor (B - 1, 0, 0, 0); // semua mati}}

Masalah 3

Melakukan perkara di atas berjaya dengan baik sehingga kedudukan kedua yang baru berada di tempat yang lama. Yang bermaksud bahawa minit yang dikemas kini setelah detik mematikannya! Sama juga dengan jam / minit

jika (saat == min-1)

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

Masalah 4

Perkara mula kelihatan baik jadi mari kita campurkan warna ketika mereka berada dalam kedudukan yang sama?

jika (min == saat)

{strip.setPixelColor (min, 15, 13, 0); // hijau dan merah sehingga kuning. }

Masalah 5

Jam bermula dalam format 24 jam. jadi ini perlu diperbetulkan terlebih dahulu

jika (jam> 12)

{jam = jam -12; }

Masalah 6

Dan jangan lupa ada 24 jam dalam sehari dan saya mempunyai 60 LED. Mudah betul kali dengan 5

jam = jam * 5;

Masalah 7

Setelah melakukan perkara di atas, kita sekarang mempunyai masa untuk melompat 4 LED, akan kelihatan lebih baik jika menggunakan semua LED dan menunjukkan pecahan sejam dengan betul? Sekali lagi ini adalah penyelesaian yang mudah, saya hanya menambah nombor minit asal dibahagi dengan 12 hingga jam.

jam = jam + (addMin / 12);

Masalah 8

Apabila jam atau minit yang dipimpin berada di bahagian bawah, detik hilang selama satu saat sebelumnya.

jam = jika (min == 0)

{if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // hijau}} jika (jam == 0) {if (secs == 59) {strip.setPixelColor (59, 0), 30, 0); // hijau}}

Masalah 9

Menetapkan masa. Saya memutuskan untuk menjadikan binaan ini sangat mudah sehingga tidak menyertakan butang untuk menyesuaikan waktu. Oleh itu, hanya masalah menyambungkan jam ke komputer anda dan memuatkan masa baru. Cukup melepaskan bahagian di bawah dan tetapkan masa yang anda perlukan kemudian muatkan program ini. Setelah betul komen semula baris dan hantar semula program, jika tidak jika anda kehilangan kuasa, ia akan menjalankan semula persediaan dan memuatkan masa lama lagi.

// 12 April 2020 jam 11:20 malam anda akan menghubungi:

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

Disyorkan: