Isi kandungan:
- Langkah 1: Modulasi Lebar Nadi (PWM)
- Langkah 2: Perkakasan
- Langkah 3: Modul Bluetooth
- Langkah 4: Perisian
Video: Arduino 2-in-1 Model Train Controller: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Empat puluh tahun yang lalu saya merancang model kereta api berasaskan op-amp untuk beberapa rakan, dan sekitar empat tahun yang lalu saya mencipta semula menggunakan mikrokontroler PIC. Projek Arduino ini mencipta versi PIC tetapi juga menambah kemampuan untuk menggunakan sambungan Bluetooth dan bukannya suis manual untuk kawalan pendikit, brek dan arah. Walaupun reka bentuk yang saya kemukakan di sini disasarkan untuk motor rel model 12 volt, ia dapat diubahsuai dengan mudah untuk pelbagai aplikasi kawalan motor DC yang lain.
Langkah 1: Modulasi Lebar Nadi (PWM)
Bagi anda yang tidak biasa dengan PWM, ini tidak menakutkan seperti kedengarannya. Yang sangat bermakna bagi aplikasi kawalan motor mudah kita ialah kita menghasilkan gelombang persegi dengan kekerapan, dan kemudian kita mengubah kitaran tugas. Duty cycle didefinisikan sebagai nisbah masa bahawa output adalah tinggi logik berbanding dengan tempoh gelombang. Anda dapat melihatnya dengan jelas dalam rajah di atas dengan bentuk gelombang atas pada kitaran tugas 10%, bentuk gelombang tengah pada kitaran tugas 50%, dan bentuk gelombang bawah pada kitaran tugas 90%. Garis putus-putus yang dilapisi pada setiap bentuk gelombang mewakili voltan DC setara yang dilihat oleh motor. Memandangkan Arduino mempunyai keupayaan PWM yang terpasang, sangat mudah untuk menghasilkan kawalan motor DC jenis ini. Satu kelebihan lain menggunakan PWM ialah ia membantu menjauhkan motor dari permulaan yang cepat yang boleh berlaku semasa menggunakan DC lurus. Satu kelemahan PWM ialah kadang-kadang terdapat bunyi yang terdengar dari motor pada frekuensi PWM.
Langkah 2: Perkakasan
Gambar pertama menunjukkan sambungan Arduino untuk suis dan modul pemacu motor LM298. Terdapat perintang pull-up yang lemah di dalam Arduino sehingga tidak diperlukan perintang pull-up untuk suis. Suis Direction adalah suis SPST (tiang tunggal tiang tunggal) sederhana. Suis Throttle dan Brake ditunjukkan seperti butang tekan kenalan sesaat yang terbuka.
Gambar kedua menunjukkan sambungan Arduino untuk modul Bluetooth dan modul pemandu motor LM298. Output Bluetooth TXD menghubungkan terus ke input bersiri Arduino RX.
Gambar ketiga adalah modul H-bridge dual L298N. Modul LM298 mempunyai pengatur 5 volt onboard yang dapat diaktifkan oleh pelompat. Kami memerlukan +5 volt untuk Arduino dan Bluetooth tetapi kami mahu +12 volt untuk menggerakkan motor. Dalam kes ini, kami menerapkan voltan +12 pada input "+ 12V power" L298N dan kami akan membiarkan jumper "5V enabled" di tempat. Ini membolehkan pengatur 5 volt mengeluarkan ke sambungan "daya +5" pada modul. Sambungkannya ke Arduino dan Bluetooth. Jangan lupa untuk menyambungkan kabel ground untuk input +12 dan output +5 ke modul "power GND".
Kami mahu voltan keluaran ke motor berubah berdasarkan PWM yang dihasilkan oleh Arduino dan bukannya hanya dihidupkan atau dimatikan sepenuhnya. Untuk melakukan itu, kami mengeluarkan jumper dari "ENA" dan "ENB" dan menghubungkan output Arduino PWM kami ke "ENA" pada modul. Perlu diingat bahawa pin aktif sebenarnya adalah pin yang paling dekat dengan tepi papan (di sebelah pin "input"). Pin belakang untuk setiap pengaktifan adalah +5 volt jadi kami ingin memastikan bahawa kami tidak menyambungnya.
Pin "IN1" dan "IN2" pada modul disambungkan ke pin Arduino masing-masing. Pin itu mengawal arah motor dan, ya, ada alasan yang baik untuk membiarkan Arduino mengendalikannya daripada hanya menghubungkan suis ke modul. Kami akan melihat mengapa dalam perbincangan perisian.
Langkah 3: Modul Bluetooth
Gambar yang ditunjukkan di sini khas untuk modul Bluetooth yang ada. Semasa mencari yang hendak dibeli, anda boleh mencari istilah "HC-05" dan HC-06 ". Perbezaan antara keduanya ada pada firmware dan biasanya dalam jumlah pin di papan tulis. Gambar di atas adalah modul HC-06 dan dilengkapi dengan firmware yang dipermudahkan yang hanya membenarkan konfigurasi yang sangat asas. Ia juga ditetapkan sebagai perangkat Bluetooth "Slave" sahaja. Dengan kata mudah, itu hanya dapat menanggapi perintah dari perangkat "Master" dan tidak dapat mengeluarkan perintah sendiri. Modul HC-05 mempunyai lebih banyak kemungkinan konfigurasi dan dapat ditetapkan sebagai peranti "Master" atau "Slave". HC-05 biasanya mempunyai enam pin dan bukan hanya empat pin yang ditunjukkan di atas untuk HC-06. Pin Negeri tidak begitu penting tetapi pin Kunci (kadang-kadang menggunakan nama lain seperti "EN") diperlukan jika anda ingin melakukan sebarang konfigurasi. Secara amnya, modul tidak memerlukan konfigurasi apa pun jika anda baik dengan kadar baud lalai 9600 dan tidak peduli untuk memberikan nama tertentu pada modul tersebut. Saya mempunyai beberapa projek di mana saya menggunakannya, jadi saya mahu menamakannya dengan sewajarnya.
Mengkonfigurasi modul Bluetooth memerlukan anda membeli atau membina antara muka ke port bersiri RS-232 atau ke port USB. Saya tidak akan membincangkan cara membuatnya dalam siaran ini tetapi anda seharusnya dapat mencari maklumat di web. Atau beli antara muka sahaja. Perintah konfigurasi menggunakan perintah AT seperti apa yang digunakan pada masa lalu dengan modem telefon. Saya telah melampirkan manual pengguna di sini yang merangkumi arahan AT untuk setiap jenis modul. Satu perkara yang perlu diperhatikan adalah bahawa HC-06 memerlukan arahan UPPERCASE dan rentetan arahan mesti diselesaikan dalam masa 1 saat. Ini bermaksud bahawa beberapa rentetan yang lebih panjang untuk mengubah kadar baud perlu dipotong dan ditampal ke dalam program terminal anda atau anda perlu menyediakan fail teks untuk dihantar. Keperluan UPPERCASE hanya jika anda ingin menghantar perintah konfigurasi. Mod komunikasi biasa boleh menerima 8 bit data.
Langkah 4: Perisian
Perisian ini cukup mudah untuk versi manual dan juga versi Bluetooth. Untuk memilih versi Bluetooth, hanya melepaskan pernyataan "#define BT_Ctrl".
Semasa saya menulis kod PIC saya bereksperimen dengan frekuensi PWM dan akhirnya menetap pada 500-Hz. Saya dapati bahawa jika frekuensi terlalu tinggi maka modul LM298N tidak mampu bertindak balas dengan cepat pada denyutan nadi. Itu bermaksud bahawa output voltan tidak linear dan boleh melakukan lonjakan besar. Arduino mempunyai perintah PWM yang terpasang tetapi ia hanya membolehkan anda mengubah kitaran tugas dan bukan frekuensi. Nasib baik, frekuensi sekitar 490-Hz sehingga cukup dekat dengan 500-Hz yang saya gunakan pada PIC.
Salah satu "ciri" pendikit kereta api adalah rasa momentum untuk pecutan dan pengereman untuk mensimulasikan bagaimana kereta api sebenar berfungsi. Untuk mencapainya, kelewatan waktu sederhana dimasukkan ke dalam gelung untuk versi manual perisian. Dengan nilai yang ditunjukkan, diperlukan sekitar 13 saat untuk pergi dari 0 hingga 12 volt atau dari 12 volt kembali ke sifar. Kelewatan dapat diubah dengan mudah untuk masa yang lebih lama atau lebih pendek. Satu-satunya kes di mana momentum tidak berlaku ialah apabila suis Arah diubah. Untuk tujuan perlindungan, kitaran tugas PWM segera ditetapkan ke 0% setiap kali suis ini diubah. Ini sebenarnya menjadikan suis Direction juga berfungsi sebagai brek kecemasan.
Untuk memastikan pengendalian suis Direction dengan segera, saya memasukkan kodnya ke pengendali interrupt. Itu juga membolehkan kita menggunakan fungsi "interrupt on change" sehingga tidak menjadi masalah jika perubahannya dari rendah ke tinggi atau tinggi ke rendah.
Versi Bluetooth perisian menggunakan perintah huruf tunggal untuk memulakan fungsi Maju, Mundur, Brake, dan Throttle. Akibatnya, arahan yang diterima menggantikan suis manual tetapi menyebabkan tindak balas yang sama. Aplikasi yang saya gunakan untuk kawalan Bluetooth disebut "Bluetooth Serial Controller" oleh Next Prototypes. Ini membolehkan anda mengkonfigurasi papan kekunci maya dan menetapkan rentetan perintah dan nama anda sendiri untuk setiap kekunci. Ia juga membolehkan anda menetapkan kadar ulangan sehingga saya menetapkan butang Brake dan Throttle hingga 50ms untuk memberikan momentum sekitar 14 saat. Saya melumpuhkan fungsi ulangi untuk butang Maju dan Balik.
Itu sahaja untuk siaran ini. Lihat Arahan saya yang lain. Sekiranya anda berminat dengan projek mikrokontroler PIC, lihat laman web saya di www.boomerrules.wordpress.com
Disyorkan:
Switch Adapt a Toy: WolVol Train Made Switch Accessible !: 7 Langkah
Switch Adapt a Toy: WolVol Train Made Switch Switchable !: Adaptasi mainan membuka jalan baru dan penyelesaian khusus untuk membolehkan kanak-kanak dengan kemampuan motor terhad atau kecacatan perkembangan untuk berinteraksi dengan mainan secara bebas. Dalam banyak kes, kanak-kanak yang memerlukan mainan yang disesuaikan tidak dapat
Overkill Model Rocket Launch Controller!: 9 Langkah (dengan Gambar)
Overkill Model Rocket Launch Controller !: Sebagai sebahagian daripada projek besar yang melibatkan roket model, saya memerlukan pengawal. Tetapi seperti semua projek saya, saya tidak dapat mengikuti asas-asasnya dan membuat alat kawalan satu butang genggam yang hanya melancarkan roket model, tidak, saya terpaksa sangat berlebihan
FRC Writing a Simple Drive Train (Java) 2019: 5 Langkah
FRC Writing a Simple Drive Train (Java) 2019: INSTRUCTABLE INI KELUAR TARIKH! Harap perhatikan arahan saya seterusnya mengenai pengaturcaraan 2019 semasa. Walaupun sudah ketinggalan zaman masih ada perkara yang boleh anda pelajari mengenainya seperti bagaimana membuat kelas dan menulis kod
Garden Train - Arduino Wireless NMRA DCC: 4 Langkah (dengan Gambar)
Garden Train - Arduino Wireless NMRA DCC: Lebih jauh dari petunjuk sebelumnya dengan DCC pada sistem rel mati, saya telah mengembangkan idea ini lebih jauh dengan Stesen Perintah DCC yang dipegang tangan dengan papan kekunci dan paparan LCD. Command Station mengandungi semua pengekodan yang diperlukan untuk arahan NMRA DCC, bagaimana pun
Model Train Control WiFi Menggunakan MQTT: 9 Langkah
Model Kereta Api Kawalan WiFi Menggunakan MQTT: Memiliki sistem model kereta api skala TT lama, saya mempunyai idea bagaimana mengawal lokasi secara individu. Dengan ini, saya melangkah lebih jauh dan mengetahui apa yang diperlukan untuk tidak hanya mengendalikan kereta api tetapi mempunyai beberapa maklumat tambahan mengenai