Motor DC adalah motor yang paling banyak digunakan. Motor ini dapat ditemukan hampir di mana saja mulai dari proyek kecil hingga robotika tingkat lanjut. Kami sebelumnya menghubungkan Motor DC dengan banyak mikrokontroler lain seperti Arduino, Raspberry pi dan menggunakannya di banyak proyek robotik. Hari ini kita belajar mengendalikan motor DC dengan Mikrokontroler AVR Atmega16. Namun sebelum lanjut mari mengenal lebih jauh tentang motor DC.
Apa itu motor DC?
Motor DC adalah alat yang mengubah energi listrik menjadi energi mekanik. Secara spesifik, motor DC menggunakan arus DC untuk mengubah energi listrik menjadi energi mekanik. Prinsip dasar motor adalah interaksi antara medan magnet dan arus untuk menghasilkan gaya di dalam motor yang membantu motor berputar. Sehingga pada saat arus listrik dilewatkan melalui sebuah kumparan dalam suatu medan magnet maka akan dihasilkan gaya magnet yang menghasilkan torsi yang mengakibatkan terjadinya pergerakan motor. Arah motor dikendalikan dengan membalikkan arus. Juga kecepatannya dapat bervariasi dengan memvariasikan tegangan yang disuplai. Karena mikrokontroler memiliki pin PWM, sehingga dapat digunakan untuk mengontrol kecepatan motor.
Dalam tutorial ini, operasi motor DC akan didemonstrasikan dengan Atmega16. Penggerak motor L293D akan digunakan untuk membalikkan arah arus demikian juga arah pergerakan. Pengemudi motor L293D menggunakan konfigurasi sirkuit H-Bridge yang mengeluarkan arus yang dibutuhkan ke Motor. Dua tombol tekan digunakan untuk memilih arah motor. Salah satu tombol tekan digunakan untuk memilih putaran jarum jam dan tombol lainnya digunakan untuk memilih pengoperasian anti jam motor DC.
Komponen Diperlukan
- Motor DC (5V)
- Pengemudi Motor L293D
- IC Mikrokontroler Atmega16
- Osilator Kristal 16Mhz
- Dua Kapasitor 100nF
- Dua Kapasitor 22pF
- Tekan tombol
- Kabel Jumper
- Papan tempat memotong roti
- USBASP v2.0
- Led (Warna Apa Pun)
Diagram Sirkuit
Pemrograman Atmega16 untuk kontrol Motor DC
Di sini Atmega16 diprogram menggunakan USBASP dan Atmel Studio7.0. Jika Anda tidak tahu cara memprogram Atmega16 menggunakan USBASP, kunjungi tautannya. Program Lengkap diberikan di akhir proyek, cukup upload program di Atmega16 dan gunakan kedua Push Button untuk memutar motor DC searah jarum jam dan berlawanan arah jarum jam.Motor DC dihubungkan menggunakan driver motor L293D. Motor DC akan berputar dalam dua arah saat masing-masing tombol ditekan. Satu tombol akan digunakan untuk memutar motor DC ke arah Clock Wise dan tombol lainnya akan digunakan untuk memutar motor DC ke arah arah Counter Clock. Pertama tentukan frekuensi CPU mikrokontroler dan sertakan semua pustaka yang diperlukan.
#define F_CPU 16000000UL #include #include
Kemudian, gunakan satu variabel untuk melacak status penekanan tombol. Variabel ini akan digunakan untuk menentukan arah motor.
int i;
Pilih mode input / output GPIO menggunakan register arah data. Awalnya, buat output dari pin Motor serendah mungkin untuk menghindari start motor tanpa menekan tombol tekan.
DDRA = 03; PORTA & = ~ (1 << 1); PORTA & = ~ (1 << 0);
Periksa apakah 1 st push button ditekan terhubung ke PORTA4 dari Atmega16 dan menyimpan status tombol push dalam variabel.
if (! bit_is_clear (PINA, 4)) { i = 1; PORTA & = ~ (1 << 1); _delay_ms (1000); }
Demikian pula memeriksa apakah 2 nd push button ditekan terhubung ke PORTA5 dari Atmega16 dan menyimpan status tombol push dalam variabel.
lain jika (! bit_is_clear (PINA, 5)) { i = 2; PORTA & = ~ (1 << 0); _delay_ms (1000); }
Jika status 1 st tombol benar kemudian memutar motor DC arah bijak Jam dan jika status tombol push kedua adalah benar maka memutar motor DC dalam anti-clock wise.
jika (i == 1) { PORTA - = (1 << 0); PORTA & = ~ (1 << 1); } lain jika (i == 2) { PORTA - = (1 << 1); PORTA & = ~ (1 << 0); }
Anda dapat menghubungkan pin motor ke pin GPIO manapun tergantung pada GPIO yang digunakan. Juga penting untuk menggunakan IC Driver Motor untuk mengurangi beban pada mikrokontroler karena mikrokontroler tidak mampu menyediakan arus yang dibutuhkan untuk menjalankan motor DC. Untuk detail lebih lanjut dan proyek lain berdasarkan motor DC, silakan kunjungi tautan yang diberikan.
Kode lengkap dan Video Demonstrasi diberikan di bawah ini.