Daftar Isi:

Multi-Timer W/ Kontrol Eksternal: 13 Langkah
Multi-Timer W/ Kontrol Eksternal: 13 Langkah

Video: Multi-Timer W/ Kontrol Eksternal: 13 Langkah

Video: Multi-Timer W/ Kontrol Eksternal: 13 Langkah
Video: How to connect and set analog timer relay 2024, Juli
Anonim
Multi-Timer W/ Kontrol Eksternal
Multi-Timer W/ Kontrol Eksternal

Instructable proyek ini adalah build dari Timer multi fungsi

Timer ini mampu berfungsi sebagai:

  1. Alarm tujuan umum dengan waktu yang dapat dipilih antara 1 detik dan +90 jam. Memiliki hitungan mundur dengan alarm yang dapat didengar dan/atau kontrol perangkat eksternal hingga selesai kemudian indikasi penghitungan waktu sejak alarm.
  2. Pengatur waktu tidur siang dengan 7 waktu yang dapat dipilih, hitungan mundur, dan alarm saat selesai.
  3. Pengatur waktu meditasi dengan 4 waktu yang dapat dipilih, dengan hitungan mundur dan kicauan singkat setelah selesai, hitung dengan kicauan lain pada 5 menit setelah itu.

Proyek ini dapat dibangun seperti yang dijelaskan di sini atau dimodifikasi agar sesuai. Saya sebelumnya membuat timer dengan fungsi ini dan menggunakannya di Instructable pertama saya untuk mengontrol kotak paparan UV.

Saya pikir saya bisa menerbitkan program dan desain papan asli. Namun, untuk beberapa alasan saya tidak dapat menemukan kode tersebut. Saya juga ingin melakukan perbaikan pada perangkat keras untuk membuat sirkuit kontrol lebih fleksibel dan mengurangi pengurasan baterai. Hasil desain ulang papan sirkuit utama dan penulisan ulang kode memberikan kesempatan untuk membahas pendekatan pemrograman dan desain perangkat keras.

Setiap kali saya membuat papan sirkuit, saya sering menemukan bahwa ada kekurangan dalam desain atau penempatan komponen. Papan yang saya buat juga merupakan salah satu dari dua kekurangan. Plus, saya hanya ingin terlibat dalam semua aspek proyek dari awal sampai akhir. Ini adalah beberapa alasan saya membuat papan sirkuit sendiri daripada mengirim file Gerber ke luar negeri untuk pembuatan. Mungkin saya hanya tua dan terjebak dalam cara saya. Proyek ini mencerminkan bias ini. Karena saya membuat papan sirkuit saya sendiri, desain saya dan file Gerber saya tidak memenuhi standar manufaktur, saya tidak menyertakan file-file ini. Mereka yang tidak ingin mengetsa dan menyelesaikan papan dipersilakan untuk menyiapkan desain mereka sendiri dan memposting file Gerber di bagian komentar. Harap papan Anda dibuat dan diuji sebelum memposting.

Langkah 1: Ikhtisar Elemen Perangkat Keras

Perangkat ini didukung oleh 4 baterai AAA dan dikendalikan oleh Arduino Pro Mini 5V.

Bel/speaker kecil menyediakan alarm yang dapat didengar.

Relai 5v mini memberikan tegangan kontrol ke perangkat eksternal. Fleksibilitas disediakan di sumber output tegangan kontrol ini.

Rotary encoder dengan tombol tekan menyediakan pilihan menu.

Layar OLED dan sakelar start/stop sesaat melengkapi antarmuka pengguna.

Perangkat keras elektronik tambahan terdiri dari sakelar daya SPDT dan jack telepon mini untuk terhubung ke perangkat eksternal.

Selain itu, file untuk membantu Anda dalam proyek ini disediakan:

File STL untuk kasus proyek cetak 3D.

Gambar topeng tembaga dan solder untuk etsa dan penyelesaian papan sirkuit kontrol dan encoder putar.

Skema dan gambar papan sebagai referensi bagi mereka yang ingin memodifikasi desain saya.

Anda mungkin ingin meninjau Instruksi saya tentang membuat papan sirkuit dua sisi sebagai contoh cara produksi papan sirkuit.

Langkah 2: Ikhtisar Perangkat Lunak

Bersama dengan file sumber Arduino, beberapa informasi tambahan yang mungkin berguna..

Pustaka kontrol perangkat keras digunakan jika tersedia (tombol de-bounce, kontrol OLED, pembacaan rotary encoder).

Program ini mengimplementasikan finite state machine (FSM) sederhana untuk mengontrol eksekusi kode sebagai pernyataan sakelar dalam fungsi loop.

Kelas Menu ditentukan untuk memungkinkan pemilihan opsi yang ditampilkan pada OLED dan pemilihan menggunakan encoder putar.

Input diimplementasikan dengan polling langsung (non-interrupt driven) karena tidak memerlukan waktu yang kritis dan membuat kode lebih jelas.

Pernyataan cetak ke Serial digunakan untuk membantu melacak eksekusi kode dan debugging

Berbagai jenis elemen struktur program antara lain:

  • Beberapa tab kode untuk mengisolasi beberapa fungsi dan variabel kontrol perangkat keras.
  • Beralih pernyataan untuk mengatur nilai keadaan (FSM) dan variabel kontrol.
  • Definisi struktur
  • Enumerasi untuk memungkinkan penetapan nilai status sebagai teks.
  • #define definisi pra-prosesor untuk pin perangkat keras dan nilai standar.

Langkah 3: Daftar Bagian

Buat Kandang
Buat Kandang

Saya tidak yakin di mana harus meletakkan langkah ini karena dapat dilakukan di hampir semua titik. Saya menggunakan kotak enklosur cetak 3D. Anda mungkin tidak memiliki akses ke printer 3D atau lebih memilih jenis penutup lain seperti kotak Aluminium, plastik Potong Laser, Kayu Ukiran Tangan atau jenis lain yang Anda gunakan untuk proyek elektronik Anda. Saya telah menyertakan file STL untuk kenop encoder putar atas, bawah, dan bezel OLED. Gunakan file ini dan pemotong pilihan Anda untuk membuat file gcode untuk printer Anda.

Saya mencetak semua bagian menggunakan filamen PLA, satu warna untuk penutup atas dan bawah, satu lagi warna kontras untuk kenop dan bezel (yang direkatkan ke atas.) Saya tidak akan menentukan semua pengaturan alat pengiris saya tetapi, gunakan Tri -Infill segi enam setidaknya 35% untuk memungkinkan penyadapan sekrup sudut dan pengaturan "tidak ada dukungan" untuk huruf yang ditorehkan untuk dibaca. Saya mencetak kotak menggunakan ketinggian lapisan "normal" printer saya.

Langkah 9: Merancang dan Menulis Kode

Langkah ini opsional tetapi disarankan untuk pemahaman yang lebih baik.

Sebagian besar upaya dalam hal jam adalah penulisan kode. Anda dapat melewati langkah ini jika Anda menggunakan program terlampir apa adanya. Namun, disarankan Anda meluangkan waktu untuk meninjau kode untuk pemahaman yang lebih baik atau modifikasi untuk memenuhi kebutuhan Anda.

Komentar berikut mungkin membantu dalam memahami proses ini.

  • Komentar- Berkomentarlah secara ekstensif - Saya sering menulis komentar sebelum saya menulis kode.
  • Bagi & taklukkan - gunakan fungsi, kelas, dan modul (tab.) Gunakan kompilasi yang sering (Verifikasi) untuk memeriksa sintaks. Debug - Gunakan pernyataan cetak untuk memverifikasi aliran dan nilai pengujian serta antarmuka perangkat keras. Jangan takut untuk mengatasi masalah saat Anda pergi, tidak ada yang menulis kode yang bebas bug!
  • Konstanta - #define instruksi pra-kompiler menetapkan nama ke nomor pin. Definisi variabel const dengan komentar mengurangi atau menghilangkan angka "Ajaib". Penggunaan konstanta yang terletak di awal program atau fungsi memungkinkan perubahan parameter tanpa menulis ulang kode
  • Pustaka yang Telah Ditentukan - Menggunakan Pustaka yang telah ditentukan sebelumnya mengurangi beban pemrograman dan waktu debug.
  • Blok Desain - Dibuat menggunakan fungsi, Mengisolasi kode di tab terpisah (program terkait & file.h), enumerasi, kelas, dan struktur. Fokuskan perhatian Anda pada masing-masing untuk memahami cara kerjanya dalam kaitannya dengan kode lainnya.
  • State Machine(s) - Ini adalah pola pemrograman yang bekerja sangat baik dengan Arduino atau program apa pun yang digunakan untuk mengontrol output atau mereaksikan input. Beberapa rasa mesin negara ada. Kode ini menggunakan mesin negara berdasarkan pernyataan switch dalam fungsi loop. Formulir ini mudah dimengerti dan di-debug.
  • Tampilan & Menu - Output OLED singkat tetapi memberikan umpan balik yang cukup untuk pengguna biasa dan mendukung pemilihan opsi. Ini terintegrasi dengan baik dengan mesin negara (hampir semua negara memiliki layar OLED terkait). Kelas Menu sangat membantu dalam mengisolasi kode untuk menampilkan dan memilih opsi menu

Silakan baca program beberapa kali. Ini membantu untuk mengambil satu fungsi atau bagian pada suatu waktu. Saya sering tidak mengerti kode yang saya tulis kecuali saya telah membacanya setidaknya dua kali!

Langkah 10: Instal Program

Salin file terlampir ke komputer Anda lalu unzip ke direktori Sketches Anda

Hubungkan Arduino ke komputer Anda dan unduh kode program seperti biasa. Buka monitor serial Arduino IDE untuk memverifikasi bahwa program sedang berjalan dan membantu dalam debugging.

Langkah 11: Pasang Timer

Merakit Timer
Merakit Timer
Merakit Timer
Merakit Timer
Merakit Timer
Merakit Timer
Merakit Timer
Merakit Timer

Setelah bagian atas dan bawah casing dicetak dan dibersihkan, komponen dapat dipasang menggunakan sekrup plastik self-tapping kecil. Pertama, dudukan baterai dijepit ke belakang. Bagian-bagian lainnya dipasang ke bagian atas penutup dengan urutan sebagai berikut:

  1. OLED dan kabel
  2. Sakelar & pengkabelan Start/Stop
  3. Rotary Encoder dan kabel
  4. Speaker / Buzzer & kabel
  5. Soket dan kabel kontrol eksternal
  6. Sakelar geser Nyala/Mati dan perkabelan (periksa ulang orientasi agar nyala ke arah yang Anda inginkan

Jika Anda menyolder kabel langsung ke papan sirkuit Anda, lakukan ini setelah semua bagian terpasang ke penutup Anda untuk mengurangi kerusakan kawat. Anda harus menunggu sampai kabel disambungkan ke papan utama sebelum Anda memasang papan itu ke belakang.

Jika Anda menggunakan pin header dan konektor Dupont, pertama pasang papan utama ke belakang menggunakan sekrup kemudian pasang komponen. Hati-hati saat Anda menghubungkan baterai ke papan utama dan perhatikan polaritas yang benar. Anda juga harus mengatur jumper atau kabel kontrol relai saat ini.

Bagian bawah selungkup terhubung ke atas melalui penggunaan sekrup mesin kepala bundar 4-40, satu di setiap sudut. Empat lubang di bagian atas harus diketuk dengan keran 4/40 atau jika Anda menggunakan sisipan berulir 4-40, Anda perlu mengebor lubang untuk menerimanya. 4 lubang untuk pemasangan papan sirkuit utama di bagian bawah juga perlu dibor. Pasang papan ini ke dudukan baterai snap-in dan tandai lokasi lubangnya. Bor yang sesuai untuk sekrup pemasangan Anda.

Langkah 12: Pengujian Integrasi

Tes integrasi
Tes integrasi
Tes integrasi
Tes integrasi
Tes integrasi
Tes integrasi

Pengujian akhir (integrasi) dilakukan dengan mencoba semua opsi menu dan memverifikasi bahwa mereka bekerja dengan perangkat keras seperti yang dirancang. Untuk kode yang saya berikan, itu sudah cukup. Jika Anda menulis kode Anda sendiri atau memodifikasi kode saya, pengujian Anda harus lebih ekstensif. Saya tidak percaya semua pemilihan waktu perlu dilakukan tetapi Anda perlu mencoba semua opsi alarm standar dan memvalidasi alarm Tidur Siang dan Meditasi berfungsi seperti yang dirancang.

Langkah 13: Pikiran Terakhir

Selamat atas keberhasilan Anda, saya berharap, proyek. Saya yakin Anda mengalami masalah di sepanjang jalan yang perlu Anda selesaikan. Saya juga yakin bahwa beberapa instruksi saya bisa lebih lengkap atau lebih jelas. Tolong beri tahu saya melalui bagian komentar apa hasil Anda dan berikan saran tentang bagaimana petunjuk ini dapat ditingkatkan.

Terima kasih atas waktu Anda melihat dan/atau membangun proyek ini.

Direkomendasikan: