Bermain Dengan Jam Dinding Tangan: 14 Langkah
Bermain Dengan Jam Dinding Tangan: 14 Langkah
Anonim
Image
Image
Prinsip Kerja
Prinsip Kerja

Jam dinding tangan elektronik (kuarza penanda komersial) kini tidak ada yang istimewa. Ia boleh dibeli di banyak kedai. Sebilangan daripada mereka sangat murah; dengan harga lebih kurang € 2 (50CZK). Harga yang rendah itu boleh menjadi motivasi untuk melihat lebih dekat kepada mereka. Kemudian saya menyedari, mereka boleh menjadi mainan menarik bagi pemula dalam bidang elektronik, yang tidak mempunyai begitu banyak sumber dan yang sangat berminat dengan pengaturcaraan. Tetapi ingin menyampaikan perkembangannya sendiri kepada orang lain. Kerana jam dinding yang murah sangat bertolak ansur dengan percubaan dan percubaan pemula, saya memutuskan untuk menulis artikel ini, di mana saya ingin mengemukakan idea asas.

Langkah 1: Prinsip Kerja

Prinsip Kerja
Prinsip Kerja
Prinsip Kerja
Prinsip Kerja

Sangat mudah untuk dikenali, jam yang digunakan untuk pergerakan semacam motor stepper. Yang satu, yang telah memecah beberapa jam diakui, bahawa hanya satu gegelung dan bukannya dua pada motor stepper biasa. Dalam kes ini, kita bercakap mengenai motor stepper "single phase" atau "single pole". (Nama ini tidak digunakan begitu kerap, kebanyakannya merupakan derivasi analog untuk penandaan yang digunakan untuk motor stepper penuh lain). Orang yang sudah mula memikirkan prinsip kerja harus bertanya, bagaimana mungkin, motor itu selalu berputar ke arah yang betul. Untuk penerangan prinsip kerja berguna berikut gambar, yang menunjukkan jenis motor yang lebih tua.

Pada gambar pertama kelihatan satu gegelung dengan terminal A dan B, stator kelabu dan rotor merah-biru. Rotor dibuat dari magnet kekal, itulah sebabnya, mengapa ia ditandai warna, untuk dilihat, ke arah mana yang dimagnetkan (tidak begitu penting, tiang apa yang utara dan apa yang selatan). Di stator anda dapat melihat dua "alur" dekat dengan rotor. Mereka sangat penting untuk prinsip kerja. Motor berfungsi dalam empat langkah. Kami akan menerangkan setiap langkah menggunakan empat gambar.

Semasa langkah pertama (gambar kedua) digerakkan motor, terminal A disambungkan ke kutub positif dan terminal B disambungkan ke kutub negatif. Ia membuat fluks magnetik, misalnya pada arah anak panah. Rotor akan berhenti pada kedudukannya, bahawa kedudukannya akan sesuai dengan fluks magnet.

Langkah kedua diikuti setelah terputus bekalan kuasa. Kemudian fluks magnet di stator dihentikan, dan magnet mempunyai kecenderungan untuk berputar ke kedudukannya, polarisasi berada pada arah bahan lembut magnetik isipadu maksimum. Dan inilah dua alur yang penting. Mereka menunjukkan penyimpangan kecil dari jumlah maksimum. Kemudian rotor dipusing sedikit mengikut arah pusingan jam. Seperti yang ditunjukkan pada gambar 3.

Langkah seterusnya (gambar keempat) adalah dengan polaritas terbalik yang disambungkan voltan (terminal A ke kutub negatif, terminal B ke kutub positif). Maksudnya, magnet dalam rotor akan berputar ke arah medan magnet dengan gegelung. Rotor menggunakan arah terpendek, iaitu mengikut arah jam.

Langkah terakhir (keempat) (gambar kelima) sama dengan langkah kedua. Motor tanpa voltan lagi. Cuma satu perbezaannya, kedudukan permulaan magnet bertentangan, tetapi rotor sekali lagi akan bergerak ke arah isi padu bahan maksimum. Itu sekali lagi kedudukan mengikut arah jam sedikit.

Itu semua kitaran, langkah pertama mengikuti lagi. Untuk pergerakan motor adalah langkah dua dan empat difahami sebagai stabil. Kemudian dipindahkan secara mekanikal ke dengan gearbox 1:30 laju perpindahan ke posisi tangan kedua jam tangan.

Langkah 2: Prinsip Kerja Samb

Prinsip Kerja Samb
Prinsip Kerja Samb
Prinsip Kerja Samb
Prinsip Kerja Samb
Prinsip Kerja Samb
Prinsip Kerja Samb
Prinsip Kerja Samb
Prinsip Kerja Samb

Angka menunjukkan bentuk gelombang voltan pada terminal motor. Nombor bermaksud semua saat. Pada kenyataannya denyutan jauh lebih kecil berbanding dengan ruang. Mereka kira-kira satu milisaat.

Langkah 3: Pembongkaran Praktikal 1

Pembongkaran Praktikal 1
Pembongkaran Praktikal 1

Saya menggunakan jam dinding paling murah di pasaran untuk pembongkaran praktikal. Mereka mempunyai beberapa kebaikan. Salah satunya, harganya begitu rendah, sehingga kita dapat membeli sebilangan kecil untuk eksperimen. Kerana pembuatan sangat berorientasi pada harga, mereka tidak mengandungi penyelesaian pintar yang rumit dan juga skru yang rumit. Pada kenyataannya mereka tidak mengandungi skru, hanya kunci klik plastik. Kami memerlukan alat minimum sahaja. Contohnya kita memerlukan pemutar skru hanya untuk mencungkil kunci tersebut.

Untuk pembongkaran jam dinding, kami memerlukan pemutar skru hujung rata (atau tongkat lain), pasak pakaian dan tikar kerja dengan tepi yang dinaikkan (itu tidak wajib, tetapi cari roda dan bahagian kecil yang lain lebih mudah).

Langkah 4: Pembongkaran Praktikal 2

Pembongkaran Praktikal 2
Pembongkaran Praktikal 2
Pembongkaran Praktikal 2
Pembongkaran Praktikal 2
Pembongkaran Praktikal 2
Pembongkaran Praktikal 2
Pembongkaran Praktikal 2
Pembongkaran Praktikal 2

Di bahagian belakang jam dinding terdapat tiga selak. Dua bahagian atas pada kedudukan nombor 2 dan 10 dapat dibuka dan penutup kaca dapat dibuka Apabila kaca terbuka, mungkin untuk mengeluarkan tangan jam. Tidak perlu menandakan kedudukan mereka. Kami akan selalu mengembalikannya ke kedudukan 12:00:00 Apabila tangan jam dimatikan, kita dapat melepaskan pergerakan jam. Ia mempunyai dua kait (di kedudukan 6 dan 12). Dianjurkan pergerakan keluar selurus mungkin, jika tidak pergerakan dapat tersekat.

Langkah 5: Pembongkaran Praktikal 3

Pembongkaran Praktikal 3
Pembongkaran Praktikal 3
Pembongkaran Praktikal 3
Pembongkaran Praktikal 3
Pembongkaran Praktikal 3
Pembongkaran Praktikal 3

Maka mungkin pergerakan terbuka. Ia mempunyai tiga selak. dua pada kedudukan 3 dan 9 jam dan kemudian ketiga pada 6 jam. Ketika dibuka, cukup untuk melepaskan roda gigi transparan antara motor dan kotak gear dan kemudian pinion, yang dihubungkan dengan rotor motor.

Langkah 6: Pembongkaran Praktikal 4

Pembongkaran Praktikal 4
Pembongkaran Praktikal 4
Pembongkaran Praktikal 4
Pembongkaran Praktikal 4

Gegelung motor dan stator hanya memegang satu kait (pada 12 jam). Itu tidak menahan rel elektrik, hanya berlaku untuk rel daya hanya dengan menekan, maka melepaskannya tidak rumit. Gegelung diikat pada stator tanpa pemegang. Ia boleh dilepaskan dengan mudah.

Langkah 7: Pembongkaran Praktikal 5

Pembongkaran Praktikal 5
Pembongkaran Praktikal 5
Pembongkaran Praktikal 5
Pembongkaran Praktikal 5
Pembongkaran Praktikal 5
Pembongkaran Praktikal 5
Pembongkaran Praktikal 5
Pembongkaran Praktikal 5

Di bahagian bawah gegelung dilekatkan papan litar bercetak kecil, yang mengandungi satu CoB (Chip on Board) dengan enam output. Dua adalah untuk kuasa dan mereka dihentikan pada pad persegi yang lebih besar di atas kapal untuk memasang rel kuasa. dua output dihubungkan dengan kristal. By the way, kristal 32768Hz dan boleh disolder untuk penggunaan masa depan. Dua output terakhir disambungkan ke gegelung. Saya merasa lebih selamat untuk memotong jejak di atas papan dan wayar solder ke pad yang ada di atas kapal. Semasa saya cuba melepaskan gegelung dan menyambungkan wayar terus ke gegelung, saya selalu merobek wayar gegelung atau merosakkan gegelung. Memateri wayar baru ke papan adalah salah satu kemungkinan. Mari kita katakan, yang lebih primitif. Kaedah yang lebih kreatif ialah menyambungkan gegelung ke pad kuasa dan terus memasang rel untuk menyambung ke kotak bateri. Kemudian elektronik boleh dimasukkan ke dalam kotak bateri.

Langkah 8: Pembongkaran Praktikal 6

Pembongkaran Praktikal 6
Pembongkaran Praktikal 6
Pembongkaran Praktikal 6
Pembongkaran Praktikal 6

Kualiti pematerian dapat diperiksa dengan menggunakan ohmmeter. Gegelung mempunyai daya tahan sekitar 200Ω. Setelah semuanya baik-baik saja, kita memasang jam dinding kembali. Saya biasanya membuang rel elektrik, maka saya mempunyai lebih banyak tempat untuk wayar baru saya. Foto diambil sebelum rel elektrik dilemparkan. Saya lupa mengambil gambar seterusnya apabila mereka dikeluarkan.

Apabila saya selesai dengan pergerakan, saya mengujinya dengan menggunakan tangan kedua. Saya meletakkan tangan ke gandarnya dan menyambungkan sedikit tenaga (saya menggunakan bateri duit syiling CR2032, tetapi AA 1, 5V juga boleh digunakan). Cukup sambungkan kuasa dalam satu kutub ke wayar dan sekali lagi dengan kekutuban yang bertentangan. Jam mesti berdetak dan tangan akan bergerak satu saat. Sebaik sahaja anda menghadapi masalah untuk menyelesaikan pergerakan ke belakang, kerana wayar lebih banyak berlaku, cukup putar semut giliran meletakkannya di seberang. Setelah tidak menggunakan rel elektrik, ia tidak akan mempengaruhi pergerakan jam. Seperti yang telah dinyatakan, ketika meletakkan tangan kembali, Anda harus meletakkannya pada jam 12:00:00. Ia mesti mempunyai jarak yang betul antara jam dan minit tangan.

Langkah 9: Contoh Penggunaan Jam Dinding

Sebilangan besar contoh sederhana yang memfokuskan untuk memaparkan waktu, tetapi dengan pelbagai pengubahsuaian. Sangat popular adalah pengubahsuaian yang disebut "Jam Vetinari". Menunjuk buku Terry Pratchett, di mana tuan Vetinari mempunyai jam dinding di ruang tunggu, yang berdetak tidak teratur. Penyelewengan itu mengganggu orang yang menunggu. Aplikasi popular kedua adalah "jam sinus". Maksudnya jam, yang mempercepat dan melambatkan berdasarkan kurva sinus, maka orang merasa, mereka berlayar di gelombang. salah satu kegemaran saya adalah "waktu makan tengah hari". Pengubahsuaian itu bermaksud, jam itu sedikit lebih cepat dalam waktu antara 11 hingga 12 jam (0.8 saat), untuk makan tengah hari lebih awal; dan sedikit lebih perlahan semasa waktu makan tengah hari antara 12 hingga 13 jam (1, 2 saat), untuk mempunyai sedikit lebih banyak masa untuk makan tengah hari dan menebus waktu yang hilang.

Bagi kebanyakan pengubahsuaian itu cukup untuk menggunakan pemproses yang paling mudah, dengan menggunakan frekuensi kerja 32768Hz. Kekerapan ini sangat digemari oleh pembuat jam, kerana mudah membuat kristal dengan frekuensi ini, dan melarang binari mudah dibahagi hingga beberapa saat. Ia mempunyai dua faedah untuk menggunakan frekuensi ini untuk pemproses: kita dapat dengan mudah mengitar semula kristal dari jam; dan pemproses biasanya mempunyai penggunaan minimum pada frekuensi ini. Penggunaan adalah sesuatu yang sering kita selesaikan ketika bermain dengan jam dinding. Terutama untuk dapat jam kuasa dari bateri terkecil, selama mungkin. Seperti yang telah dinyatakan, gegelung mempunyai daya tahan 200Ω dan direka untuk cca 1, 5V (satu bateri AA). Pemproses paling murah biasanya berfungsi dengan voltan yang sedikit lebih besar, tetapi dengan dua bateri (3V) berfungsi semuanya. Salah satu pemproses termurah di pasaran kami ialah Microchip PIC12F629, atau modul Arduino yang sangat popular. Kemudian kami akan menunjukkan cara menggunakan kedua-dua platform tersebut.

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

Pemproses PIC12F629 mempunyai voltan operasi 2.0V - 5.5V. Penggunaan dua "bateri mignon" = sel AA (cca 3V) atau dua akumulator AA yang boleh dicas semula AA (cca 2, 4V) sudah mencukupi. Tetapi untuk gegelung jam adalah dua kali lebih banyak daripada yang dirancang. Ia menyebabkan peningkatan penggunaan minimum yang tidak diingini. Maka adalah baik untuk menambahkan minimum perintang siri, yang akan membuat pembahagi voltan yang sesuai. Nilai perintang mestilah sekitar 120Ω untuk kuasa penumpuk atau 200Ω untuk kuasa bateri yang dikira untuk beban rintangan tulen. Dalam praktiknya nilainya sedikit lebih kecil sekitar 100Ω. Secara teori satu perintang berturut-turut dengan gegelung sudah cukup. Saya masih mempunyai kecenderungan, entah mengapa, untuk melihat motor sebagai peranti simetri dan kemudian meletakkan perintang dengan rintangan separuh (47Ω atau 51Ω) di sebelah setiap terminal gegelung. Beberapa pembinaan menambahkan dioda perlindungan untuk mengelakkan voltan negatif ke pemproses semasa gegelung terputus. Dari sisi lain kuasa output output pemproses sudah cukup untuk menghubungkan gegelung terus ke pemproses tanpa penguat. Skema lengkap untuk pemproses PIC12F629 akan kelihatan seperti yang dijelaskan pada gambar 15. Skema ini berlaku untuk jam tangan tanpa elemen kawalan tambahan. Kami masih mempunyai satu pin input / output GP0 dan satu input GP3 sahaja.

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

Sebaik sahaja kami ingin menggunakan Arduino, kami dapat melihat lembar data untuk pemproses ATmega328. Pemproses itu mempunyai voltan kerja yang ditakrifkan 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 itu adalah adanya pengatur voltan di atas kapal. Sebilangan besar pengatur voltan mempunyai masalah dengan voltan terbalik. Masalah ini dijelaskan secara meluas dan terbaik untuk pengatur 7805. Untuk keperluan kita, kita mesti menggunakan papan bertanda 3V3 (direka untuk menghidupkan 3.3V) terutamanya kerana papan ini mengandungi kristal 8MHz dan boleh dihidupkan mulai 2, 7V (ini bermaksud dua AA bateri). Kemudian penstabil yang digunakan tidak akan menjadi 7805 tetapi setaraf 3.3Vnya. Sebaik sahaja kami ingin menyalakan papan tanpa menggunakan penstabil, kami mempunyai dua pilihan. Pilihan pertama ialah, sambungkan voltan ke pin "RAW" (atau "Vin") dan + 3V3 (atau Vcc) bersama-sama dan percayai, penstabil yang digunakan di papan anda tidak mempunyai perlindungan voltan bawah. Pilihan kedua hanyalah menghilangkan penstabil. Untuk ini bagus untuk menggunakan Arduino Pro Mini, berikut skema rujukan. Skema itu mengandungi pelompat SJ1 (pada gambar 16 dalam bulatan merah) yang dirancang untuk memutuskan penstabil dalaman. Malangnya majoriti klon tidak mengandungi pelompat ini.

Kelebihan lain dari Arduino Pro Mini adalah, bahawa ia tidak mengandungi penukar tambahan, yang boleh menggunakan elektrik semasa menjalankan biasa (itu adalah komplikasi kecil semasa pengaturcaraan). Papan Arduino dilengkapi oleh pemproses yang lebih banyak dan selesa, yang tidak mempunyai kuasa yang cukup untuk output tunggal. Maka adalah baik untuk menambahkan penguat output kecil minimum menggunakan sepasang transistor. Skema asas untuk kuasa bateri akan kelihatan seperti yang ditunjukkan pada gambar.

Kerana persekitaran Arduino (bahasa "Pendawaian") mempunyai atribut sistem operasi moden (kemudian menghadapi masalah dengan pemasaan yang tepat), adalah baik untuk memikirkan penggunaan sumber jam luaran untuk Timer0 atau Timer1. Ini bermaksud input T0 dan T1, ia ditandakan sebagai 4 (T0) dan 4 (T1). Pengayun sederhana menggunakan kristal dari jam dinding dapat dihubungkan ke salah satu input tersebut. Itu bergantung, seberapa tepat jam yang ingin anda hasilkan. Rajah 18 menunjukkan tiga kemungkinan asas. Skema pertama sangat ekonomik dalam makna komponen terpakai. Ia memberikan output segitiga yang lebih sedikit, tetapi dalam julat voltan penuh, maka bagus untuk memberi input CMOS. Skema kedua menggunakan penyongsang, ia boleh menjadi CMOS 4096 atau TTL 74HC04. Skema lebih kurang serupa antara satu sama lain, dalam bentuk asas. Skema ketiga menggunakan cip CMOS 4060, yang membenarkan penyambungan kristal langsung (setara 74HC4060 menggunakan skema yang sama, tetapi nilai perintang yang berbeza). Kelebihan rangkaian ini adalah, bahawa ia mengandungi pembahagi 14 bit, maka mungkin memutuskan, frekuensi apa yang digunakan sebagai input pemasa.

Keluaran litar ini dapat digunakan untuk input T0 (pin 4 dengan penandaan Arduino) dan kemudian gunakan Timer0 dengan input luaran. Itu tidak begitu praktikal, kerana Timer0 digunakan untuk fungsi seperti delay (), milis () atau micros (). Pilihan kedua ialah sambungkan ke input T1 (pin 5 dengan penandaan Arduino) dan gunakan Timer1 dengan input tambahan. Pilihan seterusnya adalah menyambungkannya untuk mengganggu input INT0 (pin 2 dalam penandaan Arduino) atau INT1 (pin 3) dan gunakan fungsi attachInterrupt () dan fungsi register, yang dipanggil secara berkala. Berikut adalah pembahagi berguna yang ditawarkan oleh cip 4060, maka panggilan tidak semestinya.

Langkah 12: Jam Cepat untuk Perkakasan Railroaders Model

Jam Cepat untuk Perkakasan Railroaders Model
Jam Cepat untuk Perkakasan Railroaders Model
Jam Cepat untuk Perkakasan Railroaders Model
Jam Cepat untuk Perkakasan Railroaders Model
Jam Cepat untuk Perkakasan Railroaders Model
Jam Cepat untuk Perkakasan Railroaders Model

Untuk minat saya akan mengemukakan satu skema yang berguna. Saya perlu menyambungkan lebih banyak jam dinding untuk kawalan biasa. Jam dinding saling berjauhan dan di atasnya ciri persekitaran lebih bersifat industri dengan bunyi elektromagnetik yang lebih besar. Kemudian saya kembali menggunakan sistem bas lama menggunakan voltan yang lebih besar untuk komunikasi. Sudah tentu saya tidak menyelesaikan penggunaan bateri, tetapi saya menggunakan bekalan kuasa stabil 12V. Saya menguatkan isyarat dari pemproses menggunakan pemacu TC4427 (ia mempunyai ketersediaan dan harga yang baik). Kemudian saya membawa isyarat 12V dengan kemungkinan beban hingga 0.5A. Saya menambahkan pembahagi perintang sederhana pada jam hamba (pada gambar 18 ditandai sebagai R101 dan R102; Sekali lagi saya memahami motor sebagai simetri, itu tidak perlu). Saya ingin meningkatkan pengurangan bunyi dengan membawa lebih banyak arus, kemudian saya menggunakan dua perintang 100Ω. Untuk menghadkan voltan pada gegelung motor disambungkan penerus jambatan B101 selari dengan gegelung. Jambatan itu memendekkan sisi DC, maka ia mewakili dua pasang diod anti-selari. Dua diod bermaksud voltan turun sekitar 1.4V, yang hampir dengan voltan kerja normal untuk motor. Kita memerlukan anti-selari kerana kuasa bergantian dalam satu dan kekutuban yang berlawanan. Jumlah arus yang digunakan oleh satu jam dinding hamba ialah (12V - 1.5V) / (100Ω + 100Ω) = 53mA. Itu adalah nilai yang dapat diterima untuk mengelakkan kebisingan.

Berikut adalah dua suis skematik, mereka adalah untuk mengawal fungsi tambahan jam dinding (pengganda kelajuan sekiranya kereta api model). Jam puteri mempunyai satu lagi ciri menarik. Mereka disambungkan menggunakan dua penyambung pisang 4mm. Mereka memegang jam dinding di dinding. Ia berguna terutamanya apabila anda ingin menetapkan masa tertentu sebelum mula menggunakannya, anda hanya boleh mencabutnya dan kemudian pasangkan kembali (blok kayu dipasang ke dinding). Sekiranya anda ingin membuat "Big Ben", anda memerlukan kotak kayu dengan empat pasang soket. Kotak itu boleh digunakan sebagai simpanan jam apabila tidak digunakan.

Langkah 13: Perisian

Dari sudut perisian, keadaannya agak mudah. Marilah kita menerangkan realisasi pada cip PIC12F629 menggunakan kristal 32768Hz (dikitar semula dari jam asal). Pemproses mempunyai satu kitaran arahan empat kitaran pengayun panjang. Sebaik sahaja kita akan menggunakan sumber jam dalaman untuk mana-mana Pemasa, itu bermaksud kitaran arahan (disebut fosc / 4). Kami ada misalnya Timer0. Frekuensi input pemasa akan 32768/4 = 8192Hz. Pemasa adalah lapan bit (256 langkah) dan kami terus melimpah tanpa halangan. Kami akan memberi tumpuan hanya untuk acara limpahan pemasa. Acara akan berlaku dengan frekuensi 8192/256 = 32Hz. Kemudian apabila kita ingin mempunyai denyutan satu saat, kita mesti membuat nadi setiap 32 limpahan Timer0. Yang kita mahu agar jam berjalan misalnya empat kali lebih cepat, maka kita memerlukan 32/4 = 8 limpahan untuk nadi. Sekiranya kita berminat untuk merancang jam dengan tidak tetap tetapi tepat, kita mesti mempunyai jumlah limpahan untuk beberapa denyutan yang sama dengan bilangan denyutan 32 ×. Maka kita dapat mencari matriks jam tidak teratur seperti ini: [20, 40, 30, 38]. Maka jumlahnya adalah 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 percuma sebagai definisi pembahagi untuk jangka masa cepat. Pembahagi jadual dith untuk kelajuan disimpan dalam memori EEPROM. Bahagian utama program boleh kelihatan seperti ini:

MainLoop:

btfss INTCON, T0IF goto MainLoop; tunggu Timer0 bcf INTCON, T0IF incf CLKCNT, f btfss SW_STOP; jika suis STOP aktif, clrf CLKCNT; membersihkan kaunter setiap kali btfsc SW_FAST; jika butang pantas tidak ditekan goto NormalTime; hitung hanya waktu normal movf FCLK, w xorwf CLKCNT, w btfsc STATUS, Z; jika FCLK dan CLKCNT adalah sama goto SendPulse NormalTime: movf CLKCNT, w andlw 0xE0; bit 7, 6, 5 btfsc STATUS, Z; jika CLKCNT> = 32 goto MainLoop goto SendPulse

Program menggunakan fungsi SendPulse, fungsi itu membuat denyut motor itu sendiri. Fungsi mengira denyut ganjil / genap dan berdasarkan yang menghasilkan denyutan pada output satu atau kedua. Fungsi menggunakan ENERGISE_TIME berterusan. Selang menentukan masa semasa gegelung motor diaktifkan. Oleh itu ia memberi kesan besar kepada penggunaan. Apabila ia sangat kecil, motor tidak dapat menyelesaikan langkah dan kadang-kadang ia berlaku, detik itu hilang (biasanya ketika tangan kedua berjalan sekitar nombor 9, ketika ia "naik").

HantarPulse:

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 SendPulse

Kod sumber penuh boleh dimuat turun di hujung halaman www.fucik.name. Situasi dengan Arduino agak rumit, kerana Arduino menggunakan bahasa pengaturcaraan yang lebih tinggi dan menggunakan kristal 8MHz sendiri, kita harus berhati-hati fungsi apa yang kita gunakan. Penggunaan kelewatan klasik () sedikit berisiko (ia mengira masa dari permulaan fungsi). Hasil yang lebih baik akan menggunakan perpustakaan seperti Timer1. Banyak projek Arduino bergantung pada peranti RTC luaran seperti PCF8563, DS1302, dll.

Langkah 14: Rasa ingin tahu

Sistem penggunaan motor jam dinding ini difahami sebagai sangat asas. Terdapat banyak peningkatan. Contohnya berdasarkan pengukuran EMF Belakang (tenaga elektrik yang dihasilkan oleh pergerakan magnet pemutar). Kemudian elektronik dapat mengenali, setelah tangan digerakkan dan jika tidak, maka cepat ulangi nadi atau kemas kini nilai "ENERGISE_TIME". rasa ingin tahu yang lebih berguna adalah "langkah terbalik". Berdasarkan keterangannya, motor itu dirancang untuk satu arah putaran sahaja dan ia tidak dapat diubah. Tetapi seperti yang ditunjukkan pada video yang dilampirkan, perubahan arah mungkin terjadi. Prinsipnya mudah. Mari kita kembali kepada prinsip motor. Bayangkan, motor berada dalam keadaan stabil pada langkah kedua (Gambar 3). Setelah kita menghubungkan voltan seperti yang ditunjukkan pada langkah pertama (Gambar 2), motor secara logik akan memulakan putaran ke arah terbalik. Setelah denyut nadi cukup pendek dan akan berakhir sedikit sebelum keadaan stabil motor meningkat, secara logik ia akan berkelip sedikit. Sekali sekala kelipan itu akan tiba nadi voltan seterusnya seperti yang dijelaskan pada keadaan ketiga (Gambar 4), maka motor akan meneruskan arah ketika dimulakan, maksudnya dalam arah terbalik. Masalah kecil adalah, bagaimana menentukan jangka masa nadi pertama dan sekali untuk membuat jarak antara nadi pertama dan kedua. Dan yang paling teruk adalah, bahawa pemalar itu berbeza-beza untuk setiap pergerakan jam dan kadang-kadang berbeza untuk kes, tangan turun "turun" (sekitar nombor 3) atau naik (sekitar nombor 9) dan juga dalam kedudukan neutral (sekitar nombor 12 dan 6). Untuk kes yang disajikan pada video, saya menggunakan nilai dan algoritma seperti yang ditunjukkan dalam kod berikut:

#tentukan OUT_A_SET 0x02; config untuk menetapkan satu set b jelas

#tentukan OUT_B_SET 0x04; config for out b tetapkan jelas #define ENERGISE_TIME 0x30 #define REVERT_TIME 0x06 SendPulse: incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: movlw REVERT_TIME movwf mulakan dengan denyut B movwf GPIO RevPulseLoopA:; masa yang singkat tunggu decfsz ECNT, f goto RevPulseLoopA movlw OUT_A_SET; kemudian nadi A movwf GPIO goto SendPulseE SendPulseB: movlw REVERT_TIME movwf ECNT movlw OUT_A_SET; mulakan dengan nadi A movwf GPIO RevPulseLoopB:; masa yang singkat tunggu decfsz ECNT, f goto RevPulseLoopB movlw OUT_B_SET; kemudian 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 terbalik meningkatkan kemungkinan bermain dengan jam dinding. Kadang-kadang kita dapati jam dinding, yang mempunyai pergerakan tangan terpakai yang lancar. Kami tidak takut dengan jam itu, mereka menggunakan tipu muslihat sederhana. Motor itu sendiri sama seperti motor yang dijelaskan di sini, hanya nisbah gear yang lebih besar (biasanya 8: 1 lagi) dan motor berputar lebih cepat (biasanya 8x lebih cepat) yang memberi kesan pergerakan lancar. Setelah anda memutuskan untuk mengubah jam dinding tersebut, jangan lupa mengira pengganda yang diminta.

Disyorkan: