Isi kandungan:

LEDura - Jam LED Analog: 12 Langkah (dengan Gambar)
LEDura - Jam LED Analog: 12 Langkah (dengan Gambar)

Video: LEDura - Jam LED Analog: 12 Langkah (dengan Gambar)

Video: LEDura - Jam LED Analog: 12 Langkah (dengan Gambar)
Video: LEDura (Demonstration) : LED clock using Arduino and addressable LED ring 2024, Julai
Anonim
LEDura - Jam LED Analog
LEDura - Jam LED Analog
LEDura - Jam LED Analog
LEDura - Jam LED Analog
LEDura - Jam LED Analog
LEDura - Jam LED Analog

Projek Tinkercad »

Setelah sekian lama membuat pelbagai projek, saya memutuskan untuk membuat pengajaran. Untuk yang pertama, saya akan membimbing anda melalui proses membuat jam analog anda sendiri yang dibuat dengan cincin LED yang dapat dialamatkan. Lingkaran dalam menunjukkan jam, cincin luar menunjukkan minit dan saat.

Selain menunjukkan waktu, jam juga dapat memperlihatkan suhu ruangan dan itu boleh menjadi hiasan yang sangat bagus di dalam bilik. Setiap 15 minit, jam juga membuat beberapa kesan khas - video menunjukkan semuanya, pastikan untuk melihatnya. Dengan bantuan 2 butang dan potensiometer, pengguna dapat memilih antara mod yang berbeza dan warna modifie mengikut keinginannya sendiri. Saya juga menaik tarafnya agar secara automatik meredupkan LED jika bilik menjadi gelap, jadi pengguna tidak akan terganggu pada waktu malam.

Jam boleh diletakkan di atas meja, meja tempat tidur atau digantung dari dinding.

Nota: Gambar tidak begitu baik dengan pemandangan dalam kenyataan kerana kecerahan tinggi.

Langkah 1: Bagaimana Membacanya?

Bagaimana Membacanya?
Bagaimana Membacanya?

Jam mempunyai 2 dering - yang lebih kecil untuk paparan jam dan yang lebih besar untuk memaparkan minit dan saat. Beberapa LED menyala sepanjang masa - kompas yang disebut yang menunjukkan kedudukan jam utama. Cincin jam mewakili jam 3, 6, 9 dan 12'o, deringan minit menunjukkan 15, 30, 45 dan 0 minit.

Langkah 2: Apa yang Anda Perlu

Apa yang Anda Perlu
Apa yang Anda Perlu

Bahan:

  • 1x Arduino Nano (anda juga boleh menggunakan Arduino lain)
  • 1x DS3231 modul RealTimeClock
  • 1x Gelang LED yang boleh dialamatkan - 60 LED
  • 1x Gelang LED yang boleh dialamatkan - 24 LED
  • 2x Butang (TIDAK - terbuka biasanya)
  • Potensiometer 1x 100kOhm
  • Bekalan kuasa 1x 5V (mampu memberikan 1 Amp)
  • Penyambung bekalan 1x
  • Beberapa wayar
  • Perintang 1x 10kOhm
  • 1x Fotoresistor

  • Papan Pra (pilihan)
  • Penyambung wayar blok terminal (pilihan)
  • Kayu setebal 25mm, ukuran sekurang-kurangnya 22cmx22cm
  • Tikar nipis 1mm plastik PVC bersaiz 20cmx20xm

Alat:

  • Alat asas untuk membina elektronik (besi pematerian, tang, pemutar skru,…)
  • Mesin gerudi
  • Pistol gam panas
  • Kertas pasir dan beberapa varnis kayu
  • Mesin CNC (mungkin ada rakannya)

Langkah 3: Komponen Elektronik - Latar Belakang

Komponen Elektronik - Latar Belakang
Komponen Elektronik - Latar Belakang
Komponen Elektronik - Latar Belakang
Komponen Elektronik - Latar Belakang
Komponen Elektronik - Latar Belakang
Komponen Elektronik - Latar Belakang

DS3231

Kami dapat menentukan waktu menggunakan Arduinos built in oscillator dan timer, tetapi saya memutuskan untuk menggunakan modul Real Time Clock (RTC) khusus, yang dapat melacak waktu walaupun kita memutuskan jam dari sumber kuasanya. Papan DS3231 mempunyai bateri, yang memberikan kuasa apabila modul tidak disambungkan ke bekalan kuasa. Ia juga lebih tepat pada jangka masa yang lebih lama daripada sumber jam Arduinos.

DS3231 RTC menggunakan antara muka I2C untuk berkomunikasi dengan pengawal mikro - sangat mudah digunakan dan kami hanya memerlukan 2 wayar untuk berkomunikasi dengannya. Modul juga menyediakan sensor suhu, yang akan digunakan dalam projek ini.

Penting: Sekiranya anda merancang untuk menggunakan bateri yang tidak boleh dicas semula untuk modul RTC, anda harus melepaskan solder perintang 200 ohm atau dioda 1N4148. Jika tidak, bateri anda mungkin akan habis. Lebih banyak maklumat boleh didapati di pautan ini.

Cincin LED WS2812

Saya memutuskan untuk menggunakan 60 cincin LED untuk mengesan minit dan 24 cincin LED selama berjam-jam. Anda boleh mendapatkannya di Adafruit (cincin neoPixel) atau beberapa versi murah di eBay, Aliexpress atau kedai web lain. Terdapat kepelbagaian besar di antara jalur led yang dapat diatasi dan jika ini adalah kali pertama anda bermain dengannya, saya cadangkan anda membaca beberapa penerangan penggunaan - berikut adalah beberapa pautan berguna:

https://www.tweaking4all.com/hardware/arduino/adr…

https://randomnerdtutorials.com/guide-for-ws2812b…

Jalur LED yang boleh dialamatkan mempunyai 3 penyambung: 5V, GND dan DI / DO. Dua yang pertama adalah untuk menghidupkan LED, yang terakhir adalah untuk data. Hati-hati semasa menyambungkan cincin ke Arduino - garis data anda mesti disambungkan ke pin DI (data IN).

Arduino

Saya menggunakan Arduino Nano kerana ia kecil dan cukup untuk projek ini. Anda boleh menggunakan hampir semua Arduino yang lain, tetapi anda mesti berhati-hati semasa menyambungkan semuanya ke dalamnya. Butang dan cincin LED boleh berada pada pin yang sama, tetapi penyambung I2C (untuk modul RTC) mungkin berbeza dari platform ke platform - lihat lembar data mereka.

Langkah 4: Elektronik - Bekalan Kuasa

Elektronik - Bekalan Kuasa
Elektronik - Bekalan Kuasa

Jalur Arduino dan LED mesti dibekalkan dengan sumber kuasa 5V supaya kita tahu voltan mana yang diperlukan. Oleh kerana LED berdering, ia cukup banyak menggunakan amp, kita tidak dapat mengaktifkannya secara langsung dengan Arduino, yang dapat menahan maksimum 20mA pada output digitalnya. Berdasarkan pengukuran saya, cincin LED dapat bersamaan mencapai 500 mA. Itulah sebabnya saya membeli penyesuai yang mampu membekalkan sehingga 1A.

Dengan bekalan kuasa yang sama, kami ingin menghidupkan Arduino dan LED - di sini anda harus berhati-hati.

Amaran! Berhati-hatilah semasa anda menguji jalur LED - penyesuai kuasa TIDAK boleh disambungkan ke Arduino, apabila Arduino juga disambungkan ke PC dengan penyambung USB (anda boleh merosakkan port USB komputer anda).

Catatan: Dalam skema di bawah ini saya menggunakan suis biasa untuk memilih apakah Arduino dihidupkan melalui bekalan kuasa atau melalui penyambung USB. Tetapi pada papan wangi anda dapat melihat bahawa saya telah menambahkan pin header untuk memilih sumber kuasa Arduino yang mana.

Langkah 5: Elektronik - Pematerian

Elektronik - Pematerian
Elektronik - Pematerian
Elektronik - Pematerian
Elektronik - Pematerian
Elektronik - Pematerian
Elektronik - Pematerian
Elektronik - Pematerian
Elektronik - Pematerian

Apabila anda mengumpulkan semua bahagian, sudah tiba masanya untuk menyatukannya.

Oleh kerana saya ingin membuat pendawaian lebih kemas, saya menggunakan papan serpihan dan beberapa penyambung blok terminal untuk wayar, jadi saya boleh mencabutnya sekiranya terdapat modifikasi. Ini adalah pilihan - anda juga boleh memasangkan wayar terus ke Arduino.

Petua: lebih mudah jika anda mencetak skema sehingga anda memilikinya di hadapan anda semasa menyolder. Dan periksa semula semuanya sebelum menyambung ke bekalan kuasa.

Langkah 6: Perisian - Latar Belakang

Arduino IDE

Kami akan memprogram Arduino dengan perisian khasnya: Arduino IDE. Sekiranya anda bermain dengan Arduino untuk pertama kalinya, saya cadangkan anda untuk memeriksa beberapa petunjuk mengenai cara melakukannya. Sudah ada banyak tutorial di web, jadi saya tidak akan memperincikannya.

Perpustakaan

Saya memutuskan untuk menggunakan perpustakaan FastLED dan bukannya Adafruit yang popular. Ia mempunyai beberapa fungsi matematik yang rapi dengan mana anda dapat memberikan kesan hebat (Jempol kepada pemaju!). Anda boleh menemui perpustakaan di repositori GitHub mereka, tetapi saya menambahkan fail versi.zip yang saya gunakan dalam kod saya.

Sekiranya anda tertanya-tanya, bagaimana menambahkan perpustakaan luaran ke Arduino IDE, anda boleh menyemak beberapa arahan yang sudah dibuat

Untuk modul jam, saya menggunakan perpustakaan Arduino untuk jam masa nyata (RTC) DS3231 (pautan), yang boleh anda pasangkan dengan mudah di Arduino IDE. Semasa anda berada di IDE, klik ke Sketsa → Sertakan perpustakaan → Urus perpustakaan… dan kemudian tapis carian anda dengan nama di atas.

Catatan: Atas sebab tertentu saya tidak dapat menambah fail.zip pada masa ini. Anda boleh menemui perpustakaan di repositori GitHub saya.

Langkah 7: Perisian - Kod

Perisian - Kod
Perisian - Kod
Perisian - Kod
Perisian - Kod

Struktur

Aplikasi ini dibina dengan 4 fail:

  • LEDclokc.ino Ini adalah aplikasi utama Arduino, di mana anda dapat mencari fungsi untuk mengawal keseluruhan jam - mereka bermula dengan awalan CLOCK_.
  • LEDclokc.h berikut adalah definisi sambungan pin dan beberapa konfigurasi jam.
  • ring.cpp dan ring.h berikut adalah kod saya untuk mengawal cincin LED.

LEDclock.h

Di sini anda akan menemui semua definisi jam. Pada mulanya, terdapat definisi untuk pendawaian. Pastikan ia sama dengan sambungan anda. Kemudian terdapat konfigurasi jam - di sini anda dapat mencari makro untuk bilangan mod yang dimiliki jam.

LEDclock.ino

Pada rajah, gelung utama ditunjukkan. Kod terlebih dahulu memeriksa jika ada butang ditekan. Kerana sifat suis, kita mesti menggunakan kaedah penyahtinjaan untuk membaca nilainya (anda boleh membaca lebih lanjut mengenai ini di pautan).

Apabila butang 1 ditekan, mod pemboleh ubah dinaikkan oleh 1, jika butang 2 ditekan, jenis pemboleh ubah dinaikkan. Kami menggunakan pemboleh ubah ini untuk menentukan, mod jam mana yang ingin kita lihat. Sekiranya kedua-dua butang ditekan pada masa yang sama, fungsi CLOCK_setTime () dipanggil sehingga anda dapat mengubah waktu jam.

Kemudian kod membaca nilai potensiometer dan menyimpannya menjadi pemboleh ubah - walaupun pengguna pemboleh ubah ini dapat mengubah warna jam, kecerahan dll.

Kemudian ada pernyataan kes-kes. Di sini kita menentukan jam mod mana yang sedang masuk, dan dengan mod itu, fungsi yang sesuai disebut, yang mengatur warna LED. Anda boleh menambah mod jam anda sendiri dan menulis semula atau mengubah fungsi.

Seperti yang dijelaskan di perpustakaan FastLED, anda harus memanggil fungsi FastLED.show () di hujungnya, yang mengubah LED menjadi warna yang kita tetapkan sebelumnya.

Anda boleh mendapatkan penerangan yang lebih terperinci antara garis kod

Seluruh kod dilampirkan di bawah dalam fail di bawah.

PETUA: anda boleh menemui keseluruhan projek di repositori GitHub saya. Di sini kodnya juga akan dikemas kini sekiranya saya akan menambahkan perubahan padanya.

Langkah 8: Buat Jam

Buat Jam
Buat Jam
Buat Jam
Buat Jam
Buat Jam
Buat Jam

Bingkai jam

Saya membina bingkai jam menggunakan mesin CNC dan kayu tebal 25mm. Anda boleh mendapatkan lakaran yang dilampirkan di ProgeCAD di bawah. Slot untuk cincin LED sedikit lebih besar, kerana pembuatan hanya memberikan ukuran diameter luar - bahagian dalam mungkin berbeza jauh … Di belakang jam, terdapat banyak ruang untuk elektronik dan wayar.

Cincin PVC

Kerana LED agak terang, ada baiknya menyebarkannya entah bagaimana. Mula-mula saya mencuba dengan silikon lutsinar, yang berfungsi menyebar, tetapi agak tidak kemas dan sukar untuk membuatnya lancar di atas. Itulah sebabnya saya memesan sekeping plastik PVC "susu" berukuran 20x20 cm dan memotong dua cincin di dalamnya dengan mesin CNC. Anda boleh menggunakan kertas pasir untuk melembutkan tepi sehingga cincin tergelincir di slot.

Lubang sisi

Maka sudah tiba masanya untuk menggerudi lubang untuk butang, potensiometer dan penyambung bekalan kuasa. Pertama, lukiskan setiap kedudukan dengan pensil, kemudian gerakkan lubang. Di sini bergantung pada jenis butang yang anda miliki - Saya menggunakan butang tekan dengan kepala yang sedikit melengkung. Mereka mempunyai diameter 16mm jadi saya menggunakan gerudi kayu sebesar itu. Begitu juga dengan potensiometer dan penyambung kuasa. Pastikan untuk memadamkan semua lukisan pensel selepas itu.

Langkah 9: Lukis di Kayu

Lukis di Kayu
Lukis di Kayu
Lukis di Kayu
Lukis di Kayu
Lukis di Kayu
Lukis di Kayu

Saya memutuskan untuk melukis beberapa petunjuk jam di kayu - di sini anda boleh menggunakan imaginasi anda dan merancang sendiri. Saya membakar kayu menggunakan besi pematerian, dipanaskan hingga suhu maksimum.

Agar bulatan menjadi bulat dengan baik, saya menggunakan sekeping aluminium, mengebor lubang ke dalamnya dan mengikuti tepi lubang dengan besi pematerian (lihat gambar). Pastikan anda memegang aluminium dengan kuat, sehingga tidak tergelincir semasa melukis. Dan berhati-hati semasa melakukannya untuk mengelakkan kecederaan.

Jika anda membuat gambar dan ingin gambar tersebut sejajar dengan piksel jam, anda dapat menggunakan "Maintenance mode" yang akan menunjukkan kepada anda di mana piksel akan berada (pergi ke bab Assemble).

Lindungi kayu

Apabila anda berpuas hati dengan jam, inilah masanya untuk mengamalkannya dan melindunginya dengan pernis kayu. Saya menggunakan kertas pasir yang sangat lembut (nilai 500) untuk melembutkan tepi. Saya mengesyorkan anda menggunakan varnis kayu lutsinar, supaya warna kayu tidak berubah. Letakkan sebilangan kecil varnis pada berus dan tarik mengikut arah tahunan di kayu. Ulangi sekurang-kurangnya 2 kali.

Langkah 10: Berkumpul

Berkumpul
Berkumpul
Berkumpul
Berkumpul
Berkumpul
Berkumpul

Kebakaran meletakkan butang dan potensiometer pada kedudukannya - jika lubang anda terlalu besar, anda boleh menggunakan beberapa gam panas untuk memperbaikinya. Kemudian masukkan jalur cincin ke dalam slotnya dan sambungkan wayarnya ke Arduino. Sebelum anda memasang cincin LED ke tempatnya, adalah baik untuk memastikan bahawa piksel LED berada di tempat yang betul - berpusat dan sejajar dengan gambar. Untuk tujuan itu saya menambahkan mod Maintenance yang dipanggil yang akan memaparkan semua piksel penting (0, 5, 10, 15,… pada deringan minit dan deringan 3, 6, 9 dan 12 pada jam). Anda boleh memasuki mod ini dengan menekan dan menahan kedua-dua butang, sebelum memasang bekalan kuasa ke penyambung. Anda boleh keluar dari mod ini dengan menekan butang mana pun.

Apabila cincin LED anda diselaraskan, sapukan sedikit gam panas dan tahan semasa lem menjadi kuat. Kemudian ambil cincin PVC anda dan sekali lagi: sapukan sedikit gam panas ke LED, letakkan dengan cepat dan tahan selama beberapa saat. Pada akhirnya, apabila anda yakin bahawa semuanya berfungsi, anda boleh merekatkan papan per papan (atau Arduino) ke kayu. Petua: jangan sapukan banyak gam. Hanya sebilangan kecil sehingga dapat disimpan di satu tempat tetapi anda boleh membuangnya dengan mudah jika anda ingin menukar sesuatu kemudian.

Pada hujungnya, masukkan bateri sel duit syiling ke pemegangnya.

Langkah 11: Naik taraf - Photoresistor

Naik taraf - Photoresistor
Naik taraf - Photoresistor
Naik taraf - Photoresistor
Naik taraf - Photoresistor
Naik taraf - Photoresistor
Naik taraf - Photoresistor

Kesan jam sangat bagus dalam gelap. Tetapi ini boleh mengganggu penggunanya pada waktu malam, semasa dia tidur. Itulah sebabnya saya memutuskan untuk meningkatkan jam dengan ciri pembetulan kecerahan automatik - apabila bilik menjadi gelap; jam mematikan LEDnya.

Untuk tujuan itu, saya menggunakan sensor cahaya - perintang foto. Rintangannya akan meningkat dengan ketara; hingga beberapa mega ohm ketika gelap dan hanya akan ada beberapa ratus ohm apabila ada cahaya yang bersinar di atasnya. Bersama dengan perintang biasa mereka membentuk pembahagi voltan. Oleh itu, apabila rintangan sensor cahaya berubah, voltan pada pin analog Arduino (yang dapat kita ukur).

Sebelum menyolder dan memasang litar apa pun, adalah lebih baik untuk mensimulasikannya terlebih dahulu, jadi anda dapat melihat tingkah laku dan membuat pembetulan. Dengan bantuan Autocad Tinkercad, anda boleh melakukannya dengan betul! Dengan hanya beberapa klik saya menambah komponen, menghubungkannya dan menulis kodnya. Dalam simulasi anda dapat melihat bagaimana kecerahan LED diubah mengikut nilai perintang foto. Ia sangat mudah dan mudah - anda boleh bermain dengan litar.

Selepas simulasi tiba masanya untuk menambahkan ciri ke jam. Saya menggerudi lubang di tengah jam, menempelkan perintang foto, menghubungkannya seperti dapat dilihat di litar dan menambahkan beberapa baris kod. Dalam fail LEDclock.h, anda harus mengaktifkan fitur ini dengan menyatakan USE_PHOTO_RESISTOR sebagai 1. Anda juga boleh mengubah pada tahap kecerahan ruangan jam yang akan meredupkan LED dengan mengubah nilai CLOCK_PHOTO_TRESHOLD.

Langkah 12: Nikmati

Apabila anda menghidupkannya untuk pertama kalinya, jam akan menunjukkan beberapa waktu secara rawak. Anda boleh menyiapkannya dengan menekan kedua butang pada masa yang sama. Putar kenop untuk memilih waktu yang tepat dan sahkan dengan menekan butang mana pun.

Saya mendapat inspirasi dalam beberapa projek yang sangat kemas di internet. Sekiranya anda memutuskan untuk membina jam anda sendiri, periksa juga! (NeoClock, Wol Clock, Arduino Colorful Clock) Sekiranya anda pernah memutuskan untuk mengikuti arahan, saya harap anda menjadikannya menyeronokkan seperti yang saya lakukan.

Sekiranya anda menghadapi masalah sepanjang proses membuatnya, jangan ragu untuk bertanya kepada saya sebarang pertanyaan dalam komen - Saya dengan senang hati akan berusaha menjawabnya!

Disyorkan: