Daftar Isi:

Bermain Dengan Jam Dinding Tangan: 14 Langkah
Bermain Dengan Jam Dinding Tangan: 14 Langkah

Video: Bermain Dengan Jam Dinding Tangan: 14 Langkah

Video: Bermain Dengan Jam Dinding Tangan: 14 Langkah
Video: Belajar Matematika Cara Membaca Jam 2024, November
Anonim
Image
Image
Prinsip bekerja
Prinsip bekerja

Jam dinding tangan elektronik (kuarsa penandaan komersial) saat ini tidak ada yang istimewa. Itu bisa dibeli di banyak toko. Beberapa di antaranya sangat murah; dengan harga sekitar €2 (50CZK). Harga yang murah itu bisa menjadi motivasi untuk melihat lebih dekat kepada mereka. Kemudian saya menyadari, mereka bisa menjadi mainan yang menarik bagi pemula di bidang elektronik, yang tidak memiliki banyak sumber daya dan yang terutama tertarik pada pemrograman. Tetapi ingin mempresentasikan perkembangannya sendiri kepada orang lain. Karena jam dinding murah sangat toleran terhadap eksperimen dan percobaan pemula, saya memutuskan untuk menulis artikel ini, di mana saya ingin menyajikan ide-ide dasar.

Langkah 1: Prinsip Kerja

Prinsip bekerja
Prinsip bekerja
Prinsip bekerja
Prinsip bekerja

Sangat mudah untuk mengenali, bahwa jam menggunakan untuk gerakan semacam motor stepper. Yang satu, yang sudah memecahkan beberapa jam mengakui, bahwa itu hanya satu koil, bukan dua di motor stepper biasa. Dalam hal ini kita berbicara tentang motor stepper "fase tunggal" atau "kutub tunggal". (Nama ini tidak sering digunakan, sebagian besar merupakan turunan analogis untuk penandaan yang digunakan untuk motor stepper tumpukan penuh lainnya). Yang sudah mulai memikirkan prinsip kerja pasti bertanya-tanya, bagaimana mungkin motor itu selalu berputar ke arah yang benar. Untuk deskripsi prinsip kerja berguna gambar berikut, yang menunjukkan jenis motor yang lebih tua.

Pada gambar pertama terlihat satu kumparan dengan terminal A dan B, stator abu-abu dan rotor merah-biru. Rotor terbuat dari magnet permanen, itulah sebabnya mengapa diberi tanda warna, agar terlihat, ke arah mana dimagnetisasi (tidak begitu penting, kutub mana yang utara dan mana yang selatan). Pada stator Anda dapat melihat dua "alur" di dekat rotor. Mereka sangat penting untuk prinsip kerja. Motor bekerja dalam empat langkah. Kami akan menjelaskan setiap langkah menggunakan empat gambar.

Selama langkah pertama (gambar kedua) motor diberi energi, terminal A dihubungkan ke kutub positif dan terminal B dihubungkan ke kutub negatif. Itu membuat fluks magnet, misalnya ke arah panah. Rotor akan berhenti pada posisinya, yang posisinya akan sesuai dengan fluks magnet.

Langkah kedua berikut setelah pemutusan daya. Kemudian fluks magnet pada stator dihentikan, dan magnet memiliki kecenderungan untuk berputar pada posisinya, polarisasinya searah dengan volume maksimum bahan lunak magnet stator. Dan di sini sangat penting kedua alur itu. Mereka menunjuk ke penyimpangan kecil dari volume maksimum. Kemudian rotor diputar sedikit searah jarum jam. Seperti yang ditunjukkan pada gambar 3.

Langkah selanjutnya (gambar keempat) adalah dengan menghubungkan tegangan polaritas terbalik (terminal A ke kutub negatif, terminal B ke kutub positif). Artinya, magnet pada rotor akan berputar searah dengan medan magnet oleh kumparan. Rotor menggunakan arah terpendek, yaitu searah jarum jam lagi.

Langkah terakhir (keempat) (gambar kelima) sama dengan langkah kedua. Motor tanpa tegangan lagi. Hanya satu perbedaannya adalah, posisi awal magnet berlawanan, tetapi rotor akan kembali bergerak ke arah volume material maksimum. Itu lagi posisi searah jarum jam sedikit.

Itu semua siklus, langkah pertama mengikuti lagi. Untuk gerakan motorik, langkah dua dan empat dipahami sebagai stabil. Kemudian secara mekanis ditransfer ke dengan gearbox 1:30 transfer rate ke posisi jarum jam tangan kedua.

Langkah 2: Prinsip Kerja Lanjutan

Prinsip Kerja Lanjutan
Prinsip Kerja Lanjutan
Prinsip Kerja Lanjutan
Prinsip Kerja Lanjutan
Prinsip Kerja Lanjutan
Prinsip Kerja Lanjutan
Prinsip Kerja Lanjutan
Prinsip Kerja Lanjutan

Gambar menunjukkan bentuk gelombang tegangan pada terminal motor. Angka berarti semua detik. Pada kenyataannya pulsa jauh lebih kecil dibandingkan dengan spasi. Mereka sekitar satu milidetik.

Langkah 3: Pembongkaran Praktis 1

Pembongkaran Praktis 1
Pembongkaran Praktis 1

Saya menggunakan salah satu jam dinding termurah di pasaran untuk pembongkaran praktis. Mereka memiliki sedikit pro. Salah satunya adalah, harganya serendah itu, sehingga kita dapat membeli beberapa dari mereka untuk eksperimen. Karena manufaktur sangat berorientasi pada harga, mereka tidak mengandung solusi pintar yang rumit serta tidak ada sekrup yang rumit. Pada kenyataannya mereka tidak mengandung sekrup, hanya kunci klik plastik. Kami hanya membutuhkan alat minimal. Misalnya kita membutuhkan obeng hanya untuk mencongkel kunci tersebut.

Untuk membongkar jam dinding kita membutuhkan obeng pipih (atau tusuk sate lainnya), gantungan baju dan alas kerja dengan tepi yang ditinggikan (itu tidak wajib, tetapi membuat pencarian roda dan bagian kecil lainnya lebih mudah).

Langkah 4: Pembongkaran Praktis 2

Praktis Bongkar 2
Praktis Bongkar 2
Praktis Bongkar 2
Praktis Bongkar 2
Praktis Bongkar 2
Praktis Bongkar 2
Praktis Bongkar 2
Praktis Bongkar 2

Di sisi belakang jam dinding dapat ditemukan tiga kait. Dua bagian atas pada posisi angka 2 dan 10 dapat dibuka dan kaca penutup dapat dibuka Saat kaca terbuka, jarum jam dapat ditarik. Tidak perlu menandai posisi mereka. Kami akan selalu mengembalikannya ke posisi 12:00:00 Saat jarum jam mati, kami dapat melepas pergerakan jam. Ini memiliki dua kait (pada posisi 6 dan 12). Disarankan gerakan tarik keluar selurus mungkin, jika tidak gerakan bisa macet.

Langkah 5: Pembongkaran Praktis 3

Praktis Bongkar 3
Praktis Bongkar 3
Praktis Bongkar 3
Praktis Bongkar 3
Praktis Bongkar 3
Praktis Bongkar 3

Maka dimungkinkan untuk membuka gerakan. Ini memiliki tiga kait. dua pada posisi 3 dan 9 jam dan kemudian ketiga pada 6 jam. Saat dibuka, cukup dengan melepas cogwheel transparan antara motor dan gearbox dan kemudian pinion, yang terhubung dengan rotor motor.

Langkah 6: Pembongkaran Praktis 4

Praktis Bongkar 4
Praktis Bongkar 4
Praktis Bongkar 4
Praktis Bongkar 4

Kumparan motor dan stator hanya bertahan pada satu gerendel (pada 12 jam). Ini tidak berlaku untuk rel daya apa pun, ini berlaku untuk rel daya hanya dengan menekan, kemudian melepasnya tidak rumit. Kumparan dijalin pada stator tanpa dudukan. Hal ini dapat dengan mudah lepas landas.

Langkah 7: Pembongkaran Praktis 5

Praktis Bongkar 5
Praktis Bongkar 5
Praktis Bongkar 5
Praktis Bongkar 5
Praktis Bongkar 5
Praktis Bongkar 5
Praktis Bongkar 5
Praktis Bongkar 5

Di sisi bawah koil direkatkan papan sirkuit cetak kecil, yang berisi satu CoB (Chip on Board) dengan enam output. Dua untuk daya dan mereka diakhiri pada bantalan persegi yang lebih besar di papan untuk menerapkan rel daya. dua output terhubung ke kristal. By the way, kristal 32768Hz dan dapat disolder untuk penggunaan masa depan. Dua output terakhir terhubung ke koil. Saya menemukan lebih aman untuk memotong jejak di papan dan menyolder kabel ke bantalan yang ada di papan. Ketika saya mencoba melepas koil dan menghubungkan kabel langsung ke koil, saya selalu merobek kabel koil atau merusak koil. Menyolder kabel baru ke papan adalah salah satu kemungkinan. Katakanlah, itu lebih primitif. Metode yang lebih kreatif adalah menghubungkan koil ke bantalan daya dan menyimpan rel daya untuk koneksi ke kotak baterai. Kemudian elektronik dapat dimasukkan ke dalam kotak baterai.

Langkah 8: Pembongkaran Praktis 6

Praktis Bongkar 6
Praktis Bongkar 6
Praktis Bongkar 6
Praktis Bongkar 6

Kualitas penyolderan dapat diperiksa dengan menggunakan ohmmeter. Kumparan memiliki resistivitas sekitar 200Ω. Setelah semuanya beres, kami cam merakit jam dinding kembali. Saya biasanya membuang rel listrik, lalu saya memiliki lebih banyak tempat untuk kabel baru saya. Foto diambil sebelum rel listrik dilempar. Saya lupa untuk mengambil foto berikutnya ketika mereka dihapus.

Ketika saya selesai menyelesaikan gerakan, saya mengujinya dengan menggunakan jarum jam kedua. Saya meletakkan tangan ke porosnya dan menghubungkan beberapa daya (saya menggunakan baterai koin CR2032, tetapi AA 1, 5V juga dapat digunakan). Cukup sambungkan daya dalam satu polaritas ke kabel dan sekali lagi dengan polaritas yang berlawanan. Jam harus berdetak dan jarum jam akan bergerak satu detik. Setelah Anda memiliki masalah untuk menyelesaikan gerakan kembali, karena kabel mengambil lebih banyak tempat, cukup putar koil semut meletakkannya di sisi yang berlawanan. Setelah tidak menggunakan rel listrik, itu tidak berpengaruh pada pergerakan jam. Seperti yang sudah disebutkan, saat meletakkan tangan ke belakang, Anda harus mengarahkannya ke 12:00:00. Ini adalah untuk memiliki jarak yang benar antara jarum jam dan menit.

Langkah 9: Contoh Penggunaan Jam Dinding

Sebagian besar contoh sederhana berfokus pada tampilan waktu, tetapi dengan berbagai modifikasi. Sangat populer adalah modifikasi yang disebut "Jam Vetinari". Menunjuk ke buku Terry Pratchett, di mana tuan Vetinari memiliki jam dinding di ruang tunggunya, yang berdetak tidak teratur. Ketidakteraturan itu meresahkan orang-orang yang menunggu. Aplikasi populer kedua adalah "jam sinus". Artinya jam, yang dipercepat dan diperlambat berdasarkan kurva sinus, maka orang memiliki perasaan, mereka berlayar di atas gelombang. salah satu favorit saya adalah "waktu makan siang". Modifikasi itu berarti, jam itu berjalan sedikit lebih cepat dalam waktu antara 11 hingga 12 jam (0,8 detik), untuk makan siang lebih awal; dan sedikit lebih lambat selama waktu makan siang antara 12 sampai 13 jam (1, 2 detik), untuk memiliki sedikit lebih banyak waktu untuk makan siang dan untuk menebus waktu yang hilang.

Untuk sebagian besar modifikasi tersebut cukup menggunakan prosesor yang paling sederhana, menggunakan frekuensi kerja 32768Hz. Frekuensi ini sangat populer dengan pembuat jam, karena mudah untuk membuat kristal dengan frekuensi ini, dan melarang biner mudah dibagi untuk menyelesaikan detik. Ini memiliki dua manfaat untuk menggunakan frekuensi ini untuk prosesor: kita dapat dengan mudah mendaur ulang kristal dari jam; dan prosesor biasanya memiliki konsumsi minimal pada frekuensi ini. Konsumsi adalah sesuatu yang sering kita pecahkan ketika bermain dengan jam dinding. Terutama untuk dapat menyalakan jam dari baterai terkecil, selama mungkin. Seperti yang telah disebutkan, koil memiliki resistivitas 200Ω dan dirancang untuk cca 1, 5V (satu baterai AA). Prosesor termurah biasanya bekerja dengan voltase sedikit lebih besar, tetapi dengan dua baterai (3V) bekerja semuanya. Salah satu prosesor termurah di pasar kami adalah Microchip PIC12F629, atau modul Arduino yang sangat populer. Kemudian kami akan menunjukkan cara menggunakan kedua platform.

Langkah 10: Contoh Penggunaan Jam Dinding PIC

Contoh Penggunaan Jam Dinding PIC
Contoh Penggunaan Jam Dinding PIC
Contoh Penggunaan Jam Dinding PIC
Contoh Penggunaan Jam Dinding PIC

Prosesor PIC12F629 memiliki tegangan operasi 2.0V - 5.5V. Penggunaan dua "baterai mignon" = sel AA (cca 3V) atau dua akumulator AA isi ulang AA (cca 2, 4V) sudah cukup. Tapi untuk kumparan jam itu dua kali lebih banyak dari yang dirancang. Ini menyebabkan setidaknya peningkatan konsumsi yang tidak diinginkan. Maka ada baiknya untuk menambahkan resistor seri minimum, yang akan membuat pembagi tegangan yang sesuai. Nilai resistor harus sekitar 120Ω untuk daya akumulator atau 200Ω untuk daya baterai yang dihitung untuk beban resistif murni. Dalam prakteknya nilainya bisa sedikit lebih kecil sekitar 100Ω. Dalam teori satu resistor secara seri dengan koil sudah cukup. Saya masih memiliki kecenderungan, entah kenapa, untuk melihat motor sebagai perangkat simetris dan kemudian meletakkan resistor dengan setengah resistansi (47Ω atau 51Ω) di sebelah setiap terminal koil. Beberapa konstruksi menambahkan dioda pelindung untuk menghindari tegangan negatif ke prosesor ketika koil terputus. Di sisi lain, daya keluaran dari keluaran prosesor cukup untuk menghubungkan kumparan langsung ke prosesor tanpa penguat apapun. Skema lengkap untuk prosesor PIC12F629 akan terlihat seperti yang dijelaskan pada gambar 15. Skema ini berlaku untuk jam tangan tanpa elemen kontrol tambahan. Kami masih memiliki satu input/output pin GP0 dan satu input saja GP3.

Langkah 11: Contoh Penggunaan Jam Dinding Arduino

Contoh Penggunaan Jam Dinding Arduino
Contoh Penggunaan Jam Dinding Arduino
Contoh Penggunaan Jam Dinding Arduino
Contoh Penggunaan Jam Dinding Arduino
Contoh Penggunaan Jam Dinding Arduino
Contoh Penggunaan Jam Dinding Arduino

Setelah kita ingin menggunakan Arduino, kita bisa melihat ke datasheet untuk prosesor ATmega328. Prosesor tersebut memiliki tegangan kerja yang ditetapkan sebagai 1.8V - 5.5V untuk frekuensi hingga 4MHz dan 2.7V - 5, 5V untuk frekuensi hingga 10MHz. Kita harus berhati-hati dengan satu kekurangan papan Arduino. Kekurangan tersebut adalah adanya pengatur tegangan pada board. Sejumlah besar regulator tegangan memiliki masalah dengan tegangan balik. Masalah ini secara luas dan paling baik dijelaskan untuk regulator 7805. Untuk kebutuhan kita, kita harus menggunakan papan bertanda 3V3 (dirancang untuk memberi daya 3.3V) terutama karena papan ini mengandung kristal 8MHz dan dapat ditenagai mulai dari 2, 7V (artinya dua AA baterai). Kemudian stabilizer yang digunakan tidak akan menjadi 7805 tetapi setara dengan 3.3V. Setelah kami ingin menyalakan papan tanpa menggunakan stabilizer, kami memiliki dua opsi. Opsi pertama adalah, hubungkan voltase ke pin "RAW" (atau "Vin") dan +3V3 (atau Vcc) bersama-sama dan yakinlah, bahwa stabilizer yang digunakan pada papan Anda tidak memiliki perlindungan tegangan rendah. Opsi kedua cukup menghilangkan stabilizer. Untuk ini ada baiknya menggunakan Arduino Pro Mini, berikut skema referensi. Skema itu berisi jumper SJ1 (pada gambar 16 dalam lingkaran merah) yang dirancang untuk melepaskan stabilizer internal. Sayangnya mayoritas klon tidak mengandung jumper ini.

Keunggulan lain dari Arduino Pro Mini adalah, tidak mengandung konverter tambahan, yang dapat mengkonsumsi listrik selama berjalan normal (itu adalah komplikasi kecil selama pemrograman). Papan Arduino dilengkapi oleh prosesor yang lebih dan lebih nyaman, yang tidak memiliki daya yang cukup untuk output tunggal. Maka ada baiknya untuk menambahkan penguat keluaran kecil minimum menggunakan sepasang transistor. Skema dasar daya baterai akan terlihat seperti pada gambar.

Karena lingkungan Arduino (bahasa "Pengkabelan") memiliki atribut sistem operasi modern (kemudian memiliki masalah dengan waktu yang akurat), ada baiknya untuk memikirkan penggunaan sumber jam eksternal untuk Timer0 atau Timer1. Ini berarti input T0 dan T1, mereka ditandai sebagai 4 (T0) dan 4 (T1). Osilator sederhana menggunakan kristal dari jam dinding dapat dihubungkan ke salah satu input tersebut. Itu tergantung, seberapa akurat jam yang ingin Anda hasilkan. Gambar 18 menunjukkan tiga kemungkinan dasar. Skema pertama sangat ekonomis dalam arti komponen bekas. Ini memberikan lebih sedikit output segitiga, tetapi dalam rentang tegangan penuh, maka itu bagus untuk menyalakan input CMOS. Skema kedua menggunakan inverter, dapat berupa CMOS 4096 atau TTL 74HC04. Skema lebih kurang mirip satu sama lain, mereka dalam bentuk dasar. Skema ketiga menggunakan chip CMOS 4060, yang memungkinkan koneksi langsung kristal (setara 74HC4060 menggunakan skema yang sama, tetapi nilai resistor yang berbeda). Keuntungan dari rangkaian ini adalah, mengandung pembagi 14 bit, maka dimungkinkan untuk memutuskan, frekuensi apa yang digunakan sebagai input timer.

Output dari rangkaian ini dapat digunakan untuk input T0 (pin 4 dengan tanda Arduino) dan kemudian menggunakan Timer0 dengan input eksternal. Itu tidak begitu praktis, karena Timer0 digunakan untuk fungsi seperti delay(), milis() atau micros(). Opsi kedua adalah menghubungkannya ke input T1 (pin 5 dengan tanda Arduino) dan menggunakan Timer1 dengan input tambahan. Opsi selanjutnya adalah menghubungkannya ke input interupsi INT0 (pin 2 pada penandaan Arduino) atau INT1 (pin 3) dan menggunakan fungsi attachInterrupt() dan fungsi register, yang dipanggil secara berkala. Berikut adalah pembagi berguna yang ditawarkan oleh chip 4060, maka panggilan tidak boleh terlalu sering.

Langkah 12: Jam Cepat untuk Perangkat Keras Model Kereta Api

Jam Cepat untuk Perangkat Keras Model Kereta Api
Jam Cepat untuk Perangkat Keras Model Kereta Api
Jam Cepat untuk Perangkat Keras Model Kereta Api
Jam Cepat untuk Perangkat Keras Model Kereta Api
Jam Cepat untuk Perangkat Keras Model Kereta Api
Jam Cepat untuk Perangkat Keras Model Kereta Api

Untuk kepentingan saya akan menyajikan satu skema yang berguna. Saya perlu menghubungkan lebih banyak jam dinding ke kontrol umum. Jam dinding berjauhan satu sama lain dan di atasnya karakteristik lingkungan lebih industrial dengan noise elektromagnetik yang lebih besar. Kemudian saya kembali ke sistem bus lama menggunakan tegangan yang lebih besar untuk komunikasi. Tentu saja saya tidak menyelesaikan bekerja dengan baterai, tetapi saya menggunakan catu daya 12V yang stabil. Saya memperkuat sinyal dari prosesor menggunakan driver TC4427 (tersedia dengan baik dan harga bagus). Lalu saya membawa sinyal 12V dengan kemungkinan beban hingga 0,5A. Saya menambahkan pembagi resistor sederhana ke jam budak (pada gambar 18 ditandai sebagai R101 dan R102; Sekali lagi saya memahami motor sebagai simetris, itu tidak perlu). Saya ingin meningkatkan pengurangan kebisingan dengan membawa lebih banyak arus, maka saya menggunakan dua resistor 100Ω. Untuk membatasi tegangan pada kumparan motor dihubungkan penyearah jembatan B101 secara paralel dengan kumparan. Jembatan memiliki sisi DC korsleting, maka itu mewakili dua pasang dioda anti-paralel. Dua dioda berarti tegangan putus sekitar 1.4V, yang sangat dekat dengan tegangan kerja normal untuk motor. Kita perlu anti-paralel karena powering bergantian dalam satu dan polaritas yang berlawanan. Total arus yang digunakan oleh satu jam dinding slave adalah (12V - 1.5V) / (100Ω + 100Ω) = 53mA. Itu adalah nilai yang dapat diterima untuk menghindari kebisingan.

Berikut adalah dua sakelar pada skema, mereka untuk mengontrol fungsi tambahan jam dinding (pengganda kecepatan dalam kasus model kereta api). Jam anak perempuan memiliki satu lagi fitur menarik. Mereka terhubung menggunakan dua konektor pisang 4mm. Mereka memegang jam dinding di dinding. Hal ini berguna terutama sekali Anda ingin mengatur waktu tertentu sebelum mulai menggunakan, Anda cukup mencabutnya dan kemudian pasang kembali (balok kayu dipasang ke dinding). Jika Anda ingin membuat "Big Ben", Anda membutuhkan kotak kayu dengan empat pasang soket. Kotak itu bisa digunakan sebagai tempat penyimpanan jam saat tidak digunakan.

Langkah 13: Perangkat Lunak

Dari sudut pandang perangkat lunak situasinya relatif sederhana. Mari kita jelaskan realisasi pada chip PIC12F629 menggunakan kristal 32768Hz (daur ulang dari jam asli). Prosesor memiliki satu siklus instruksi yang panjangnya empat siklus osilator. Setelah kita menggunakan sumber clock internal untuk setiap Timer, itu berarti siklus instruksi (disebut fosc/4). Kami telah tersedia misalnya Timer0. Frekuensi masukan pengatur waktu akan menjadi 32768 / 4 = 8192Hz. Timer adalah delapan bit (256 langkah) dan kami membuatnya tetap meluap tanpa hambatan. Kami akan fokus hanya untuk acara timer overflow. Peristiwa tersebut akan terjadi dengan frekuensi 8192/256 = 32Hz. Kemudian ketika kita ingin memiliki pulsa satu detik, kita harus membuat pulsa setiap 32 overflow dari Timer0. Satu kita ingin jam berjalan misalnya empat kali lebih cepat, maka kita perlu 32 / 4 = 8 overflow untuk pulsa. Untuk kasus kami tertarik untuk merancang jam dengan tidak teratur tetapi akurat, kami harus memiliki jumlah luapan untuk beberapa pulsa sama dengan 32× jumlah pulsa. Maka kita dapat menemukan dalam matriks jam tidak beraturan seperti ini: [20, 40, 30, 38]. Maka jumlahnya 128, sama dengan 32×4. Untuk jam sinus misalnya [37, 42, 47, 51, 55, 58, 60, 61, 62, 61, 60, 58, 55, 51, 47, 42, 37, 32, 27, 22, 17, 13, 9, 6, 4, 3, 2, 3, 4, 6, 9, 13, 17, 22, 27, 32] = 1152 = 36*32). Untuk jam kami, kami akan menggunakan dua input gratis sebagai definisi pembagi untuk menjalankan cepat. Pembagi dith tabel untuk kecepatan disimpan dalam memori EEPROM. Bagian utama dari programm dapat terlihat seperti ini:

Putaran Utama:

btfss INTCON, T0IF ke MainLoop; tunggu Timer0 bcf INTCON, T0IF incf CLKCNT, f btfss SW_STOP; jika saklar STOP aktif, clrf CLKCNT; hapus penghitung setiap kali btfsc SW_FAST; jika tombol cepat tidak ditekan masuk ke NormalTime; hitung hanya waktu normal movf FCLK, w xorwf CLKCNT, w btfsc STATUS, Z; jika FCLK dan CLKCNT sama goto SendPulse NormalTime: movf CLKCNT, w andlw 0xE0; bit 7, 6, 5 btfsc STATUS, Z; jika CLKCNT>=32 ke MainLoop ke SendPulse

Program menggunakan fungsi SendPulse, yang berfungsi membuat pulsa motor itu sendiri. Fungsi menghitung pulsa ganjil/genap dan berdasarkan itu membuat pulsa pada output satu atau detik. Fungsi menggunakan ENERGISE_TIME konstan. Konstanta tersebut menentukan waktu selama itu kumparan motor diberi energi. Sehingga berdampak besar terhadap konsumsi. Begitu kecil, motor tidak bisa menyelesaikan langkah dan terkadang terjadi, detik itu hilang (biasanya saat jarum detik berputar di sekitar angka 9, saat akan "naik").

KirimPulsa:

incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: bsf OUT_A goto SendPulseE SendPulseB: bsf OUT_B;goto SendPulseE SendPulseE: movlw 0x50 movwf ECNT ECNT SendPuls

Kode sumber lengkap dapat diunduh di akhir halaman www.fucik.name. Situasi dengan Arduino sedikit rumit, karena Arduino menggunakan bahasa pemrograman yang lebih tinggi dan menggunakan kristal 8MHz sendiri, kita harus berhati-hati dengan fungsi apa yang kita gunakan. Penggunaan penundaan klasik () sedikit berisiko (menghitung waktu dari mulai fungsi). Hasil yang lebih baik akan memiliki penggunaan perpustakaan seperti Timer1. Banyak proyek Arduino mengandalkan perangkat RTC eksternal seperti PCF8563, DS1302, dll.

Langkah 14: Keingintahuan

Sistem penggunaan motor jam dinding ini dipahami sebagai hal yang sangat mendasar. Itu ada banyak perbaikan. Misalnya berdasarkan pengukuran Back EMF (energi listrik yang dihasilkan oleh pergerakan magnet rotor). Kemudian elektronik dapat mengenali, sekali tangan adalah penggerak dan jika tidak, maka cepat ulangi pulsa atau perbarui nilai "ENERGISE_TIME". rasa ingin tahu yang lebih berguna adalah "langkah terbalik". Berdasarkan uraian tersebut terlihat bahwa motor tersebut didesain untuk satu arah putaran saja dan tidak dapat diubah-ubah. Tetapi seperti yang disajikan pada video terlampir, perubahan arah dimungkinkan. Prinsipnya sederhana. Mari kita kembali ke prinsip motor. Bayangkan, motor itu dalam keadaan stabil pada langkah kedua (Gambar 3). Setelah kita menghubungkan tegangan seperti yang disajikan pada langkah pertama (Gambar 2), motor secara logis akan mulai berputar dalam arah sebaliknya. Setelah pulsa akan cukup pendek dan akan berakhir sedikit sebelum motor meningkatkan keadaan stabil, secara logis akan berkedip sedikit. Pada saat kedipan itu akan tiba pulsa tegangan berikutnya seperti yang dijelaskan pada keadaan ketiga (Gambar 4), maka motor akan melanjutkan arah seperti yang dimulai, artinya dalam arah sebaliknya. Sedikit masalah adalah, bagaimana menentukan durasi pulsa pertama dan sekali untuk membuat jarak antara pulsa pertama dan kedua. Dan yang paling buruk adalah, bahwa konstanta tersebut bervariasi untuk setiap gerakan jam dan terkadang bervariasi untuk kasus, jarum itu bergerak "turun" (sekitar angka 3) atau naik (sekitar angka 9) dan juga di posisi netral (sekitar angka 12 dan 6). Untuk kasus yang disajikan di video saya menggunakan nilai dan algoritma seperti yang disajikan dalam kode berikut:

#define OUT_A_SET 0x02; konfigurasi untuk satu set out b clear

#define OUT_B_SET 0x04; config for out b atur #define ENERGISE_TIME 0x30 #define REVERT_TIME 0x06 SendPulse: incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: movlw REVERT_TIME movwf ECNT_B_SET; mulai dengan pulsa B movwf GPIO RevPulseLoopA:; waktu singkat tunggu decfsz ECNT, f goto RevPulseLoopA movlw OUT_A_SET; lalu pulsa A movwf GPIO goto SendPulseE SendPulseB: movlw REVERT_TIME movwf ECNT movlw OUT_A_SET; mulai dengan pulsa A movwf GPIO RevPulseLoopB:; waktu singkat tunggu decfsz ECNT, f goto RevPulseLoopB movlw OUT_B_SET; lalu pulsa B movwf GPIO;goto SendPulseE SendPulseE: movlw ENERGISE_TIME movwf ECNT SendPulseLoop: decfsz ECNT, f goto SendPulseLoop bcf OUT_A bcf OUT_B goto MainLoop

Penggunaan langkah mundur meningkatkan kemungkinan bermain dengan jam dinding. Terkadang kita dapat menemukan jam dinding, yang memiliki pergerakan jarum detik yang mulus. Kami tidak takut dengan jam itu, mereka menggunakan trik sederhana. Motor itu sendiri sama dengan motor yang dijelaskan di sini, hanya rasio roda gigi yang lebih besar (biasanya 8:1 lebih) dan putaran motor lebih cepat (biasanya 8x lebih cepat) yang menghasilkan efek gerakan halus. Setelah Anda memutuskan untuk memodifikasi jam dinding tersebut, jangan lupa untuk menghitung pengganda yang diminta.

Direkomendasikan: