Daftar Isi:

Pengontrol Kereta Model Arduino 2-in-1: 4 Langkah
Pengontrol Kereta Model Arduino 2-in-1: 4 Langkah

Video: Pengontrol Kereta Model Arduino 2-in-1: 4 Langkah

Video: Pengontrol Kereta Model Arduino 2-in-1: 4 Langkah
Video: Tonton Sampai Habis !!! Belajar Arduino Di Jamin Bisa 2024, Juli
Anonim
Pengontrol Kereta Model 2-in-1 Arduino
Pengontrol Kereta Model 2-in-1 Arduino

Empat puluh tahun yang lalu saya merancang throttle kereta model berbasis op-amp untuk beberapa teman, dan kemudian sekitar empat tahun yang lalu saya membuatnya kembali menggunakan mikrokontroler PIC. Proyek Arduino ini membuat ulang versi PIC tetapi juga menambahkan kemampuan untuk menggunakan koneksi Bluetooth alih-alih sakelar manual untuk kontrol throttle, rem, dan arah. Sementara desain yang saya sajikan di sini ditujukan untuk motor kereta api model 12 volt, dapat dengan mudah dimodifikasi untuk berbagai aplikasi kontrol motor DC lainnya.

Langkah 1: Modulasi Lebar Pulsa (PWM)

Modulasi Lebar Pulsa (PWM)
Modulasi Lebar Pulsa (PWM)

Bagi Anda yang tidak terbiasa dengan PWM, itu tidak seseram kedengarannya. Semua itu benar-benar berarti untuk aplikasi kontrol motor sederhana kami adalah bahwa kami menghasilkan gelombang persegi dari beberapa frekuensi, dan kemudian kami mengubah siklus kerja. Siklus kerja didefinisikan sebagai rasio waktu keluaran adalah logika tinggi dibandingkan dengan periode bentuk gelombang. Anda dapat melihatnya dengan cukup jelas pada diagram di atas dengan bentuk gelombang atas pada siklus kerja 10%, bentuk gelombang tengah pada siklus kerja 50%, dan bentuk gelombang bawah pada siklus kerja 90%. Garis putus-putus yang dihamparkan pada setiap bentuk gelombang mewakili tegangan DC ekivalen yang dilihat oleh motor. Mengingat Arduino memiliki kemampuan PWM bawaan, sangat mudah untuk menghasilkan jenis kontrol motor DC ini. Salah satu keuntungan lain menggunakan PWM adalah membantu menjaga motor dari startup yang tersendat-sendat yang dapat terjadi saat menggunakan DC lurus. Salah satu kelemahan dari PWM adalah kadang-kadang ada suara yang terdengar dari motor pada frekuensi PWM.

Langkah 2: Perangkat Keras

Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras

Gambar pertama menunjukkan koneksi Arduino untuk sakelar dan modul driver motor LM298. Ada resistor pull-up yang lemah di dalam Arduino sehingga tidak diperlukan resistor pull-up untuk sakelar. Sakelar Arah adalah sakelar SPST (single pole single throw) sederhana. Sakelar Throttle dan Rem ditampilkan sebagai tombol tekan kontak sesaat yang biasanya terbuka.

Gambar kedua menunjukkan koneksi Arduino untuk modul Bluetooth dan modul driver motor LM298. Output Bluetooth TXD terhubung langsung ke input serial Arduino RX.

Gambar ketiga adalah modul dual H-bridge L298N. Modul LM298 memiliki regulator 5 volt onboard yang dapat diaktifkan oleh jumper. Kami membutuhkan +5 volt untuk Arduino dan Bluetooth tetapi kami ingin +12 volt untuk menggerakkan motor. Dalam hal ini kami menerapkan +12 volt ke input "+12V power" dari L298N dan kami akan membiarkan jumper "5V enable" di tempatnya. Ini memungkinkan regulator 5 volt untuk menghasilkan koneksi "+5 daya" pada modul. Hubungkan itu ke Arduino dan Bluetooth. Jangan lupa untuk menghubungkan kabel ground untuk input +12 dan output +5 ke modul "power GND".

Kami ingin tegangan output ke motor bervariasi berdasarkan PWM yang dihasilkan oleh Arduino, bukan hanya penuh atau mati. Untuk melakukan itu, kami menghapus jumper dari "ENA" dan "ENB" dan menghubungkan output PWM Arduino kami ke "ENA" pada modul. Ingatlah bahwa pin pengaktifan yang sebenarnya adalah yang paling dekat dengan tepi papan (di sebelah pin "input"). Pin belakang untuk setiap aktifkan adalah +5 volt jadi kami ingin memastikan kami tidak terhubung ke itu.

Pin “IN1” dan “IN2” pada modul terhubung ke masing-masing pin Arduino. Pin tersebut mengontrol arah motor dan, ya, ada alasan bagus untuk membiarkan Arduino mengontrolnya daripada hanya menghubungkan sakelar ke modul. Kita akan melihat alasannya dalam diskusi perangkat lunak.

Langkah 3: Modul Bluetooth

Modul Bluetooth
Modul Bluetooth

Gambar yang ditampilkan di sini adalah tipikal dari modul Bluetooth yang tersedia. Saat mencari satu untuk dibeli, Anda dapat mencari dengan istilah "HC-05" dan HC-06". Perbedaan keduanya ada pada firmware dan biasanya pada jumlah pin pada board. Gambar di atas adalah modul HC-06 dan dilengkapi dengan firmware sederhana yang hanya memungkinkan konfigurasi yang sangat dasar. Ini juga ditetapkan sebagai perangkat Bluetooth khusus "Budak". Dalam istilah sederhana itu berarti hanya dapat menanggapi perintah dari perangkat "Master" dan tidak dapat mengeluarkan perintah sendiri. Modul HC-05 memiliki lebih banyak kemungkinan konfigurasi dan dapat diatur sebagai perangkat "Master" atau "Slave". HC-05 biasanya memiliki enam pin, bukan hanya empat yang ditunjukkan di atas untuk HC-06. Pin Negara tidak terlalu penting tetapi Pin Kunci (terkadang disebut dengan nama lain seperti "EN") diperlukan jika Anda ingin melakukan konfigurasi apa pun. Umumnya, modul tidak memerlukan konfigurasi apa pun jika Anda setuju dengan baud rate default 9600 dan tidak peduli untuk memberikan nama khusus untuk modul. Saya memiliki beberapa proyek di mana saya menggunakan ini, jadi saya ingin memberi nama yang sesuai.

Mengonfigurasi modul Bluetooth mengharuskan Anda membeli atau membuat antarmuka ke port serial RS-232 atau ke port USB. Saya tidak akan membahas cara membuatnya di posting ini tetapi Anda harus dapat menemukan informasi di web. Atau cukup beli antarmuka. Perintah konfigurasi menggunakan perintah AT seperti yang digunakan di masa lalu dengan modem telepon. Saya telah melampirkan panduan pengguna di sini yang menyertakan perintah AT untuk setiap jenis modul. Satu hal yang perlu diperhatikan adalah bahwa HC-06 membutuhkan perintah UPPERCASE dan string perintah harus selesai dalam 1 detik. Itu berarti bahwa beberapa string yang lebih panjang untuk hal-hal seperti mengubah baud rate perlu dipotong dan ditempelkan ke program terminal Anda atau Anda perlu mengatur file teks untuk dikirim. Persyaratan UPPERCASE hanya jika Anda mencoba mengirim perintah konfigurasi. Mode komunikasi reguler dapat menerima data 8-bit apa pun.

Langkah 4: Perangkat Lunak

Perangkat lunak ini cukup sederhana untuk versi manual dan versi Bluetooth. Untuk memilih versi Bluetooth, cukup batalkan komentar pada pernyataan “#define BT_Ctrl”.

Ketika saya menulis kode PIC saya bereksperimen dengan frekuensi PWM dan akhirnya menetap di 500-Hz. Saya menemukan bahwa jika frekuensinya terlalu tinggi maka modul LM298N tidak mampu bereaksi cukup cepat terhadap pulsa. Itu berarti bahwa tegangan output tidak linier dan dapat mengambil lompatan besar. Arduino memiliki perintah PWM bawaan tetapi mereka hanya memungkinkan Anda untuk memvariasikan siklus kerja dan bukan frekuensi. Untungnya, frekuensinya sekitar 490-Hz sehingga cukup dekat dengan 500-Hz yang saya gunakan pada PIC.

Salah satu "fitur" dari throttle kereta api adalah rasa momentum untuk akselerasi dan pengereman untuk mensimulasikan cara kerja kereta yang sebenarnya. Untuk mencapai itu, penundaan waktu sederhana dimasukkan ke dalam loop untuk versi manual perangkat lunak. Dengan nilai yang ditunjukkan, dibutuhkan sekitar 13 detik untuk beralih dari 0 ke 12 volt atau dari 12 volt kembali ke nol. Penundaan dapat dengan mudah dimodifikasi untuk waktu yang lebih lama atau lebih pendek. Satu-satunya kasus di mana momentum tidak berpengaruh adalah ketika sakelar Arah diubah. Untuk tujuan perlindungan, siklus kerja PWM segera disetel ke 0% setiap kali sakelar ini diubah. Itu, pada dasarnya, membuat sakelar Arah juga berfungsi ganda sebagai rem darurat.

Untuk memastikan penanganan segera dari sakelar Arah, saya memasukkan kodenya ke dalam penangan interupsi. Itu juga memungkinkan kita untuk menggunakan fungsi "interrupt on change" sehingga tidak masalah apakah perubahannya dari rendah ke tinggi atau tinggi ke rendah.

Versi Bluetooth dari perangkat lunak menggunakan perintah satu huruf untuk memulai fungsi Maju, Mundur, Rem, dan Throttle. Akibatnya, perintah yang diterima menggantikan sakelar manual tetapi menyebabkan respons yang sama. Aplikasi yang saya gunakan untuk kontrol Bluetooth disebut "Bluetooth Serial Controller" oleh Next Prototypes. Ini memungkinkan Anda mengonfigurasi keypad virtual dan mengatur string perintah dan nama Anda sendiri untuk setiap tombol. Ini juga memungkinkan Anda untuk mengatur tingkat pengulangan jadi saya mengatur tombol Rem dan Throttle ke 50ms untuk memberikan momentum sekitar 14 detik. Saya menonaktifkan fungsi pengulangan untuk tombol Maju dan Mundur.

Itu saja untuk posting ini. Lihat Instructables saya yang lain. Jika Anda tertarik dengan proyek mikrokontroler PIC, lihat situs web saya di www.boomerrules.wordpress.com

Direkomendasikan: