Daftar Isi:
- Langkah 1: Skema
- Langkah 2: Tata Letak
- Langkah 3: "Logika" dari "Wort-Uhr"
- Langkah 4: Cuplikan Kode
- Langkah 5: Perumahan
Video: Wort-Uhr: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:53
Halo bersama!
Ini akan menjadi instruksi pertama saya dan jika Anda memiliki ide bagaimana memperbaikinya atau membuatnya lebih mudah dipahami, jangan ragu untuk menghubungi saya!
Yah pada awalnya, "jam" semacam ini bukan ide saya! Saya telah melihat banyak di seluruh internet dan mereka dapat dipesan hanya dengan beberapa dolar di toko web yang berbeda. Tapi saya tidak ingin membelinya, saya ingin membuatnya sendiri untuk belajar dan memahami cara kerjanya.
Satu kata untuk anggota "non-Jerman"… Maaf untuk fakta bahwa ini hanyalah "Jerman Wort Uhr". Ini mungkin dengan mudah dikonversi ke bahasa Inggris atau bahasa lain, tetapi karena saya orang Jerman, saya membuatnya dalam bahasa saya. Jika Anda memerlukan dukungan untuk bahasa Anda, hubungi saya dan saya akan mencoba membantu Anda.
Jadi ayo mulai…
Langkah 1: Skema
Skemanya lurus ke depan dan jika gambarnya buruk untuk dibaca, ada file PDF juga.
Mari kita mulai dari sudut kiri bawah. Ada catu daya sederhana menggunakan LM7805 untuk menghasilkan output 5V yang stabil untuk PIC, register geser (74HC164) dan chip waktu nyata DS3231. Semua LED juga dipasok dari bagian ini. D22 di ujung kanan hanya untuk menunjukkan catu daya dan dapat dengan mudah dipisahkan jika tidak diinginkan.
Anda dapat menggunakan catu daya DC apa pun untuk jam dengan kurang dari 40V, tetapi Anda kemudian harus memilih nilai yang sesuai untuk C7. Ini harus memiliki peringkat tegangan setidaknya dua kali lipat tegangan input dan ingat Anda membuat panas di LM7805 sehingga Anda harus mencoba untuk menjaga tegangan input serendah mungkin karena segala sesuatu yang lain hanya membuang-buang energi. Paling cocok adalah sesuatu antara 9V dan 12V DC.
Jangan repot-repot tentang polaritas catu daya Anda … MOSFET saluran-p (Q1) bertindak sebagai perlindungan polaritas palsu dan jam tidak akan berfungsi dan tidak mengalami kerusakan. Anda dapat memeriksa ini pada "daya" LED D22 jika dipasang.
Di sisi kanan skema adalah register geser serial-in paralel-out. Saya memutuskan untuk menggunakannya karena saya tidak ingin menggunakan PIC besar dengan banyak I/O-Port. Saya ingin menggunakan yang lebih kecil dan saya masih punya 16F1829 di rumah jadi pilihannya sudah jelas. Data (IN_1, IN_2 dan IN_3) disediakan oleh PIC (lihat bagian kode di bawah) dan REGISTER_CLK juga. Untuk kesederhanaan dalam kode dan tata letak PCB saya menggunakan dua dari 74HC164 untuk jam dan yang terakhir untuk "logika".
Di sudut kiri atas adalah PIC dan semua bagian yang diperlukan. Saya menggunakan jam internal sehingga tidak diperlukan osilator. Hanya tiga resistor untuk SCL, SDA dan MCLR. Untuk fakta bahwa saya menggunakan 32kHz sebagai indikasi "detik yang tepat" tidak perlu frekuensi yang cukup stabil dan akurat untuk PIC.
Di tengah ada DS3231 dengan minimum pada bagian eksternal. Sebenarnya saya hanya menggunakan input SDA dan SCL untuk komunikasi melalui I²C dan output 32kHZ sebagai referensi jam eksternal untuk Timer1 dari PIC16F1829. Untuk output ini, lembar data mengatakan itu adalah resistor pull-up eksternal yang diperlukan. Output lain yang tidak saya gunakan dalam proyek ini dan membiarkannya tidak terhubung.
Juga di tengah, LED … Seperti yang dapat Anda baca di skema saya menggunakan LED biru (yang dengan housing yang jelas) dan nilai resistor 1k Ohm. Jika Anda ingin membuat proyek ini sendiri, Anda harus memilih nilai resistor ini sesuai dengan warna dan jenis LED yang Anda pilih. Juga ingat di mana Anda ingin jam diatur. Satu saya berdiri di kamar tidur saya karena itu saya tidak ingin LED terlalu terang dan memilih nilai yang lebih besar untuk resistor. Lakukan beberapa percobaan pada papan tempat memotong roti dengan nilai LED dan resistor sebelum memasangnya di PCB.
Langkah 2: Tata Letak
Setelah menyelesaikan skema saatnya untuk mengarahkan PCB. Untuk itu saya menggunakan KiCAD (untuk skema juga). Tidak banyak yang bisa dikatakan, hanya rute garis.
Untuk fakta bahwa saya mencetak rumah jam sendiri, cukup penting di mana LED di lapisan atas berada. Saya hanya meletakkan LED dan resistor di lapisan atas, karena saya memesan PCB saya dipasang sebagian (semua bagian SMD) dan karena perusahaan yang saya pilih hanya menempatkan bagian di satu sisi dan bukan dua sisi.
Anda dapat melihat penempatannya dalam dua gambar 3 dimensi yang saya buat dari KiCAD.
Jika Anda tertarik… Anda dapat mengekspor PCB KiCAD ke Eagle dan kemudian cukup mudah untuk membangun perumahan, karena Anda memiliki referensi dari PCB.
Langkah 3: "Logika" dari "Wort-Uhr"
Bagian terbesar untuk proyek ini adalah kode untuk PIC…
Pada awalnya menemukan "logika" waktu lisan dalam bahasa Jerman dan menerjemahkannya ke dalam kode.
Sayangnya tidak mungkin untuk mengunggah file Excel secara langsung, tetapi saya harap ekspor PDF cukup dapat dibaca untuk Anda. Jika tidak, silakan hubungi saya dan saya akan mengirimkan file Excel asli kepada Anda. Dalam PDF Anda dapat melihat bagaimana saya mengatur logika untuk jam saya. Anda dapat melihat bagaimana saya melewati langkah waktu yang berbeda dan bagaimana ejaannya. Perhitungan di dalam kode (terutama pernyataan if-else) dapat diturunkan dari informasi di sisi kanan tabel. Satu bagian untuk menit dan satu bagian untuk jam.
Seperti yang Anda lihat, ini bukan sihir dan dapat dengan mudah dikodekan dalam C. Poin "paling sulit" di dalam logika adalah bagaimana menangani jam seperti yang Anda lihat di file yang hanya pada awal jam, jam sebenarnya ditampilkan. Di Jerman (mungkin ini mungkin hanya hal khusus Bavaria) "jam berikutnya" digunakan cukup awal.
Untuk pengkodean saya menggunakan MPLABX sebagai IDE pilihan saya.
Langkah 4: Cuplikan Kode
Saya tidak akan memposting kode saya di sini, tetapi jika Anda berniat untuk menulis kode Anda sendiri, saya akan memberi Anda beberapa petunjuk tentang apa yang "tersandung" selama pengembangan…
Pertama, pengisian "daftar":
Jika Anda terlalu sering mentransfer data baru ke register dan dalam siklus yang terlalu pendek, saya mengalaminya, bahwa LED mulai berkedip. Jadi saya membuat beberapa "bendera pemblokiran", bahwa hanya setiap menit "perhitungan" baru dari waktu bicara dilakukan dan pembaruan daftar dibuat.
Kode untuk mengisi register ada pada gambar di atas. Seperti yang Anda lihat saya mengisi semua 3 register secara paralel sehingga saya membutuhkan 3 pin PIC untuk data dan 1 pin untuk CLK. 74HC164 mengambil alih data baru pada transisi di jalur CLK dari 0 ke 1.
Sisa kode terutama hal-hal yang bergantung pada PIC, "waktu yang diucapkan" -logika dan penanganan komunikasi dan tombol. Komunikasi terutama disediakan oleh Microchip MPLABX karena saya menggunakan modul MSSP.
Ide yang bagus adalah membaca lembar data DS3231 karena data disimpan di dalam sebagai BCD sehingga Anda mungkin harus "mengubah" ini dalam kode Anda. Sejauh yang saya ketahui, saya adalah seorang pria "belajar sambil melakukan" dan TENTU SAJA tidak membaca lembar data … Membuat saya gugup dan berjam-jam.
Seperti yang mungkin Anda perhatikan, ada dua cara untuk "menjaga waktu tetap pada jalurnya" dengan implementasi ini.
- Anda dapat membaca waktu sebenarnya dari DS3231
- Anda dapat "menghitung detik" di PIC itu sendiri dan hanya menyinkronkan waktu dengan DS3231 dari waktu ke waktu
Terserah Anda dan kedua cara praktis dan lurus ke depan. Saya menggunakan opsi pertama dan hanya menyinkronkan waktu ketika menyesuaikan waktu melalui tombol (waktu penulisan ke DS3231) atau setiap 24 jam (waktu membaca dari DS3231), karena saya ingin menerapkan lebih banyak logika sendiri. Saya juga memutar jam saya di malam hari (23:00 sampai 05:00) jadi itu sedikit lebih mudah menurut saya.
Langkah 5: Perumahan
Last but not least saatnya melihat sekilas pada perumahan.
Seperti yang saya sebutkan di atas, saya membuat casing sendiri (menggunakan Eagle) dan mencetaknya dengan 3D-Printer saya, jadi saya harus terus melihat posisi LED yang berbeda.
Terlampir Anda dapat menemukan file STL jika Anda ingin menggunakannya.
Semoga instruksi ini membantu Anda saat membangun "Wort-Uhr" Anda sendiri. Jika masih ada "pertanyaan terbuka" jangan ragu untuk menghubungi saya. Cara terbaik melalui komentar di bawah, karena Anda mungkin bukan satu-satunya yang memiliki pertanyaan spesifik.
Direkomendasikan:
Sistem Peringatan Parkir Terbalik Mobil Arduino - Langkah demi Langkah: 4 Langkah
Sistem Peringatan Parkir Mundur Mobil Arduino | Langkah demi Langkah: Pada proyek kali ini, saya akan merancang Rangkaian Sensor Parkir Mundur Mobil Arduino sederhana menggunakan Sensor Ultrasonik Arduino UNO dan HC-SR04. Sistem peringatan mundur mobil berbasis Arduino ini dapat digunakan untuk Navigasi Otonom, Jarak Robot, dan r
Langkah demi Langkah Membangun PC: 9 Langkah
Langkah demi Langkah Membangun PC: Perlengkapan: Perangkat Keras: MotherboardCPU & Pendingin CPUPSU (Unit catu daya)Penyimpanan (HDD/SSD)RAMGPU (tidak diperlukan)Kasing Alat: Obeng Gelang ESD/pasta matstermal dengan aplikator
Tiga Sirkuit Loudspeaker -- Tutorial Langkah-demi-Langkah: 3 Langkah
Tiga Sirkuit Loudspeaker || Tutorial Langkah-demi-Langkah: Sirkuit Loudspeaker memperkuat sinyal audio yang diterima dari lingkungan ke MIC dan mengirimkannya ke Speaker dari mana audio yang diperkuat diproduksi. Di sini, saya akan menunjukkan kepada Anda tiga cara berbeda untuk membuat Sirkuit Loudspeaker ini menggunakan:
Pendidikan Langkah demi Langkah dalam Robotika Dengan Kit: 6 Langkah
Pendidikan Selangkah demi Selangkah dalam Robotika Dengan Kit: Setelah beberapa bulan membuat robot saya sendiri (silakan lihat semua ini), dan setelah dua kali mengalami bagian yang gagal, saya memutuskan untuk mengambil langkah mundur dan memikirkan kembali strategi dan arahan. Pengalaman beberapa bulan terkadang sangat bermanfaat, dan
Levitasi Akustik Dengan Arduino Uno Langkah-demi-Langkah (8-langkah): 8 Langkah
Akustik Levitation Dengan Arduino Uno Langkah-demi-Langkah (8-langkah): transduser suara ultrasonik L298N Dc female adapter power supply dengan pin dc laki-laki Arduino UNOBreadboardCara kerjanya: Pertama, Anda mengunggah kode ke Arduino Uno (ini adalah mikrokontroler yang dilengkapi dengan digital dan port analog untuk mengonversi kode (C++)