Isi kandungan:

Arduino 2-in-1 Model Train Controller: 4 Langkah
Arduino 2-in-1 Model Train Controller: 4 Langkah

Video: Arduino 2-in-1 Model Train Controller: 4 Langkah

Video: Arduino 2-in-1 Model Train Controller: 4 Langkah
Video: Model railway multi points / turnout controller (Arduino) 2024, Julai
Anonim
Pengawal Kereta Model Arduino 2-in-1
Pengawal Kereta Model Arduino 2-in-1

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)

Modulasi Lebar Nadi (PWM)
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

Perkakasan
Perkakasan
Perkakasan
Perkakasan
Perkakasan
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

Modul Bluetooth
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: