Daftar Isi:

Jam Alarm Biner Arduino DIY: 14 Langkah (dengan Gambar)
Jam Alarm Biner Arduino DIY: 14 Langkah (dengan Gambar)

Video: Jam Alarm Biner Arduino DIY: 14 Langkah (dengan Gambar)

Video: Jam Alarm Biner Arduino DIY: 14 Langkah (dengan Gambar)
Video: Membuat Jam Digital dengan Alarm di Arduino - Project Arduino #14 2024, November
Anonim
Jam Alarm Biner Arduino DIY
Jam Alarm Biner Arduino DIY
Jam Alarm Biner Arduino DIY
Jam Alarm Biner Arduino DIY
Jam Alarm Biner Arduino DIY
Jam Alarm Biner Arduino DIY

Ini jam biner klasik lagi! Tapi kali ini dengan lebih banyak fungsi tambahan! Dalam instruksi ini, saya akan menunjukkan kepada Anda cara membuat jam alarm biner dengan Arduino yang dapat menunjukkan tidak hanya waktu, tetapi tanggal, bulan, bahkan dengan fungsi pengatur waktu dan alarm yang juga dapat digunakan sebagai lampu samping tempat tidur! Tanpa basa-basi lagi mari kita mulai!

Catatan: Proyek ini tidak menggunakan modul RTC, jadi akurasi tergantung pada papan yang Anda gunakan. Saya telah menyertakan mekanisme korektif yang akan mengoreksi penyimpangan waktu selama periode waktu tertentu tetapi Anda perlu bereksperimen untuk menemukan nilai yang benar untuk jangka waktu tersebut (Lebih lanjut tentang ini di bawah), dan bahkan dengan mekanisme korektif itu masih akan melayang dalam waktu lama (bila dibandingkan dengan tanpanya). Jika ada yang tertarik, silakan mengimplementasikan penggunaan modul RTC dalam proyek ini

Perlengkapan

LED 5mm (warna apa saja, saya menggunakan 13 LED putih dengan satu LED RGB sebagai indikator) --- 14 pcs

Arduino Nano (yang lain mungkin berfungsi) --- 1 pc

Saklar mikro --- 1 pc

Sepotong kecil aluminium foil

Papan pemasangan (untuk enklosur, tetapi silakan desain sendiri)

Sepotong kertas putih (atau warna lain)

Beberapa film plastik (yang digunakan sebagai sampul buku)

Sekelompok kabel

Buzzer --- 1 pc

Transistor NPN --- 1 pc

Resistor 6k8 --- 14 buah, 500R --- 1 buah, 20R (10Rx2) --- 1 buah, 4k7 --- 1 buah

Catu daya untuk proyek (saya menggunakan baterai li-on)

5050 strip LED dan sakelar geser (opsional)

Langkah 1: Hubungkan Sirkuit

Hubungkan Sirkuit!
Hubungkan Sirkuit!

Saya akan membagi langkah ini menjadi:

1) Bagian bel

2) Panel LED

3) Saklar (tombol tekan)

4) strip LED

5) Sensor kapasitansi

6) Catu daya

7) Hubungkan semuanya ke Arduino

Sebagian besar waktu, ini hanyalah langkah "ikuti skema". Jadi lihat skema di atas atau bahkan unduh dan cetak!

Langkah 2: Mempersiapkan Bagian Buzzer

Mempersiapkan Bagian Buzzer
Mempersiapkan Bagian Buzzer
Mempersiapkan Bagian Buzzer
Mempersiapkan Bagian Buzzer
Mempersiapkan Bagian Buzzer
Mempersiapkan Bagian Buzzer

Jika Anda telah menggunakan buzzer dengan Arduino sebelumnya, Anda akan tahu bahwa jika kita menghubungkannya langsung ke Arduino, itu tidak akan cukup keras. Jadi kita membutuhkan amplifier. Untuk membangun amplifier, kita memerlukan transistor NPN (pada dasarnya semua NPN akan berfungsi, saya menggunakan S9013 karena saya mendapatkannya dari proyek lama), dan beberapa resistor untuk membatasi arus. Untuk memulai, pertama-tama kenali kolektor, emitor, dan basis transistor. Sedikit googling datasheet akan bekerja untuk ini. Kemudian solder kolektor transistor ke terminal negatif buzzer. Di terminal positif buzzer, kami hanya menyolder sepotong kawat ke sana sehingga kami dapat menyoldernya ke Arduino kami nanti. Setelah ini, solder resistor 500R (atau nilai resistor yang serupa) ke dasar transistor dan dari resistor, solder sepotong kawat lain untuk digunakan di masa mendatang. Terakhir, solder dua resistor 10R secara seri ke emitor transistor dan sambungkan kabel lain dari resistor.

Sungguh, lihat skema.

p/s: Saya masih tidak benar-benar tahu bagaimana memilih resistor untuk transistor pada saat menulis ini. Nilai yang saya gunakan dipilih secara empiris.

Langkah 3: Mempersiapkan Panel LED

Mempersiapkan Panel LED
Mempersiapkan Panel LED
Mempersiapkan Panel LED
Mempersiapkan Panel LED
Mempersiapkan Panel LED
Mempersiapkan Panel LED

Colokkan LED dan resistor ke papan prototyping yang sesuai dan solder. Itu dia. Ikuti skemanya. Jika Anda tertarik dengan jarak yang saya gunakan, 3 lubang terpisah untuk setiap kolom, dan dua lubang terpisah untuk setiap baris (lihat gambar). Dan indikator LED? Saya memasangnya secara acak.

Setelah menyolder LED dan resistor ke papan, sambungkan semua terminal positif LED bersama-sama. Kemudian, solder kabel satu per satu ke masing-masing resistor di terminal negatif LED sehingga kita bisa menyoldernya ke Arduino nanti.

CATATAN: Anda mungkin bingung dengan langkah ini. Ingat, alih-alih menghubungkan semua ground bersama-sama, kami menghubungkan semua terminal positif bersama-sama dan terminal negatif ke masing-masing pin pada Arduino. Jadi kita menggunakan pin Arduino GPIO sebagai ground, bukan Vcc. Jika Anda secara tidak sengaja menghubungkannya ke belakang, jangan khawatir. Anda dapat memodifikasi semua TINGGI ke RENDAH dan RENDAH ke TINGGI dalam fungsi kontrol led.

Langkah 4: Mempersiapkan Sakelar (Tekan Tombol Sebenarnya)

Mempersiapkan Sakelar (Sebenarnya Tombol Tekan)
Mempersiapkan Sakelar (Sebenarnya Tombol Tekan)
Mempersiapkan Sakelar (Sebenarnya Tombol Tekan)
Mempersiapkan Sakelar (Sebenarnya Tombol Tekan)
Mempersiapkan Sakelar (Sebenarnya Tombol Tekan)
Mempersiapkan Sakelar (Sebenarnya Tombol Tekan)

Untuk sakelar (saya akan menyebutnya sakelar karena saya menggunakan sakelar mikro, tetapi Anda tahu itu adalah tombol tekan), kita membutuhkan resistor pull-down 4k7 dan tentu saja sakelar itu sendiri. Ah, jangan lupa siapkan beberapa kabel. Mulailah dengan menyolder resistor dan seutas kabel ke ground bersama (COM) dari sakelar mikro. Kemudian, solder sepotong kabel lain ke sakelar mikro yang biasanya terbuka (NO). Terakhir, pasang kabel lain ke resistor. Amankan dengan lem panas.

Pojok pengetahuan: Mengapa kita membutuhkan resistor pull-down?

"Jika Anda melepaskan pin I/O digital dari semuanya, LED mungkin berkedip tidak menentu. Ini karena inputnya "mengambang" - yaitu, secara acak akan mengembalikan TINGGI atau RENDAH. Itu sebabnya Anda memerlukan pull-up atau resistor pull-down di sirkuit." --Sumber: situs web Arduino

Langkah 5: Mempersiapkan Strip LED

Mempersiapkan Strip LED
Mempersiapkan Strip LED
Mempersiapkan Strip LED
Mempersiapkan Strip LED

Strip LED untuk lampu samping tempat tidur, yang opsional. Cukup sambungkan strip LED dan sakelar geser secara seri, tidak ada yang istimewa.

Langkah 6: Mempersiapkan Sensor Kapasitansi

Mempersiapkan Sensor Kapasitansi
Mempersiapkan Sensor Kapasitansi
Mempersiapkan Sensor Kapasitansi
Mempersiapkan Sensor Kapasitansi
Mempersiapkan Sensor Kapasitansi
Mempersiapkan Sensor Kapasitansi
Mempersiapkan Sensor Kapasitansi
Mempersiapkan Sensor Kapasitansi

Oke simak gambarnya. Pada dasarnya kita hanya akan menempelkan kawat ke sepotong kecil aluminium foil (karena aluminium foil tidak dapat disolder) lalu rekatkan pada sepotong kecil papan pemasangan. Pengingat yang baik, pastikan Anda tidak menempelkan aluminium foil sepenuhnya. Biarkan sebagian terbuka untuk kontak langsung.

Langkah 7: Mempersiapkan Catu Daya

Mempersiapkan Catu Daya
Mempersiapkan Catu Daya
Mempersiapkan Catu Daya
Mempersiapkan Catu Daya
Mempersiapkan Catu Daya
Mempersiapkan Catu Daya

Karena saya menggunakan baterai li-on sebagai catu daya, saya memerlukan modul TP4056 untuk pengisian dan perlindungan, dan konverter boost untuk mengubah tegangan menjadi 9v. Jika Anda memutuskan untuk menggunakan adaptor dinding 9V, maka Anda mungkin memerlukan jack DC, atau cukup sambungkan secara langsung. Perhatikan bahwa nilai resistor untuk amplifier dirancang untuk 9V dan jika Anda ingin menggunakan tegangan lain, Anda mungkin perlu mengubah resistor.

Langkah 8: Menghubungkan Mereka ke Arduino

Menghubungkan Mereka ke Arduino
Menghubungkan Mereka ke Arduino
Menghubungkan Mereka ke Arduino
Menghubungkan Mereka ke Arduino
Menghubungkan Mereka ke Arduino
Menghubungkan Mereka ke Arduino

Ikuti skemanya! Ikuti skemanya! Ikuti skemanya!

Jangan menghubungkan pin yang salah atau hal-hal akan menjadi aneh.

Langkah 9: Kandang

Lampiran
Lampiran
Lampiran
Lampiran
Lampiran
Lampiran
Lampiran
Lampiran

Dimensi desain saya adalah 6.5cm*6.5cm*8cm, jadi agak besar. Terdiri dari jendela depan untuk tampilan LED dan jendela atas untuk lampu samping tempat tidur. Untuk desain saya, lihat gambar.

Langkah 10: Waktu Pemrograman

Image
Image
Waktu Pemrograman!
Waktu Pemrograman!

Unduh sketsa saya di bawah ini dan unggah ke Arduino Anda. Jika Anda tidak tahu bagaimana melakukan ini, jangan repot-repot melakukan proyek ini! Nah bercanda, ini dia tutorial yang bagus: Unggah sketsa ke arduino

Kemudian buka monitor serial, dan Anda akan melihatnya menampilkan waktu saat ini. Untuk mengatur waktu, berikut adalah cara melakukannya.

Untuk mengatur jam: h, XX -- di mana xx adalah jam saat ini

Untuk mengatur menit: min, XX -- xx adalah menit saat ini

Untuk mengatur detik: s, XX

Untuk mengatur tanggal: d, XX

Untuk mengatur bulan: mon, XX

Ketika komentar di atas dijalankan, itu akan mengembalikan Anda nilai yang baru saja Anda tetapkan. (Misalnya ketika Anda mengatur jam dengan h, 15, itu akan mengembalikan Jam: 15 di monitor serial.

Untuk sensor kapasitansi, Anda mungkin perlu mengkalibrasinya sebelum berfungsi. Untuk melakukan ini, tekan sakelar mikro dua kali, dan lihat monitor serial. Itu harus menampilkan banyak angka. Sekarang letakkan jari Anda pada sensor kapasitansi, dan perhatikan kisaran angkanya. Selanjutnya, ubah variabel "captrigger". Katakanlah Anda mendapatkan 20-30 saat ditekan, lalu atur captrigger ke 20.

Sketsa menggunakan perpustakaan ADCTouch, pastikan Anda menginstalnya.

Langkah 11: Mekanisme Korektif

Periode waktu untuk mekanisme korektif dalam kode saya diatur ke yang akurat untuk saya. Jika waktunya masih belum akurat, Anda perlu mengubah nilai variabel "cordur"

Kordur sekarang default ke 0 di pembaruan terbaru.

Nilai corrdur berarti berapa milidetik yang dibutuhkan untuk memperlambat satu detik

Untuk mengetahui nilai corrdur, gunakan rumus:

2000/(y-x)/x)

di mana x=durasi waktu yang sebenarnya dan y=durasi waktu yang berlalu pada jam, keduanya dalam sekon

Untuk mencari nilai x dan y, Anda perlu melakukan sedikit percobaan.

Atur waktu jam ke waktu sebenarnya dan catat waktu awal (waktu awal aktual dan waktu awal jam harus sama). Setelah beberapa saat (beberapa jam), catat waktu aktual akhir dan waktu akhir jam.

x=waktu akhir-waktu awal aktual dan y=waktu akhir-waktu awal jam

Kemudian ubah nilai corrdur pada kode tersebut dan reupload ke Arduino.

Kemudian ulangi tes dan kali ini rumusnya berubah menjadi:

2000/((2/z)+(y-x/x))

Dimana x dan y sama dengan sebelumnya, sedangkan z adalah nilai cordur saat ini.

Unggah lagi dan lakukan tes berulang-ulang sampai cukup tepat untuk Anda.

Jika jam Anda masih melaju bahkan corrdur disetel ke 0 (berarti tidak ada mekanisme korektif), Anda perlu mengubah detik++ ke detik-- di bagian mekanisme korektif dari kode (saya berkomentar), setel corrdur ke 0, kemudian temukan no. milidetik yang dibutuhkan untuk mempercepat satu detik.

Langkah 12: Cara Menggunakan Semua Fungsi

Image
Image

Anda dapat mengubah mode dengan menekan tombol mikro.

Pada mode pertama, itu hanya menampilkan waktu. Jika lampu indikator berkedip 1 kali per detik, alarm mati. Jika 2 kali per detik, alarm menyala. Anda dapat menunda alarm selama 10 menit dalam mode pertama dengan menekan sensor kapasitansi.

Pada mode kedua, ini menampilkan tanggal. Menekan sensor kapasitansi tidak melakukan apa-apa.

Pada mode ketiga, Anda dapat mengatur timer. Menekan sensor kapasitansi akan menyalakan timer dan Anda akan melihat lampu indikator mulai berkedip. Sensor kapasitansi juga digunakan untuk mengatur waktu timer. Rentang timer adalah 1 menit hingga 59 menit.

Pada mode keempat, Anda dapat mengatur jam alarm menggunakan sensor kapasitansi

Pada mode kelima, Anda dapat mengatur menit alarm menggunakan sensor kapasitansi.

Pada mode keenam, menekan sensor kapasitansi akan mengatur ulang menit ke 30 dan detik ke 0 tanpa mengubah jam. Itu berarti selama jam Anda tidak melayang lebih dari 30 menit, Anda dapat mengkalibrasi ulang menggunakan mode ini.

Mode ketujuh adalah mode tidak melakukan apa-apa jika sensor kapasitansi mengalami gangguan saat mengisi daya.

Oh, untuk menutup alarm, cukup tekan sakelar mikro. (PEMBARUAN TERBARU UNTUK TERMASUK ALARM TUNDA)

Nah, bagaimana dengan membaca jam? Mudah! Membaca Jam Biner -- Wikihow Anda mungkin merasa aneh pada awalnya, tetapi Anda akan terbiasa!

Langkah 13: Kesimpulan

Kesimpulan
Kesimpulan
Kesimpulan
Kesimpulan

Mengapa saya memulai proyek ini. Awalnya karena saya memiliki jam digital tua yang tergeletak di sekitar dan saya ingin mengubahnya menjadi jam alarm. Sayangnya jam tangan lama ternyata rusak. Jadi saya seperti mengapa tidak membangunnya menggunakan Arduino? Dengan sedikit pencarian google, saya menemukan proyek jam biner ini tanpa RTC yang dapat diinstruksikan oleh Cello62. Namun, tidak memiliki fitur jam alarm yang saya inginkan, jadi saya mengambil kode dan memodifikasinya sendiri. Dan proyek itu lahir. Selain itu, saya melihat kontes jam berjalan dengan instruksi baru-baru ini yang memberi saya lebih banyak motivasi untuk melakukan ini. Bagaimanapun, ini masih proyek pertama saya menggunakan Arduino, begitu banyak kemungkinan perbaikan.

Peningkatan di masa depan:

1) Gunakan RTC

2) Atur alarm atau waktu atau timer secara nirkabel!

3) Fitur apa pun yang saya pikirkan

Langkah 14: Perbarui: Setelah Satu Minggu Penggunaan

Pembaruan: Setelah Satu Minggu Penggunaan
Pembaruan: Setelah Satu Minggu Penggunaan
Pembaruan: Setelah Satu Minggu Penggunaan
Pembaruan: Setelah Satu Minggu Penggunaan
Pembaruan: Setelah Satu Minggu Penggunaan
Pembaruan: Setelah Satu Minggu Penggunaan

Selain masalah yang jelas - penyimpangan waktu, masalah berikutnya yang akan saya katakan adalah konsumsi daya. Pertama-tama, saya menaikkan tegangan hingga 9v, yang kemudian akan diturunkan oleh regulator linier di Arduino. Regulator linier sangat tidak efisien. Jam hanya bertahan selama SATU HARI. Itu berarti saya harus mengisi ulang setiap hari. Itu bukan masalah terbesar sampai Anda menyadari bahwa keseluruhan sistem hanya sekitar 50% efisien. Mengingat baterai saya 2000mAh, saya akan dapat menghitung daya yang terbuang setiap hari.

Daya yang terbuang=(7.4Wh*10%)+(7.4Wh*90%*50%)=4.07Wh sehari

Itu adalah 1.486kWh per tahun! Itu bisa digunakan untuk merebus, eh, 283g air (dari 25 C sampai 100 C)? Tapi bagaimanapun, saya akan meningkatkan efisiensi jam. Cara melakukannya adalah dengan tidak menggunakan regulator linier sama sekali. Itu artinya kita harus mengatur boost converter untuk output 5V langsung ke pin 5V di Arduino. Selanjutnya, untuk meminimalkan daya yang terbuang lebih jauh, saya harus melepas dua LED on board (pin13 dan daya), karena akan membuang 0,95Wh per hari. Sayangnya, saya benar-benar noob di SMD solder jadi satu-satunya cara bagi saya untuk melakukan ini adalah memotong rel di papan. Setelah ini, saya harus melepas resistor emitor pada bel dan lampu samping tempat tidur (strip LED tidak berfungsi pada 5V). Tetapi apakah itu berarti Anda harus melepaskan fitur luar biasa itu? Tidak! Anda memiliki dua pilihan di sini: Gunakan dioda LED 5mm normal, atau gunakan strip LED 5V. Tetapi bagi saya, saya sudah merasa lelah untuk melakukan proyek ini selama seminggu terakhir, jadi saya memutuskan untuk melepaskan fitur ini. Namun, saya menggunakan sakelar pada awalnya untuk fitur lampu untuk menghidupkan atau mematikan panel jam untuk lebih menghemat energi, tetapi akhirnya LED berkedip ketika saya mematikannya. Bug menjadi fitur? Saya tidak tahu (Ada yang tahu tolong beri tahu saya di bawah).

Di akhir modifikasi, jam sekarang bertahan lebih dari 2 hari!

Selanjutnya saya memiliki masalah yang kurang serius dengan jam. Selama pengisian, sensor kapasitansi akan menjadi gila, jadi saya menambahkan mode lain yang sama sekali tidak melakukan apa-apa.

Adapun penyimpangan waktu, karena sangat merepotkan untuk menyambungkan ke komputer setiap hari untuk mengatur ulang, saya telah menambahkan mode lain yang akan mengatur menit ke 30 dan detik ke 0. Itu berarti Anda bisa mengatur ulang jam setengah lewat!

Direkomendasikan: