Dalam tutorial ini kita akan menghubungkan motor DC ke Arduino UNO dan mengawal kelajuannya menggunakan konsep PWM (Pulse Width Modulation). Ciri ini diaktifkan di UNO untuk mendapatkan voltan berubah berbanding voltan malar. Kaedah PWM dijelaskan di sini; pertimbangkan litar sederhana seperti yang ditunjukkan dalam rajah.
Sekiranya butang ditekan jika angka, maka motor akan mula berputar dan ia akan bergerak sehingga butang ditekan. Tekanan ini berterusan dan ditunjukkan dalam gelombang pertama angka. Sekiranya, untuk kes, butang pertimbangan ditekan selama 8ms dan dibuka selama 2ms selama satu putaran 10ms, dalam hal ini motor tidak akan mengalami voltan bateri 9V yang lengkap kerana butang ditekan hanya untuk 8ms, jadi voltan terminal RMS merentasi motor akan berada di sekitar 7V. Oleh kerana voltan RMS berkurang ini motor akan berputar tetapi pada kelajuan yang berkurang. Sekarang rata-rata menghidupkan dalam jangka masa 10ms = Waktu AKTIF / (Waktu AKTIF + masa Mati), ini dipanggil kitaran tugas dan 80% (8 / (8 + 2)).
Dalam kes kedua dan ketiga butang ditekan lebih sedikit berbanding dengan kes pertama. Oleh kerana itu, voltan terminal RMS di terminal motor semakin menurun. Kerana voltan berkurang ini, kelajuan motor semakin menurun Penurunan kelajuan ini dengan putaran tugas berterusan berlaku sehingga suatu titik, di mana voltan terminal motor tidak akan mencukupi untuk menghidupkan motor.
Jadi dengan ini kita dapat menyimpulkan bahawa PWM dapat digunakan untuk mengubah kelajuan motor.
Sebelum melangkah lebih jauh, kita perlu membincangkan H-BRIDGE. Sekarang litar ini mempunyai dua fungsi, pertama ialah menggerakkan motor DC dari isyarat kawalan kuasa rendah dan yang lainnya adalah mengubah arah putaran motor DC.
Rajah 1
Gambar 2
Kita semua tahu bahawa untuk motor DC, untuk mengubah arah putaran, kita perlu mengubah polariti voltan bekalan motor. Jadi untuk mengubah polariti kita menggunakan H-bridge. Sekarang di rajah1 di atas kita mempunyai suis empat. Seperti yang ditunjukkan dalam gambar2, untuk motor berputar A1 dan A2 ditutup. Oleh kerana itu, arus mengalir melalui motor dari kanan ke kiri, seperti di 2 nd sebahagian daripada figure3. Buat masa ini pertimbangkan motor berputar mengikut arah jam. Sekarang jika suis A1 dan A2 dibuka, B1 dan B2 ditutup. Arus melalui motor mengalir dari kiri ke kanan seperti yang ditunjukkan dalam 1 st bahagian rajah3. Arah aliran arus ini berlawanan dengan yang pertama dan oleh itu kita melihat potensi yang berlawanan di terminal motor dengan yang pertama, jadi motor berputar anti jam dengan bijak. Ini adalah bagaimana H-BRIDGE berfungsi. Walau bagaimanapun motor berkuasa rendah dapat digerakkan oleh H-BRIDGE IC L293D.
L293D adalah IC H-BRIDGE yang direka untuk menggerakkan motor DC berkuasa rendah dan ditunjukkan dalam gambar. IC ini terdiri daripada dua jambatan h dan dengan itu dapat menggerakkan dua motor DC. Jadi IC ini dapat digunakan untuk menggerakkan motor robot dari isyarat mikrokontroler.
Sekarang seperti yang dibincangkan sebelum ini IC mempunyai kemampuan untuk mengubah arah putaran motor DC. Ini dicapai dengan mengawal tahap voltan pada INPUT1 dan INPUT2.
Dayakan Pin |
Pin Input 1 |
Pin Input 2 |
Arah Motor |
Tinggi |
Rendah |
Tinggi |
Belok kanan |
Tinggi |
Tinggi |
Rendah |
Belok kiri |
Tinggi |
Rendah |
Rendah |
Berhenti |
Tinggi |
Tinggi |
Tinggi |
Berhenti |
Jadi seperti yang ditunjukkan dalam gambar di atas, untuk putaran mengikut arah jam 2A harus tinggi dan 1A harus rendah. Begitu juga untuk lawan arah jam 1A harus tinggi dan 2A harus rendah.
Seperti yang ditunjukkan dalam gambar, Arduino UNO mempunyai saluran 6PWM, jadi kita dapat memperoleh PWM (voltan berubah) pada salah satu daripada enam pin ini. Dalam tutorial ini kita akan menggunakan PIN3 sebagai output PWM.
Perkakasan: ARDUINO UNO, bekalan kuasa (5v), kapasitor 100uF, LED, butang (dua keping), perintang 10KΩ (dua keping).
Perisian: arduino IDE (Arduino setiap malam).
Rajah Litar
Litar dihubungkan di papan roti seperti rajah litar yang ditunjukkan di atas. Walau bagaimanapun, seseorang mesti memberi perhatian semasa menyambungkan terminal LED. Walaupun butang menunjukkan kesan memantul dalam kes ini, ia tidak menyebabkan banyak kesalahan sehingga kita tidak perlu risau kali ini.
PWM dari UNO itu mudah, pada kebiasaannya menyiapkan pengawal ATMEGA untuk isyarat PWM tidak mudah, kita harus menentukan banyak daftar dan tetapan untuk isyarat yang tepat, namun di ARDUINO kita tidak perlu berurusan dengan semua perkara itu.
Secara lalai semua fail header dan register ditentukan oleh ARDUINO IDE, kita hanya perlu memanggilnya dan hanya itu kita akan mempunyai output PWM pada pin yang sesuai.
Sekarang untuk mendapatkan output PWM pada pin yang sesuai, kita perlu mengusahakan tiga perkara,
|
Mula-mula kita perlu memilih pin output PWM dari enam pin, selepas itu kita perlu menetapkan pin itu sebagai output.
Seterusnya kita perlu mengaktifkan ciri PWM UNO dengan memanggil fungsi "analogWrite (pin, value)". Di sini 'pin' mewakili nombor pin di mana kita memerlukan output PWM kita meletakkannya sebagai '3'. Oleh itu, di PIN3 kita mendapat output PWM.
Nilai adalah putaran tugas ON ON, antara 0 (selalu mati) dan 255 (selalu aktif). Kami akan menambah dan mengurangkan nombor ini dengan menekan butang.
UNO mempunyai resolusi maksimum "8", seseorang tidak dapat melangkah lebih jauh sehingga nilai dari 0-255. Namun seseorang dapat menurunkan resolusi PWM dengan menggunakan perintah "analogWriteResolution ()", dengan memasukkan nilai dari 4-8 dalam tanda kurung, kita dapat mengubah nilainya dari empat bit PWM menjadi delapan bit PWM.
Suis adalah untuk menukar arah putaran untuk motor DC.