Isi kandungan:
- Bekalan
- Langkah 1: Sambungkan Litar
- Langkah 2: Menyiapkan Bahagian Buzzer
- Langkah 3: Menyiapkan Panel LED
- Langkah 4: Menyiapkan Suis (Butang tekan Sebenarnya)
- Langkah 5: Menyiapkan Jalur LED
- Langkah 6: Menyiapkan Sensor Kapasitansi
- Langkah 7: Menyiapkan Bekalan Kuasa
- Langkah 8: Menghubungkannya dengan Arduino
- Langkah 9: Penutup
- Langkah 10: Masa Pengaturcaraan
- Langkah 11: Mekanisme Pembetulan
- Langkah 12: Cara Menggunakan Semua Fungsi
- Langkah 13: Kesimpulannya
- Langkah 14: Kemas kini: Selepas Satu Minggu Penggunaan
Video: Jam Penggera Binari Arduino DIY: 14 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Ini jam binari klasik lagi! Tetapi kali ini dengan lebih banyak fungsi tambahan! Dalam arahan ini, saya akan menunjukkan kepada anda cara membina jam penggera binari dengan Arduino yang dapat menunjukkan kepada anda bukan sahaja waktu, tetapi tarikh, bulan, bahkan dengan fungsi pemasa dan penggera yang juga dapat digunakan sebagai lampu tempat tidur! Tanpa berlengah lagi mari kita mulakan!
Catatan: Projek ini tidak menggunakan modul RTC, jadi ketepatan bergantung pada papan yang anda gunakan. Saya telah memasukkan mekanisme pembetulan yang akan membetulkan pergeseran waktu dalam jangka masa tertentu tetapi anda perlu bereksperimen untuk mencari nilai yang betul untuk jangka masa (Lebih lanjut mengenai ini di bawah), dan walaupun dengan mekanisme pembetulan, ia masih akan melayang. dalam jangka masa yang panjang (jika dibandingkan tanpa satu). Sekiranya ada yang berminat, sila gunakan modul RTC dalam projek ini
Bekalan
LED 5mm (dalam warna apa pun, saya menggunakan 13 LED putih dengan satu LED RGB sebagai penunjuk) --- 14 pcs
Arduino Nano (yang lain mungkin berfungsi) --- 1 pc
Suis mikro --- 1 pc
Sekeping kecil aluminium foil
Papan pemasangan (untuk kandang, tetapi jangan ragu untuk merancang sendiri)
Sekeping kertas putih (atau warna lain)
Sebilangan filem plastik (yang digunakan sebagai sampul buku)
Sekumpulan wayar
Buzzer --- 1pc
Transistor NPN --- 1pc
Perintang 6k8 --- 14 pcs, 500R --- 1 pc, 20R (10Rx2) --- 1 pc, 4k7 --- 1pc
Bekalan kuasa untuk projek (saya menggunakan bateri li-on)
Jalur LED 5050 dan suis slaid (pilihan)
Langkah 1: Sambungkan Litar
Saya akan membahagikan langkah ini kepada:
1) Bahagian buzzer
2) Panel LED
3) Suis (butang tekan)
4) Jalur LED
5) Sensor kapasitansi
6) Bekalan kuasa
7) Sambungkan semuanya ke Arduino
Selalunya, ini hanyalah langkah "ikuti skema". Oleh itu, lihat skema di atas atau muat turun dan cetak!
Langkah 2: Menyiapkan Bahagian Buzzer
Sekiranya anda pernah menggunakan bel dengan Arduino sebelumnya, anda akan tahu bahawa jika kami menghubungkannya terus ke Arduino, ia tidak akan cukup kuat. Oleh itu, kita memerlukan penguat. Untuk membina penguat, kita memerlukan transistor NPN (pada asasnya NPN akan berfungsi, saya menggunakan S9013 kerana saya mendapatkannya dari projek lama), dan beberapa perintang untuk mengehadkan arus. Untuk memulakan, kenal pasti pengumpul, pemancar dan pangkalan transistor terlebih dahulu. Sebilangan kecil data lembar data akan berfungsi untuk ini. Kemudian, pasangkan pemungut transistor ke terminal buzzer negatif. Di terminal positif buzzer, kami hanya memasangkan sepotong wayar kepadanya sehingga kami dapat menyoldernya ke Arduino kami kemudian. Selepas ini, pateri perintang 500R (atau nilai perintang yang serupa) ke pangkal transistor dan dari perintang, pateri sekeping wayar lain untuk kegunaan masa depan. Akhirnya, pateri dua perintang 10R secara bersiri ke pemancar transistor dan sambungkan wayar lain dari perintang.
Sungguh, rujuk skema.
p / s: Saya masih tidak tahu bagaimana memilih perintang untuk transistor pada masa menulis ini. Nilai yang saya gunakan dipilih secara empirikal.
Langkah 3: Menyiapkan Panel LED
Pasang LED dan perintang ke papan prototaip dengan betul dan pateri. Itu sahaja. Ikut skema. Sekiranya anda berminat dengan jarak yang saya gunakan, jarak 3 lubang untuk setiap lajur, dan jarak dua lubang untuk setiap baris (rujuk gambar). Dan LED penunjuk? Saya memasangnya secara rawak.
Setelah menyolder LED dan perintang ke papan, sambungkan semua terminal positif LED bersama-sama. Kemudian, kabel solder satu demi satu ke setiap perintang pada terminal negatif LED supaya kita dapat menyoldernya ke Arduino kemudian.
CATATAN: Anda mungkin keliru dengan langkah ini. Ingat, bukannya menyambungkan semua landasan bersama, kita menghubungkan semua terminal positif bersama-sama dan terminal negatif ke pin individu di Arduino. Oleh itu, kami menggunakan pin Arduino GPIO sebagai ground, bukan Vcc. Sekiranya anda menyambungkannya secara tidak sengaja, jangan risau. Anda boleh mengubah semua HIGH ke RENDAH dan RENDAH ke TINGGI dalam fungsi kawalan led.
Langkah 4: Menyiapkan Suis (Butang tekan Sebenarnya)
Untuk suis (saya akan memanggilnya suis kerana saya menggunakan suis mikro, tetapi anda tahu ia adalah butang tekan), kami memerlukan perintang tarik 4k7 dan tentu saja, suis itu sendiri. Ah, jangan lupa menyiapkan beberapa wayar. Mulakan dengan menyolder perintang dan sekeping wayar ke landasan bersama (COM) suis mikro. Kemudian, pasangkan satu lagi wayar ke suis mikro yang terbuka (TIDAK). Akhirnya, pasangkan wayar lain ke perintang. Lindungi dengan sedikit gam panas.
Sudut pengetahuan: Mengapa kita memerlukan perintang penarik?
"Sekiranya anda memutuskan pin I / O digital dari segala-galanya, LED mungkin berkedip tidak menentu. Ini kerana inputnya" terapung "- iaitu, ia akan mengembalikan secara rawak sama ada TINGGI atau RENDAH. Itulah sebabnya anda memerlukan penarikan atau perintang tarik di litar. " - Sumber: laman web Arduino
Langkah 5: Menyiapkan Jalur LED
Jalur LED adalah untuk lampu sisi katil, yang menjadi pilihan. Cukup sambungkan jalur LED dan suis slaid bersama secara bersiri, tidak ada yang istimewa.
Langkah 6: Menyiapkan Sensor Kapasitansi
Ok rujuk gambar. Pada asasnya kita hanya akan memasang wayar ke sekeping kecil aluminium foil (kerana aluminium foil tidak dapat disolder) kemudian pita pada sekeping kecil papan pelekap. Peringatan yang baik, pastikan anda tidak merekatkan aluminium foil sepenuhnya. Biarkan sebahagiannya terkena untuk dihubungi.
Langkah 7: Menyiapkan Bekalan Kuasa
Oleh kerana saya menggunakan bateri li-on sebagai bekalan kuasa, saya memerlukan modul TP4056 untuk pengecasan dan perlindungan, dan penukar rangsangan untuk menukar voltan menjadi 9v. Sekiranya anda memutuskan untuk menggunakan penyesuai dinding 9V, maka anda mungkin memerlukan bicu DC, atau sambungkannya secara langsung. Perhatikan bahawa nilai perintang untuk penguat adalah reka bentuk untuk 9V dan jika anda ingin menggunakan voltan lain, anda mungkin perlu menukar perintang.
Langkah 8: Menghubungkannya dengan Arduino
Ikut skema! Ikut skema! Ikut skema!
Jangan sambungkan pin yang salah atau perkara akan menjadi pelik.
Langkah 9: Penutup
Dimensi reka bentuk saya ialah 6.5cm * 6.5cm * 8cm, jadi sedikit besar. Ia terdiri daripada tingkap depan untuk paparan LED dan tingkap atas untuk lampu sisi tempat tidur. Untuk reka bentuk saya, rujuk gambar.
Langkah 10: Masa Pengaturcaraan
Muat turun lakaran saya di bawah dan muat naik ke Arduino anda. Sekiranya anda tidak tahu bagaimana melakukan ini, jangan repot-repot melakukan projek ini! Nah hanya bergurau, berikut adalah tutorial yang bagus: Muat naik lakaran ke arduino
Kemudian buka monitor bersiri, dan anda akan melihatnya mengeluarkan masa semasa. Untuk menetapkan masa, berikut adalah cara untuk melakukan ini.
Untuk menetapkan jam: h, XX - di mana xx adalah jam semasa
Untuk menetapkan minit: min, XX - xx adalah minit semasa
Untuk menetapkan kedua: s, XX
Untuk menetapkan tarikh: d, XX
Untuk menetapkan bulan: mon, XX
Apabila komen di atas dilaksanakan, ia akan mengembalikan nilai yang baru anda tetapkan. (Contohnya ketika anda menetapkan jam dengan jam h, 15, jam harus mengembalikan Jam: 15 di monitor bersiri.
Untuk sensor kapasitansi, anda mungkin perlu menentukurkannya sebelum berfungsi. Untuk melakukan ini, tekan suis mikro dua kali, dan lihat monitor bersiri. Ia mesti mengeluarkan sejumlah besar. Sekarang letakkan jari anda pada sensor kapasitansi, dan lihatlah perhatikan bilangannya. Seterusnya, ubah pemboleh ubah "captrigger". Katakan anda mendapat 20-30 ketika ditekan, kemudian tetapkan captrigger ke 20.
Sketsa menggunakan perpustakaan ADCTouch, pastikan anda memasangnya.
Langkah 11: Mekanisme Pembetulan
Tempoh masa untuk mekanisme pembetulan dalam kod saya ditetapkan kepada yang tepat bagi saya. Sekiranya waktunya masih tidak tepat, anda perlu mengubah nilai pemboleh ubah "cordur"
Cordur kini lalai ke 0 dalam kemas kini terkini.
Nilai cordur bermaksud berapa milisaat yang diperlukan untuk melambatkan satu saat
Untuk mengetahui nilai cordur, gunakan formula:
2000 / (y-x) / x)
di mana x = jangka masa sebenar yang berlalu dan y = tempoh masa yang berlalu dari jam, keduanya dalam detik
Untuk mencari nilai x dan y, anda perlu melakukan sedikit eksperimen.
Tetapkan waktu jam ke waktu sebenar dan catat waktu awal (waktu awal sebenar dan waktu awal jam harus sama). Selepas beberapa saat (beberapa jam), catat waktu sebenar akhir dan waktu akhir jam.
x = waktu akhir sebenar-waktu awal dan y = waktu akhir akhir-waktu awal
Kemudian ubah nilai cordur dalam kod dan muat semula ke Arduino.
Kemudian ulangi ujian dan kali ini formula berubah menjadi:
2000 / ((2 / z) + (y-x / x))
Di mana x dan y adalah sama seperti sebelumnya, sementara z adalah nilai cordur semasa.
Muat naik sekali lagi dan lakukan ujian berulang-ulang sehingga cukup tepat untuk anda.
Sekiranya jam anda masih laju bahkan cordur diatur ke 0 (bermaksud tidak ada mekanisme pembetulan), anda perlu menukar ++ ke kedua-- dalam mekanisme pembetulan bahagian kod (saya mengomentarinya), tetapkan cordur ke 0, kemudian cari no. milisaat yang diperlukan untuk mempercepat satu saat.
Langkah 12: Cara Menggunakan Semua Fungsi
Anda boleh menukar mod dengan menekan suis mikro.
Pada mod pertama, ia hanya memaparkan waktu. Sekiranya lampu penunjuk berkelip pada 1 waktu sesaat, penggera dimatikan. Sekiranya 2 kali sesaat, penggera dihidupkan. Anda boleh menunda penggera selama 10 minit dalam mod pertama dengan menekan sensor kapasitans.
Pada mod kedua, ia memaparkan tarikh. Menekan sensor kapasitansi tidak membuat apa-apa.
Pada mod ketiga, anda boleh menetapkan pemasa. Menekan sensor kapasitans akan menghidupkan pemasa dan anda akan melihat lampu penunjuk mula berkelip. Sensor kapasitansi juga digunakan untuk menetapkan waktu pemasa. Julat pemasa adalah 1 minit hingga 59 minit.
Pada mod keempat, anda boleh menetapkan jam penggera menggunakan sensor kapasitansi
Pada mod kelima, anda boleh menetapkan minit penggera menggunakan sensor kapasitansi.
Pada mod keenam, menekan sensor kapasitansi akan menetapkan semula minit ke 30 dan kedua hingga 0 tanpa mengubah jam. Itu bermakna selagi jam anda tidak bergerak lebih dari 30 minit, anda boleh mengkalibrasinya semula menggunakan mod ini.
Mod ketujuh adalah mod buat apa-apa sekiranya sensor kapasitansi tidak berfungsi semasa mengecas.
Oh, untuk menutup penggera, tekan saja suis mikro. (KEMASKINI TERKINI UNTUK TERMASUK ALARM SNOOZE)
Nah, bagaimana dengan membaca jam? Ia mudah! Membaca Jam Binari - Wikihow Anda mungkin berasa pelik pada mulanya, tetapi anda akan terbiasa!
Langkah 13: Kesimpulannya
Mengapa saya memulakan projek ini. Pada mulanya, kerana saya mempunyai jam tangan digital lama yang berbaring dan saya mahu menjadikannya jam penggera. Malangnya jam tangan lama itu rosak. Jadi saya seperti mengapa tidak membinanya menggunakan Arduino? Dengan sedikit carian google, saya dapati projek jam binari ini tanpa RTC diarahkan oleh Cello62. Walau bagaimanapun, ia tidak mempunyai ciri jam penggera yang saya mahukan, jadi saya mengambil kodnya dan mengubahnya sendiri. Dan projek itu lahir. Lebih-lebih lagi, saya melihat pertandingan jam berjalan pada waktu yang boleh diarahkan baru-baru ini yang memberi saya lebih banyak motivasi untuk melakukan ini. Bagaimanapun, ini masih merupakan projek pertama saya menggunakan Arduino, begitu banyak kemungkinan peningkatan.
Penambahbaikan masa depan:
1) Gunakan RTC
2) Tetapkan penggera atau masa atau pemasa tanpa wayar!
3) Apa sahaja ciri yang saya fikirkan
Langkah 14: Kemas kini: Selepas Satu Minggu Penggunaan
Selain daripada masalah yang jelas - masa berlalu, yang seterusnya saya katakan ialah penggunaan kuasa. Pertama sekali, saya menaikkan voltan hingga 9v, yang kemudian akan diturunkan oleh pengatur linier di Arduino. Pengatur linier sangat tidak cekap. Jam hanya berlangsung selama SATU HARI. Itu bermaksud saya mesti mengisinya setiap hari. Itu bukan kesepakatan terbesar sehingga anda menyedari bahawa keseluruhan sistem hanya sekitar 50% cekap. Memandangkan bateri saya adalah 2000mAh, saya dapat mengira kuasa yang terbuang setiap hari.
Kuasa terbazirkan = (7.4Wh * 10%) + (7.4Wh * 90% * 50%) = 4.07Wj sehari
Iaitu 1.486kWh setahun! Itu boleh digunakan untuk merebus, eh, 283 g air (dari 25 C hingga 100 C)? Tetapi bagaimanapun, saya akan meningkatkan kecekapan jam. Cara untuk melakukan ini adalah sama sekali tidak menggunakan pengatur linier. Ini bermakna kita harus menyesuaikan penukar boost ke output 5V terus ke pin 5V pada Arduino. Seterusnya, untuk meminimumkan kuasa yang terbuang lebih jauh, saya harus mengeluarkan kedua-dua LED on board (pin13 dan power), kerana mereka akan membuang 0.95Wh sehari. Malangnya, saya benar-benar hebat pada pematerian SMD jadi satu-satunya cara untuk saya melakukan ini adalah memotong rel di papan. Selepas ini, saya harus mengeluarkan perintang pemancar pada buzzer dan lampu sisi katil (jalur LED tidak berfungsi pada 5V). Tetapi adakah itu bermaksud anda harus melepaskan ciri yang luar biasa itu? Tidak! Anda mempunyai dua pilihan di sini: Gunakan diod LED 5mm biasa, atau gunakan jalur LED 5V. Tetapi bagi saya, saya sudah merasa letih kerana melaksanakan projek ini sepanjang minggu lalu, jadi saya memutuskan untuk melepaskan ciri ini. Walau bagaimanapun, saya menggunakan suis pada asalnya untuk ciri cahaya untuk menghidupkan atau mematikan panel jam untuk menjimatkan lebih banyak tenaga, tetapi akhirnya LED berkelip ketika saya mematikannya. Bug menjadi ciri? Saya tidak tahu (Ada yang tahu sila beritahu saya di bawah).
Pada akhir pengubahsuaian, jam sekarang bertahan lebih dari 2 hari!
Seterusnya saya menghadapi masalah jam yang kurang serius. Semasa mengecas, sensor kapasitansi akan menjadi gila, jadi saya menambah mod lain yang sama sekali tidak berfungsi.
Mengenai masa berlalu, kerana sangat menyusahkan untuk menyambung ke komputer setiap hari untuk menetapkannya semula, saya telah menambah mod lain yang akan menetapkan minit hingga 30 dan kedua hingga 0. Itu bermakna anda boleh menetapkannya semula setengah jam lagi!
Disyorkan:
Jam Penggera Pintar: Jam Penggera Pintar Dibuat Dengan Raspberry Pi: 10 Langkah (dengan Gambar)
Jam Penggera Pintar: Jam Penggera Pintar Dibuat Dengan Raspberry Pi: Adakah anda pernah mahukan jam pintar? Jika ya, ini adalah penyelesaian untuk anda! Saya membuat Jam Penggera Pintar, ini adalah jam yang boleh anda ubah waktu penggera mengikut laman web. Apabila penggera berbunyi, akan ada bunyi (bel) dan 2 lampu akan
Skala Pintar DIY Dengan Jam Penggera (dengan Wi-Fi, ESP8266, Arduino IDE dan Adafruit.io): 10 Langkah (dengan Gambar)
Skala Pintar DIY Dengan Jam Penggera (dengan Wi-Fi, ESP8266, Arduino IDE dan Adafruit.io): Dalam projek saya sebelumnya, saya mengembangkan skala bilik mandi pintar dengan Wi-Fi. Ia dapat mengukur berat pengguna, memaparkannya secara tempatan dan mengirimkannya ke awan. Anda boleh mendapatkan lebih banyak maklumat mengenai ini di pautan di bawah: https: //www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Jam Penggera Jalan Sesame DIY (dengan Penggera Kebakaran!): 6 Langkah (dengan Gambar)
Jam Penggera Jalan Sesame DIY (dengan Fire Alarm!): Hai semua! Projek ini adalah yang pertama saya. Sejak hari lahir pertama sepupu saya akan datang, saya ingin membuat hadiah khas untuknya. Saya mendengar dari bapa saudara dan ibu saudara bahawa dia ke Sesame Street, jadi saya memutuskan dengan adik-beradik saya untuk membuat jam penggera berdasarkan
Jam Penggera Binari Berasaskan Arduino: 13 Langkah (dengan Gambar)
Jam Penggera Binari Berasaskan Arduino: Hai, hari ini saya ingin menunjukkan kepada anda bagaimana membina salah satu projek terbaru saya, jam penggera binari saya. Terdapat sebilangan besar jam Binari yang berbeza di internet, tetapi ini sebenarnya yang pertama, dibuat dari jalur LED yang berwarna-warni
Jam Penggera Sunrise LED Dengan Penggera Lagu yang Disesuaikan: 7 Langkah (dengan Gambar)
Jam Penggera Matahari LED Dengan Penggera Lagu yang Dapat Disesuaikan: Motivasi Saya Musim sejuk ini teman wanita saya menghadapi banyak masalah untuk bangun pada waktu pagi dan kelihatannya menderita SAD (Gangguan Afektif Musim). Saya bahkan menyedari betapa sukarnya bangun pada musim sejuk kerana matahari belum datang