Daftar Isi:

Jam Dinding Cryptic: 27 Langkah (dengan Gambar)
Jam Dinding Cryptic: 27 Langkah (dengan Gambar)

Video: Jam Dinding Cryptic: 27 Langkah (dengan Gambar)

Video: Jam Dinding Cryptic: 27 Langkah (dengan Gambar)
Video: 7 Creepypasta TERANEH & TERSERAM di Minecraft Part 27‼️(3 Jumpscare) 2024, Juli
Anonim
Jam Dinding Cryptic
Jam Dinding Cryptic

Perjalanan waktu adalah sesuatu yang tidak bisa kita kendalikan. Itu terjadi pada tingkat yang sama jika kita sedang tidur, bangun, bosan, atau sibuk. Dengan peristiwa terkini, penting untuk diingat waktu akan berlalu. Sambil menunggu waktu berlalu, mengapa tidak membuat sesuatu yang membuat perjalanan waktu lebih menarik untuk ditonton.

Jam ini terinspirasi dari Mengenlehreuhr yang ditemukan di Berlin, Jerman dan dapat dibaca dengan cara yang sama. Sama seperti aslinya, ia memberi tahu waktu melalui bidang yang diterangi dan berwarna.

Ini fitur 96 LED yang menyala 52 'digit' daerah. Tidak seperti aslinya, ia menampilkan desain melingkar yang mencakup dering detik, bukan tata letak bilah horizontal. Pita luar menunjukkan detik dalam hubungannya dengan titik tengah, dua pita berikutnya menunjukkan menit, dengan pita dalam terakhir menunjukkan jam.

Jika Anda memiliki beberapa bahan bekas dan waktu ekstra di tangan Anda, mengapa tidak menggunakan waktu ini untuk membuat sesuatu yang akan menunjukkannya!

Ada beberapa perubahan yang akan saya buat untuk proyek ini jika saya membuatnya lagi. Pertama, saya akan mengecat bingkai dan papan LED putih, bukan hitam. Ini akan memantulkan lebih banyak cahaya melalui lensa besar di depan. Saya juga akan menunggu sampai akhir untuk memasukkan LED. Saya membutuhkan papan untuk diselesaikan lebih awal sehingga dapat membantu saya menulis kode. Dengan itu, pertama-tama mari kita belajar cara membacanya!

Gambar
Gambar

Langkah 1: Cara Membaca Jam

Jam dibaca dari lingkaran dalam ke luar. Dering bagian dalam dari empat bidang menunjukkan masing-masing lima jam penuh, di samping dering kedua, juga dari empat bidang, yang menunjukkan masing-masing satu jam penuh, menampilkan nilai jam dalam format 24 jam. Dering ketiga terdiri dari sebelas bidang, yang menunjukkan masing-masing lima menit penuh, dering berikutnya memiliki empat bidang lainnya, yang menandai masing-masing satu menit penuh. Akhirnya cincin luar dari 29 bidang menunjukkan detik genap dengan lampu di tengah berkedip untuk menunjukkan detik ganjil (saat menyala) atau genap (saat tidak menyala).

Gambar
Gambar

Misalnya, gambar di atas memiliki 1 digit lima jam, 3 digit satu jam, 8 digit lima menit, 4 digit satu menit, dan 23 dari dua digit kedua dan digit kedua tengah menyala.

1x5 + 3x1: 8x5 + 4x1: 23x2 + 1x1 = 8:44:47 = 08:44:47

Gambar
Gambar

Waktu yang ditunjukkan di atas adalah: 3x5 + 0x1: 3x5 + 2x1: 5x2 + 1x1 = 15:17:11 = 15:17:11

Gambar
Gambar

Waktu yang ditunjukkan di atas adalah: 3x5 + 2x1: 3x5 + 3x1: 16x2 + 1x1 = 17:18:33 = 5:18:33 PM

Langkah 2: Alat dan Bahan

Alat dan bahan
Alat dan bahan
Alat dan bahan
Alat dan bahan
Alat dan bahan
Alat dan bahan

Bahan Elektronik:

  • Arduino Nano
  • Jam Waktu Nyata
  • LED yang dapat dialamatkan
  • Steker listrik
  • Kabel listrik
  • Colokan Listrik USB
  • Light Dependent Resistor dan resistor seimbang (jika Anda ingin redup di malam hari)
  • Kabel

Bahan Pengerjaan Kayu:

  • 3/4 inci. Kayu lapis
  • Kayu Lapis Tipis
  • Scrap Wood (Saya menggunakan 2x4 tetapi kayu keras juga bisa digunakan)
  • Cat
  • Akrilik 30 x 36 in. Lembar (ditemukan di toko perbaikan rumah lokal)
  • Window Tint (coba sumber lokal. Jika tidak tersedia, Anda dapat menemukan lembar yang cukup besar di sini)
  • Window Tint Application Fluid (Saya menggunakan air yang dicampur dengan sampo bayi dalam botol semprot)
  • Windex
  • Kertas Tukang Daging
  • Sekrup
  • Perekat semprot
  • Lem
  • Lem stik

Peralatan:

  • Penggaris
  • Pisau Xacto
  • Tape
  • Pita Sisi Ganda
  • Kompas
  • Jig Pemotong Lingkaran
  • Gergaji ukir
  • gergaji pita
  • Spindel Sander
  • Palm Sander
  • Pengamplas Cakram
  • Tabel Router
  • Penusuk
  • Mata Bor dan Pengeboran/Driver
  • klem
  • Solder Besi
  • Pateri
  • Penari telanjang kawat

Langkah 3: Merakit Template

Merakit Template
Merakit Template
Merakit Template
Merakit Template

Untuk template besar, cetak menggunakan pengaturan poster di Adobe Reader. Pangkas margin untuk setiap kertas dan rekatkan. Garis vertikal, horizontal, dan diagonal akan membantu menyejajarkan template. Semua halaman memiliki nomor kecil untuk membantu menjaganya tetap teratur jika rusak.

Semua template dan file yang dibutuhkan dapat ditemukan di Langkah 26.

Langkah 4: Lingkaran Potong Kasar

Lingkaran Potong Kasar
Lingkaran Potong Kasar
Lingkaran Potong Kasar
Lingkaran Potong Kasar

Letakkan dua templat pada selembar kayu lapis 3/4 inci, gambar lingkaran sedikit lebih besar dari yang dibutuhkan dengan kompas. Dengan menggunakan jigsaw, potong bentuk kasarnya.

Langkah 5: Potong ke Ukuran

Potong Sesuai Ukuran
Potong Sesuai Ukuran
Potong Sesuai Ukuran
Potong Sesuai Ukuran

Dengan menggunakan jig pemotong lingkaran pada gergaji pita, potong lingkaran ke ukuran akhir.

Langkah 6: Terapkan Template

Terapkan Template
Terapkan Template
Terapkan Template
Terapkan Template
Terapkan Template
Terapkan Template

Menggunakan perekat semprot, aplikasikan setiap templat ke lingkaran. Masukkan paku di tengah templat untuk memusatkannya pada lingkaran.

Langkah 7: Potong Template

Potong Template
Potong Template
Potong Template
Potong Template
Potong Template
Potong Template

Dengan menggunakan gergaji ukir, potong setiap jendela templat. Jika Anda memiliki akses ke CNC, langkah ini akan jauh lebih mudah! Saya mengebor lubang di setiap jendela untuk membantu proses ini. Saat Anda mulai memotong, templat mungkin mulai terlepas. Jika ini terjadi, Anda dapat mengamankannya dengan selotip kecil.

Langkah 8: Pengamplasan

pengamplasan
pengamplasan
pengamplasan
pengamplasan
pengamplasan
pengamplasan

Menggunakan amplas yang dioleskan pada tongkat, pengamplas spindel, dan pengamplas telapak tangan, amplas dan ratakan potongan kasar yang ditinggalkan oleh gergaji ukir.

Langkah 9: Bor Tahan untuk LED

Bor Tahan untuk LED
Bor Tahan untuk LED
Bor Tahan untuk LED
Bor Tahan untuk LED
Bor Tahan untuk LED
Bor Tahan untuk LED
Bor Tahan untuk LED
Bor Tahan untuk LED

Tandai bagian tengah setiap lubang dengan penusuk dan bor lubang celah untuk LED. Saya menggunakan panduan untuk membantu menjaga bor tetap tegak lurus dengan benda kerja saya dan papan penyangga agar tidak meniup kayu di bagian belakang.

Langkah 10: Gabungkan Papan

Gabungkan Papan
Gabungkan Papan
Gabungkan Papan
Gabungkan Papan
Gabungkan Papan
Gabungkan Papan

Tukar papan depan dan belakang dan lacak bagian bingkai di bagian belakang papan LED. Pindahkan bingkai kembali ke bagian depan papan LED dan bor lubang dan kencangkan potongannya.

Lihat catatan gambar untuk informasi lebih lanjut.

Langkah 11: Masukkan LED

Masukkan LED
Masukkan LED
Masukkan LED
Masukkan LED

Dorong LED melalui bagian belakang papan LED. Lubang harus diberi jarak yang cukup sehingga Anda tidak perlu memotong kabel apa pun kecuali berpindah dari satu lingkaran ke lingkaran berikutnya.

Dari belakang, LED mulai di tengah dan kemudian berjalan berlawanan arah jarum jam lalu naik ke ring berikutnya.

Langkah 12: Lampirkan Segmen 1

Lampirkan Segmen 1
Lampirkan Segmen 1
Lampirkan Segmen 1
Lampirkan Segmen 1
Lampirkan Segmen 1
Lampirkan Segmen 1

Gunting 9 segmen dari templat "Segmen 1" yang terpasang pada kayu lapis 3/4 inci (ditemukan pada langkah 26). Pasang ke papan LED dengan lem dan klem. Jika Anda tidak sabar, Anda juga bisa menggunakan paku untuk menjepitnya di tempatnya.

Setelah kering, amplas bagian tepinya dengan disc sander.

Langkah 13: Cat

Cat
Cat
Cat
Cat
Cat
Cat
Cat
Cat

Semprotkan cat pada papan LED dan bingkai. Jika saya membuat ini lagi, saya akan memilih untuk menggunakan cat putih daripada hitam karena akan lebih memantulkan cahaya melalui lensa.

Langkah 14: Segmen 2

Segmen 2
Segmen 2
Segmen 2
Segmen 2
Segmen 2
Segmen 2

Potong 9 segmen dari templat "Segmen 2" yang dipasang dari kayu setebal 2 3/8 inci (ditemukan pada langkah 26). Saya menggunakan beberapa memo 2x4 dari sekitar toko. Keringkan segmen dan pastikan pas dengan penjepit pita. Jika semuanya beres, tutup bagian luarnya dengan selotip agar lem tidak lengket dan biarkan kering setidaknya selama satu jam sebelum melanjutkan ke langkah berikutnya.

Langkah 15: Segmen 3

Segmen 3
Segmen 3
Segmen 3
Segmen 3
Segmen 3
Segmen 3

Gunting 9 segmen dari templat "Segmen 3" yang dipasang dari kayu skrap tebal 3/8 inci (ditemukan pada langkah 26). Rekatkan sehingga jahitan dari Segmen 2 berada di tengah setiap Segmen 3. Ini akan memperkuat cincin.

Langkah 16: Cincin dan Cat Halus

Cincin dan Cat Halus
Cincin dan Cat Halus
Cincin dan Cat Halus
Cincin dan Cat Halus

Saya membuat blok pengamplasan khusus dari potongan cincin besar. Amplas bagian dalam dan luar ring dan isi celah yang mungkin muncul selama proses lem.

Setelah halus, aplikasikan beberapa lapis cat hitam dan clear coat.

Langkah 17: Potong Akrilik

Potong Akrilik
Potong Akrilik
Potong Akrilik
Potong Akrilik
Potong Akrilik
Potong Akrilik
Potong Akrilik
Potong Akrilik

Potong akrilik menjadi persegi berukuran 30 x 30 inci dan tandai bagian tengahnya. Tempelkan akrilik dengan selotip dua sisi. Menggunakan bit router trim flush, lepaskan kelebihan akrilik

Langkah 18: Terapkan Warna Jendela

Terapkan Warna Jendela
Terapkan Warna Jendela
Terapkan Warna Jendela
Terapkan Warna Jendela
Terapkan Warna Jendela
Terapkan Warna Jendela

Di lingkungan bebas debu, lepaskan film pelindung dari akrilik. Oleskan semprotan dan lepaskan lapisan belakang dari warna jendela. Oleskan warna jendela dengan sisi lengket ke bawah. Menggunakan squeegee atau kartu kredit, peras semua cairan dari bawah kaca jendela. Setelah semua gelembung dan kerutan dihilangkan, potong sisa warna jendela menggunakan pisau tajam.

Langkah 19: Pasang Defuser

Lampirkan Defuser
Lampirkan Defuser
Lampirkan Defuser
Lampirkan Defuser

Saya menggunakan selembar kertas daging besar untuk bertindak sebagai defuser. Letakkan kertas di atas permukaan yang rata. Tutupi wajah bingkai dengan lem dari lem. Sebelum lem mengering, letakkan bagian depan jam menghadap ke bawah di atas kertas dan potong kelebihannya secara kasar. Setelah kering, gunakan pisau tajam untuk memangkas flush.

Langkah 20: Terapkan Isolasi

Terapkan Isolasi
Terapkan Isolasi

Saya menggunakan pita listrik untuk memisahkan saluran listrik dan data.

Langkah 21: Merakit

Berkumpul
Berkumpul
Berkumpul
Berkumpul
Berkumpul
Berkumpul

Lepaskan lapisan pelindung lainnya dari akrilik. Tempatkan akrilik di dalam cincin dengan sisi warna jendela menghadap ke atas. Geser sisa jam ke dalam ring. Gunakan penjepit untuk memberikan tekanan ringan saat lubang dibor melalui cincin dan masuk ke papan LED. Ini harus kira-kira 1 1/8 inci dari belakang. Berhati-hatilah untuk tidak mengebor LED. Pasang sekrup kepala rangka ke dalam lubang. Ulangi untuk total delapan sekrup di sekeliling jam.

Langkah 22: Lampirkan Poin Jangkar

Lampirkan Poin Jangkar
Lampirkan Poin Jangkar

Lem jangkar menunjuk ke bagian belakang jam agar penutup belakang dapat dipasang. Ini tebalnya 3/4 inci dan panjangnya sekitar 2 inci.

Langkah 23: Bor Daya dan Lubang Sensor LDR

Bor Daya dan Lubang Sensor LDR
Bor Daya dan Lubang Sensor LDR

Bor lubang daya melalui bagian bawah jam untuk colokan listrik dan lubang di bagian atas untuk sensor light dependent resistor (LDR).

Langkah 24: Pasang Pemegang Elektronik

Pasang Pemegang Elektronik
Pasang Pemegang Elektronik
Pasang Pemegang Elektronik
Pasang Pemegang Elektronik

Pasang dudukan cetak 3D untuk RTC dan Arduino Nano. Hubungkan semua elektronik seperti yang ditunjukkan dalam skema.

Langkah 25: Penutup Belakang

Sampul belakang
Sampul belakang
Sampul belakang
Sampul belakang
Sampul belakang
Sampul belakang
Sampul belakang
Sampul belakang

Potong penutup belakang dari kayu lapis tipis hanya lebih kecil dari bagian luar jam. Bor lubang ke titik jangkar. Temukan bagian tengah belakang dan ukur 8 inci di kedua arah untuk memotong lubang kunci (standar 16 di pusat kancing di AS). Saya mengebor lubang utama yang lebih besar dari kepala sekrup yang akan saya gunakan dan membuat lubang yang lebih besar ke satu arah. Cat hitam dan pasang penutup di tempatnya.

Langkah 26: Kode dan File

Sekali lagi, saya cukup baru dalam menggunakan banyak perpustakaan Arduino yang digunakan di sini, jadi saya yakin ada cara yang lebih baik untuk menggunakannya.

Saya menulis kode agar mudah diperbarui berdasarkan berapa banyak LED yang Anda gunakan jika proyek ditingkatkan atau diturunkan. Yang perlu Anda lakukan adalah memperbarui posisi awal dan akhir LED serta berapa banyak LED yang merupakan bagian dari setiap digit.

Saya telah menambahkan beberapa animasi yang diputar saat startup dan juga pada jam. Mereka adalah Sudo acak berdasarkan generator nomor acak yang ada di dalamnya.

Anda dapat mengatur jam untuk menggilir warna atau tetap statis pada satu warna. Anda bahkan dapat menyorot angka indikator untuk membantu membaca waktu seperti yang ditunjukkan pada pendahuluan.

Jangan ragu untuk mengedit dan mengubah kode sesuai keinginan.

#sertakan "RTClib.h"

#sertakan #define NUM_LEDS 96 #define DATA_PIN 3 #define LDR A0 RTC_DS1307 rtc; boolean timeChange = salah; boolean printWaktu = salah; // Setel ke true jika Anda ingin melihat output di konsol. Bermanfaat untuk debugging. boolean redDown = benar; boolean greenDown = salah; boolean blueDown = salah; siklus boolean = salah; // Setel true jika Anda ingin warna jam berputar boolean highlight = true; // Setel true untuk menyorot 'digit terakhir'. // Lokasi awal dan akhir setiap grup waktu const int SECOND_1_LOCATION = 0; const int HOUR_2_START_LOCATION = 1; const int HOUR_2_END_LOCATION = 8; const int HOUR_1_START_LOCATION = 9; const int HOUR_1_END_LOCATION = 20; const int MINUTE_2_START_LOCATION = 21; const int MINUTE_2_END_LOCATION = 42; const int MINUTE_1_START_LOCATION = 43; const int MINUTE_1_END_LOCATION = 66; const int SECOND_2_START_LOCATION = 67; const int SECOND_2_END_LOCATION = 95; const int LEDS_PER_HOUR_1 = 3; const int LEDS_PER_HOUR_2 = 2; const int LEDS_PER_MINUTE_1 = 6; const int LEDS_PER_MINUTE_2 = 2; // Pengganda digunakan untuk membagi waktu const int MULTIPLIER_FIVE = 5; const int MULTIPLIER_TWO = 2; const int START_UP_DELAY = 1; // Ubah ini untuk mempercepat atau memperlambat animasi startup const int CYCLE_SPEED = 1; // Ubah kecepatan di sini untuk siklus perubahan warna (harus di atas 1) // Deklarasikan variabel int lastSecond = 0; int jam saat ini = 0; int saat iniMenit = 0; int arusKedua = 0; int jam1 = 0; int jam2 = 0; int menit1 = 0; int menit2 = 0; int detik1 = 0; int detik2 = 0; int cycleCount = 1; float fadeValue = 255; float fadeCheck = 255; uint8_t cerah = 255; int numberOfAnimations = 5; int keacakan = 0; // Atur Warna uint8_t merah = 0; uint8_t hijau = 0; uint8_t biru = 255; uint8_t highlight_red = 60; uint8_t highlight_green = 60; uint8_t highlight_blue = 255; // Tentukan array leds CRGB leds[NUM_LEDS]; void setup() { Serial.begin(19200); FastLED.addLeds(leds, NUM_LEDS); LEDS.setBrightness(terang); FastLED.clear(); rtc.mulai(); // Batalkan komentar di bawah untuk mengatur waktu. // rtc.adjust(DateTime(2020, 2, 19, 23, 59, 50)); // rtc.adjust(DateTime(F(_DATE_), F(_TIME_))); // Animasi animasi startup (keacakan); } void loop() { // Dapatkan waktu DateTime sekarang = rtc.now(); jam saat ini = sekarang.jam(); saat iniMenit = sekarang.menit(); currentSecond = sekarang.detik(); perubahan waktu = salah; // Gunakan ini untuk mengatur waktu secara manual tanpa RTC. Bermanfaat untuk debugging // currentHour = 5; // saat iniMenit = 30; // saat iniKedua = 30; // Reset semua bit ke nol untuk (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i++) { leds = CRGB::Black; } // Setel Jam // Setel jam 1 jam1 = (Jam saat ini % MULTIPLIER_FIVE) * LEDS_PER_HOUR_1; // Ini akan menghitung total LED unit waktu yang menyala untuk (int i = HOUR_1_START_LOCATION; i 0)// && hour1 <12) { for (int i = (HOUR_1_START_LOCATION + hour1 - 1); i>= (JAM_1_START_LOKASI + jam1 - LEDS_PER_HOUR_1); i--) { leds = CRGB(sorot_merah, sorot_hijau, sorot_biru); } } // Setel jam 2 jam2 = (Jam saat ini / MULTIPLIER_LIMA) * LEDS_PER_HOUR_2; // Ini akan menghitung total LED unit waktu yang menyala untuk (int i = HOUR_2_START_LOCATION; i 0)// && hour2 <8) { for (int i = (HOUR_2_START_LOCATION + hour2 - 1); i>= (JAM_2_START_LOCATION + jam2 - LEDS_PER_HOUR_2); i--) { leds = CRGB(sorot_merah, sorot_hijau, sorot_biru); } } // Setel Menit // Setel menit 1 menit1 = (Saat iniMenit % MULTIPLIER_LIMA) * LEDS_PER_MINUTE_1; // Ini akan menghitung total LED unit waktu yang menyala untuk (int i = MINUTE_1_START_LOCATION; i 0)// && minute1 <24) { for (int i = (MINUTE_1_START_LOCATION + minute1 - 1); i>= (MENIT_1_START_LOKASI + menit1 - LEDS_PER_MINUTE_1); i--) { leds = CRGB(sorot_merah, sorot_hijau, sorot_biru); } } // Setel menit 2 menit2 = (Menit saat ini / MULTIPLIER_LIMA) * LEDS_PER_MINUTE_2; // Ini akan menghitung total LED dari unit waktu yang menyala untuk (int i = MINUTE_2_START_LOCATION; i 0)// && minute2 <22) { for (int i = (MINUTE_2_START_LOCATION + minute2 - 1); i>= (MENIT_2_START_LOKASI + menit2 - LEDS_PER_MINUTE_2); i--) { leds = CRGB(sorot_merah, sorot_hijau, sorot_biru); } } // Set Second if (currentSecond != lastSecond) { timeChange = true; } // Setel detik 1 detik1 = currentSecond % MULTIPLIER_TWO; if (second1 == 1) { leds[SECOND_1_LOCATION] = CRGB(merah, hijau, biru); } // Setel detik 2 detik2 = currentSecond / MULTIPLIER_TWO; for (int i = SECOND_2_START_LOCATION; i 0)// && second2 <29) { for (int i = (SECOND_2_START_LOCATION + second2 - 1); i>= (SECOND_2_START_LOCATION + second2 - 1); i--) { leds = CRGB(sorot_merah, sorot_hijau, sorot_biru); } } lastSecond = saat iniSecond; // Hitung siklus program dan panggil fungsi setColor untuk mengubah warna LED setiap siklus CYCLE_SPEED. jika (jumlah siklus cerah) // { // fadeValue = cerah; // } // else if (nilaifade < 150) // { // nilai fade = 150; // } // LEDS.setBrightness(Nilai pudar); FastLED.show(); // Cetak waktu saat ini ke konsol if (timeChange == true && printTime == true) { printToConsole(); } } // Fungsi animasi tambahkan lebih banyak animasi di sini sesuai keinginan Anda void animate(int select) { if (select == 0) { for (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i++) { leds = CRGB(merah, hijau, biru); FastLED.show(); penundaan(START_UP_DELAY); } untuk (int i = SECOND_2_END_LOCATION; i>= SECOND_1_LOCATION; i--) { leds = CRGB::Hitam; FastLED.show(); penundaan(START_UP_DELAY); } } else if (pilih == 1) { for (int i = 0; i < 250; i++) { int light = random(95); leds[cahaya] = CRGB(merah, hijau, biru); FastLED.show(); } } else if (pilih == 2) { leds[0] = CRGB(merah, hijau, biru); for (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i++) { leds[SECOND_2_START_LOCATION + i] = CRGB(merah, hijau, biru); if (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) { leds[MINUTE_1_START_LOCATION + i] = CRGB(merah, hijau, biru); } if (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) { leds[MINUTE_2_START_LOCATION + i] = CRGB(merah, hijau, biru); } if (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) { leds[HOUR_1_START_LOCATION + i] = CRGB(merah, hijau, biru); } if (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) { leds[HOUR_2_START_LOCATION + i] = CRGB(merah, hijau, biru); } penundaan(34); FastLED.show(); } } else if (pilih == 3) { leds[0] = CRGB(merah, hijau, biru); for (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i++) { leds[SECOND_2_END_LOCATION - i] = CRGB(merah, hijau, biru); if (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) { led[MINUTE_1_END_LOCATION - i] = CRGB(merah, hijau, biru); } if (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) { leds[MINUTE_2_END_LOCATION - i] = CRGB(merah, hijau, biru); } if (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) { leds[HOUR_1_END_LOCATION - i] = CRGB(merah, hijau, biru); } if (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) { leds[HOUR_2_END_LOCATION - i] = CRGB(merah, hijau,biru); } penundaan(34); FastLED.show(); } } else if (pilih == 4) { for (int i = SECOND_2_END_LOCATION; i>= SECOND_1_LOCATION; i--) { leds = CRGB::Black; } FastLED.show(); penundaan (200); for (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i++) { leds = CRGB(merah, hijau, biru); } FastLED.show(); penundaan (200); for (int i = SECOND_2_END_LOCATION; i>= SECOND_1_LOCATION; i--) { leds = CRGB::Hitam; } FastLED.show(); penundaan (200); for (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i++) { leds = CRGB(merah, hijau, biru); } FastLED.show(); penundaan (200); for (int i = SECOND_2_END_LOCATION; i>= SECOND_1_LOCATION; i--) { leds = CRGB::Hitam; } FastLED.show(); penundaan (200); } } // Fungsi siklus warna void setColor(boolean cycleColors) { if (cycleColors == true) { if (redDown == true && greenDown == false) { red++; hijau--; if (hijau <= 0) { merah = 255; redDown = salah; hijauTurun = benar; } } else if (greenDown == true && blueDown == false) { green++; biru--; if (biru <= 0) { hijau = 255; hijauTurun = salah; biruDown = benar; } } else if (blueDown == true && redDown == false) { blue++; merah--; if (merah <= 0) { biru = 255; blueDown = salah; redDown = benar; } } } else { merah = 0; hijau = 0; biru = 255; } } // Cetak ke Serial Monitor function void printToConsole() { Serial.print("Waktu Saat Ini: "); Serial.print(Jam saat ini); Serial.print(":"); Serial.print(Menit saat ini); Serial.print(":"); Serial.println(saat iniKedua); Serial.println(" "); for (int i = JAM_2_START_LOCATION; i <= JAM_2_END_LOCATION; i++) { Serial.print(leds); if (i % 2 == 0) { Serial.print(" "); } } Serial.println(" "); for (int i = JAM_1_START_LOCATION; i <= JAM_1_END_LOCATION; i++) { Serial.print(leds); if (((i - JAM_1_START_LOKASI + 1) % 3) == 0) { Serial.print(" "); } } Serial.println(" "); for (int i = MINUTE_2_START_LOCATION; i <= MINUT_2_END_LOCATION; i++) { Serial.print(leds); if (((i - MENIT_2_START_LOKASI) + 1) % 2 == 0) { Serial.print(" "); } } Serial.println(" "); for (int i = MINUT_1_START_LOCATION; i <= MINUT_1_END_LOCATION; i++) { Serial.print(leds); if (((i - MENIT_1_START_LOKASI) + 1) % 6 == 0) { Serial.print(" "); } } Serial.println(" "); for (int i = SECOND_2_START_LOCATION; i <= SECOND_2_END_LOCATION; i++) { Serial.print(leds); Serial.print(""); } Serial.println(" "); Serial.println(leds[SECOND_1_LOCATION]); Serial.println(); for (int i = 0; i < NUM_LEDS; i++) { Serial.print(leds); } Serial.println(); Serial.println(); }

Langkah 27: Nikmati

Gambar
Gambar

Kesimpulannya, jam ini sangat bagus untuk ditonton dan setelah Anda menguasainya, jam ini relatif mudah dibaca. Jika Anda membuat proyek jam Anda sendiri, beri tahu saya!

Direkomendasikan: