Daftar Isi:

Motor Kecepatan Variabel Terkendali Serial: 6 Langkah
Motor Kecepatan Variabel Terkendali Serial: 6 Langkah

Video: Motor Kecepatan Variabel Terkendali Serial: 6 Langkah

Video: Motor Kecepatan Variabel Terkendali Serial: 6 Langkah
Video: Arduino tutorial | Basic #6 - Analog read serial 2024, Juli
Anonim
Motor Kecepatan Variabel Terkendali Serial
Motor Kecepatan Variabel Terkendali Serial

Kontrol kecepatan motor DC kecil hanya dengan port serial di komputer Anda, satu MOSFET, dan beberapa perangkat lunak sepele. (MOSFET dan port serial membentuk "kontrol kecepatan"; Anda masih memerlukan motor dan catu daya yang sesuai untuk motor itu; sementara port serial dapat memberikan tegangan untuk menghidupkan dan mematikan MOSFET, itu bisa' t memasok arus yang dibutuhkan oleh motor tipikal.)

Langkah 1: Lihatlah Sirkuit

Lihatlah Sirkuit
Lihatlah Sirkuit

Kita akan melakukan Pulse Width Modulation menggunakan MOSFET daya N-channel generik yang terhubung ke pin Transmit data dari port rs232 komputer. Ketika port serial dalam keadaan idle, pin akan berada pada status "1", yang pada saat diterjemahkan ke rs232, kira-kira seperti -12V (tergantung pada driver, mungkin lebih dekat ke -9V atau -5V), dan transistor akan cukup OFF. Ketika kita mengirimkan bit "0" pada port serial, pin rs232 akan menuju ke +12V atau lebih, yang cukup untuk mengaktifkan sebagian besar MOSFET dengan cukup baik.

Jika kita mengirimkan banyak "0" bis berturut-turut, motor akan hampir ON penuh dan motor akan berjalan cepat. Jika kita mengirimkan sebagian besar bit "1", motor akan berjalan lebih lambat.

Langkah 2: Sambungkan

Hubungkan
Hubungkan

Karena hanya ada satu komponen dan hanya beberapa koneksi, Anda dapat menambahkan kabel "bentuk bebas".

MOSFET peka terhadap statis, jadi berhati-hatilah, tetapi sangat sedikit yang kritis.

Langkah 3: Atur File Dengan Nilai PWM

Mengatur File Dengan Nilai PWM
Mengatur File Dengan Nilai PWM

Salah satu cara untuk mengontrol motor tanpa harus menulis perangkat lunak APAPUN adalah dengan menyiapkan beberapa file yang berisi byte yang sesuai (dengan kurang lebih 0 bit), dan cukup SALIN file tersebut ke port COM tempat Anda menghubungkan motor. Saya menyiapkan beberapa file (menggunakan emacs, tetapi apa pun yang cocok untuk Anda tidak masalah):

  • 0.pwm:: berisi 5000 karakter NULL (ruang kontrol pada sebagian besar keyboard)[br] Ini hampir mendekati "kecepatan penuh" seperti yang bisa kita dapatkan dengan teknik ini.
  • 1.pwm:: berisi 5000 karakter control-A (ascii 01) (satu bit "1" per karakter)
  • 3.pwm:: berisi 5000 karakter control-C (ascii 03) (dua bit "1" per karakter)
  • 7.pwm:: berisi 5000 karakter control-G (ascii 07) (tiga bit "1" per karakter)
  • 15.pwm:: berisi 5000 karakter control-O (ascii 15) (empat bit "1" per karakter)
  • 31.pwm:: berisi 5000 karakter control-_ (ascii 31) (lima bit "1" per karakter)
  • 63.pwm:: berisi 5000 "?" karakter (ascii 63) (enam bit "1" per karakter)
  • 127.pwm:: berisi 5000 karakter DEL (ascii 127) (tujuh "1" bit per karakter)

(Sekarang setelah saya menggambar, Anda akan melihat bahwa pola bit sebenarnya tidak ideal. Karena serial rs232 mentransmisikan LSB terlebih dahulu, kami benar-benar ingin menggeser nol, bukan satu. Latihan untuk siswa!)

Langkah 4: Mainkan Dengan DOS: Konfigurasikan Port COM Anda dan Salin File

Mainkan Dengan DOS: Konfigurasikan Port COM Anda dan Salin File
Mainkan Dengan DOS: Konfigurasikan Port COM Anda dan Salin File

9600 bps adalah bitrate umum. Ini cocok dengan "sekitar" satu byte per milidetik, jadi dalam hal ini sesuai dengan frekuensi PWM 1000Hz, yang menurut saya seharusnya baik-baik saja untuk motor bertubuh kecil. Anda dapat bereksperimen dengan bit rate yang berbeda untuk melihat cara kerjanya, yang merupakan salah satu keuntungan dari metode ini. Buat jendela DOS (atau "Command Prompt") (dengan asumsi Anda menggunakan OS windows), dan konfigurasikan port com Anda seperti:mode com1: 9600, n, 7, 1"Itu memberitahu port comm untuk berjalan pada 9600bps, dan mengirim 7 bit di setiap karakter (untuk mencocokkan dengan 7 panjang bit yang berbeda.) "n" berarti NO parity, jadi itu adalah satu-satunya bit data. "1" berarti akan ada satu bit "stop", yang akan mencegah kita menghidupkan motor sepenuhnya (oh well.)Jadi sekarang Anda dapat menghidupkan motor dengan perintah like:copy 0.pwm com1:Karena kita mengirim 5000 karakter sekitar 1 per milidetik, motor harus menyala mendekati kecepatan penuh selama sekitar 5 detik. Jika Anda ingin kurang dari 5 detik, buat file yang lebih pendek. Demikian pula, Anda dapat melakukan:copy 127.pwm com1:untuk menjalankan motor pada kecepatan serendah mungkin. Dengan pengaturan yang saya miliki, motor tidak akan berputar sama sekali dengan "lebih lambat" dari 31.pwm, tetapi YMMV (saya kurus k Saya memiliki motor 12V yang menggunakan baterai 5V.)Perintah COPY memungkinkan Anda merangkai file bersama-sama, jadi jika Anda ingin motor Anda dipercepat dan kemudian melambat lagi, Anda dapat melakukan sesuatu seperti:salin 31.pwm+15. pwm+7.pwm+0.pwm+7.pwm+15.pwm+31.pwm com1:

Langkah 5: Kontrol Motor Dari Program

Kontrol Motor Dari Program
Kontrol Motor Dari Program

Jika Anda sedang menulis sebuah program, Anda mungkin dapat membuka COM1: sebagai file dan menulisnya seolah-olah itu adalah file lain. Mampu mengatur waktu saat motor menyala dengan mengeluarkan sejumlah karakter tertentu tampaknya akan sangat berguna. Jangan lupa bahwa sistem kemungkinan besar akan menyangga karakter yang Anda kirim ke port serial, jadi hanya karena panggilan MENULIS kembali tidak berarti bahwa motor telah selesai melakukan apa pun yang Anda perintahkan. Karena kami tidak melakukan sesuatu yang "mewah" dengan sinyal komunikasi, Anda tidak perlu menyelidiki opsi misterius yang mungkin didukungnya. (walaupun, jika Anda dapat mengetahui cara mengirim urutan BREAK ke port com, itu adalah status "0" yang berkelanjutan, dan akan menggerakkan motor sepanjang jalan; lebih dari mengirim 0 karakter terus menerus.)

Jika bahasa pemrograman Anda tidak memungkinkan Anda menghasilkan COM1:, Anda mungkin masih dapat mengontrol motor dengan "memanggil" DOS untuk melakukan perintah penyalinan. (OK. Saya telah mengunduh Microsoft Visual Basic Express 2005 (yang gratis) dan berhasil mengikat bilah gulir horizontal ke kecepatan motor, dikendalikan melalui port serial. zip terpasang. Mungkin ada lebih dari yang dibutuhkan untuk menduplikasi program di sistem Anda, tapi saya tidak tahu persis bit mana yang diperlukan. Program ini disederhanakan dan dibuat lebih sulit untuk dipahami (maaf) dengan menjadi multi-utas. Satu utas tidak melakukan apa-apa selain output ke port serial, dan utas utama membaca bilah gulir dan memperbarui info yang digunakan oleh utas serial.)

Langkah 6: Eksperimen

Percobaan!
Percobaan!

Jika hal-hal pada dasarnya bekerja, ini memberikan banyak sekali ruang untuk eksperimen.

  • Perbaiki pola bit saya!
  • Apakah bitrate sangat berpengaruh?
  • Apakah Anda harus mengontrol lebar pulsa "on" dan "off", atau cukup mengontrol rasionya?
  • Jika Anda hanya perlu mengontrol rasio, Anda dapat mempertimbangkan urutan multi-karakter pada kecepatan bit yang lebih tinggi untuk mendapatkan tingkat kecepatan yang lebih tinggi. Mengeluarkan 0 diikuti oleh 127 akan menjadi sekitar setengahnya.
  • Ini juga berfungsi untuk meredupkan bola lampu senter.

Direkomendasikan: