- Modulasi Lebar Pulsa (PWM)
- Pemrograman ATtiny13 menggunakan Arduino
- Komponen Diperlukan
- Diagram Sirkuit dan Bekerja
Motor servo bekerja berdasarkan prinsip Pulse Width Modulation (PWM) dan sudut rotasinya dikontrol oleh durasi pulsa yang diterapkan ke pin kontrolnya. Di sini, di tutorial ini kita akan mengontrol motor servo dengan mikrokontroler ATtiny13 menggunakan teknik PWM. Jadi sebelum melangkah lebih jauh kita akan belajar dulu tentang PWM, Servo Motor dan cara memprogram ATtiny13 dengan Arduino Board.
Modulasi Lebar Pulsa (PWM)
Pulse Width Modulation (PWM) didefinisikan sebagai metode untuk menghasilkan sinyal analog menggunakan sumber digital. Sinyal PWM terdiri dari dua komponen utama- siklus kerja dan frekuensi. Komponen ini menentukan perilakunya. Siklus kerja menggambarkan jumlah waktu sinyal dalam keadaan tinggi. Ini dilambangkan sebagai persentase dari total waktu yang dibutuhkan untuk menyelesaikan satu siklus.
Duty Cycle = Turn ON time / (Turn ON time + Turn OFF time)
Frekuensi menentukan seberapa cepat PWM menyelesaikan siklus dan seberapa cepat sinyal beralih antara status tinggi dan rendah. Frekuensi 100Hz berarti 100 siklus per detik. Dengan menyalakan dan mematikan sinyal digital dengan kecepatan tinggi dan dengan duty cycle tertentu, output akan muncul seperti sinyal analog tegangan konstan. Salah satu manfaat utama PWM adalah kehilangan daya yang sangat minimal.
Semua motor servo bekerja langsung dengan suplai + 5V, tetapi kita harus berhati-hati dengan jumlah arus yang akan dikonsumsi motor. Jika kita menggunakan lebih dari dua motor servo, pelindung servo yang tepat harus dirancang.
Sebelum Menghubungkan Servo ke Attiny13, Anda dapat menguji servo Anda dengan bantuan Rangkaian Penguji Motor Servo ini. Di sini kami telah menghubungkan motor servo dengan banyak mikrokontroler:
- Interfacing Servo Motor dengan ARM7-LPC2148
- Interfacing Servo Motor dengan MSP430G2
- Mengontrol Beberapa Motor Servo dengan Arduino
- Interfacing Servo Motor dengan Mikrokontroler PIC menggunakan MPLAB dan XC8
- Kontrol Motor Servo dengan Raspberry Pi
- Kontrol Motor Servo dengan Arduino Due
- Menghubungkan Motor Servo dengan Mikrokontroler AVR Atmega16
Pemrograman ATtiny13 menggunakan Arduino
Attiny13 dapat diprogram menggunakan Arduino Uno atau papan Arduino lainnya. Hubungkan Attiny13 ke Arduino Uno seperti yang ditunjukkan pada gambar di bawah ini.
- Arduino 5V - ATtiny13 pin 8
- Arduino GND - ATtiny13 pin 4
- Pin Arduino 13 - ATtiny13 pin 7
- Pin Arduino 12 - ATtiny13 pin 6
- Arduino pin 11 - ATtiny13 pin 5
- Arduino pin 10 - ATtiny13 pin 1
Arduino diatur sebagai programmer untuk memprogram ATtiny13. Ini dilakukan dengan mengunggah sketsa ArduinoISP ke Arduino. Sketsa Arduino ini tersedia di dalam contoh di Arduino IDE. Buka Arduino IDE dan buka File> Contoh> ArduinoISP .
Sekarang program untuk ArduinoISP akan muncul. Unggah program ke Arduino Uno.
Arduino Uno sekarang siap untuk memprogram Attiny13. Tetapi kita harus mengatur Attiny dengan menginstal file intinya. Untuk melakukan ini, buka File >> Preferences di Arduino IDE
Kemudian jendela baru akan muncul. Dan di " URL Manajer Dewan Tambahan " tambahkan link di bawah ini dan klik "OK".
“Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json”
Sekarang di Arduino IDE Anda, buka Tools >> Board >> Boards Manager
Kemudian akan muncul jendela lain di mana di kotak pencarian ketik 'Attiny' maka Anda akan mendapatkan "DIY ATtiny" lalu klik tombol 'install' (Saya sudah menginstalnya, itulah mengapa tombol install berwarna abu-abu)
Untuk memulai pemrograman ATtiny 13, kita harus membakar Bootloader padanya. Untuk itu, buka Tools> Board> ATtiny13.
Sekarang masuk ke Tools> Processor version dan periksa apakah versi ATtiny yang benar dipilih. Pilih ATtiny13 atau ATtiny13a tergantung pada chip Anda.
Kemudian klik tombol Burn bootloader di bagian bawah menu Tools.
Setelah membakar bootloader, ATtiny sekarang siap untuk diprogram. Sekarang Anda dapat mengunggah program Anda.
Komponen Diperlukan
- Mikrokontroler ATtiny13
- Motor servo
- Potensiometer
- + Baterai 5V
- IDE Arduino
- Menghubungkan kabel
Diagram Sirkuit dan Bekerja
Diagram sirkuit untuk mengontrol motor servo menggunakan pot dengan ATtiny13 diberikan di bawah ini.
Di bawah ini adalah koneksinya
- Hubungkan pin kontrol motor servo ke pin 5 dari ATtiny13
- Hubungkan ground motor servo ke pin 4 dari ATtiny13
- Hubungkan VCC motor servo ke pin 8 dari ATtiny13
- Hubungkan pin tengah potensiometer ke pin 7 ATtiny13
- Hubungkan pin pertama dan ketiga potensiometer ke VCC dan GND.
- Hubungkan positif baterai + 5V ke pin 8 ATtiny13
- Hubungkan negatif baterai + 5V ke pin 4 ATtiny13
Potensiometer dihubungkan ke pin 7 (PB2) dari ATtiny13 dan kabel kontrol dari motor servo terhubung ke pin 5 (PB0).
Di sini nilai potensiometer dibaca dan diubah menjadi nilai antara 0 dan 180. Kemudian nilai sudut ini diubah menjadi mikrodetik dan pulsa diberikan ke pin kontrol motor servo dengan penundaan mikrodetik yang dihitung. Sekarang motor servo akan berputar sesuai dengan nilai potensiometer seperti yang ditunjukkan pada video di bawah ini.