- Modulasi Lebar Nadi (PWM)
- Pengaturcaraan ATtiny13 menggunakan Arduino
- Komponen Diperlukan
- Rajah Litar dan Bekerja
Motor servo berfungsi pada prinsip Pulse Width Modulation (PWM) dan sudut putarannya dikendalikan oleh jangka masa nadi yang digunakan pada pin kawalannya. Di sini dalam tutorial ini kita akan mengawal motor servo dengan mikrokontroler ATtiny13 menggunakan teknik PWM. Oleh itu, sebelum melangkah lebih jauh, kita akan terlebih dahulu belajar mengenai PWM, Servo Motor dan cara memprogram ATtiny13 dengan Arduino Board.
Modulasi Lebar Nadi (PWM)
Pulse Width Modulation (PWM) didefinisikan sebagai kaedah untuk menghasilkan isyarat analog menggunakan sumber digital. Isyarat PWM terdiri daripada dua komponen utama - kitaran tugas dan frekuensi. Komponen-komponen ini menentukan tingkah lakunya. Duty cycle menerangkan berapa lama isyarat berada dalam keadaan tinggi. Ia dilambangkan sebagai peratusan dari jumlah masa yang diperlukan untuk menyelesaikan satu kitaran.
Duty Cycle = Hidupkan waktu / (Hidupkan waktu + Matikan masa)
Frekuensi menentukan seberapa cepat PWM menyelesaikan satu kitaran dan seberapa pantas isyarat beralih antara keadaan tinggi dan rendah. Frekuensi 100Hz bermaksud 100 kitaran sesaat. Dengan menghidupkan dan mematikan isyarat digital pada kadar yang pantas dan dengan kitaran tugas tertentu, output akan muncul seperti isyarat analog voltan malar. Salah satu kelebihan PWM yang sangat baik ialah kehilangan kuasa sangat minimum.
Semua motor servo berfungsi secara langsung dengan bekalan + 5V, tetapi kita harus berhati-hati dengan jumlah arus yang akan dimakan oleh motor. Sekiranya kita menggunakan lebih dari dua motor servo, pelindung servo yang betul harus dirancang.
Sebelum Menghubungkan Servo ke Attiny13, anda boleh menguji servo anda dengan bantuan Servo Motor Tester Circuit ini. Di sini kami telah menghubungkan motor servo dengan banyak pengawal mikro:
- Interfacing Servo Motor dengan ARM7-LPC2148
- Interfacing Servo Motor dengan MSP430G2
- Mengendalikan Pelbagai Motor Servo dengan Arduino
- Interfacing Servo Motor dengan PIC Microcontroller menggunakan MPLAB dan XC8
- Kawalan Motor Servo dengan Raspberry Pi
- Servo Motor Control dengan Arduino Due
- Memadankan Motor Servo dengan AVR Microcontroller Atmega16
Pengaturcaraan ATtiny13 menggunakan Arduino
Attiny13 dapat diprogramkan menggunakan Arduino Uno atau papan Arduino yang lain. Sambungkan Attiny13 ke Arduino Uno seperti yang ditunjukkan dalam gambar di bawah.
- Arduino 5V - ATtiny13 pin 8
- Arduino GND - ATtiny13 pin 4
- Arduino pin 13 - ATtiny13 pin 7
- Arduino pin 12 - ATtiny13 pin 6
- Arduino pin 11 - ATtiny13 pin 5
- Arduino pin 10 - ATtiny13 pin 1
Arduino ditetapkan sebagai pengaturcara untuk memprogram ATtiny13. Ini dilakukan dengan memuat naik lakaran ArduinoISP ke Arduino. Sketsa Arduino ini terdapat di dalam contoh di Arduino IDE. Buka Arduino IDE dan pergi ke Fail> Contoh> ArduinoISP .
Sekarang program untuk ArduinoISP akan muncul. Muat naik program ke Arduino Uno.
Arduino Uno kini bersedia untuk memprogram Attiny13. Tetapi kita harus menyiapkan Attiny dengan memasang fail terasnya. Untuk melakukan ini, pergi ke Fail >> Keutamaan di Arduino IDE
Kemudian tetingkap baru akan muncul. Dan di " URL Pengurus Papan Tambahan " tambahkan pautan di bawah dan klik "OK".
"Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json"
Sekarang di IDE Arduino anda, pergi ke Tools >> Board >> Boards Manager
Kemudian tetingkap lain akan muncul di mana dalam kotak carian ketik 'Attiny' maka anda akan mendapat "DIY ATtiny" kemudian klik pada butang 'pasang' (saya sudah memasangnya, sebab itulah butang pasang dalam warna kelabu)
Untuk memulakan pengaturcaraan ATtiny 13, kita mesti membakar Bootloader ke dalamnya. Untuk itu, pergi ke Tools> Board> ATtiny13.
Sekarang pergi ke Tools> Processor version dan periksa sama ada versi ATtiny yang betul dipilih. Pilih ATtiny13 atau ATtiny13a bergantung pada cip anda.
Kemudian klik butang Burn bootloader di bahagian bawah menu Tools.
Setelah membakar bootloader, ATtiny kini siap untuk diprogramkan. Sekarang anda boleh memuat naik program anda.
Komponen Diperlukan
- Mikrokontroler ATtiny13
- Motor servo
- Potensiometer
- + Bateri 5V
- Arduino IDE
- Menyambung wayar
Rajah Litar dan Bekerja
Gambarajah litar untuk mengawal motor servo menggunakan periuk dengan ATtiny13 diberikan di bawah.
Berikut adalah sambungannya
- Sambungkan pin kawalan motor servo ke pin 5 dari ATtiny13
- Sambungkan tanah motor servo ke pin 4 ATtiny13
- Sambungkan VCC motor servo ke pin 8 dari ATtiny13
- Sambungkan pin tengah potensiometer ke pin 7 dari ATtiny13
- Sambungkan pin potensiometer pertama dan ketiga ke VCC dan GND.
- Sambungkan positif bateri + 5V ke pin 8 ATtiny13
- Sambungkan negatif bateri + 5V ke pin 4 ATtiny13
Potensiometer disambungkan ke pin 7 (PB2) ATtiny13 dan wayar kawalan motor servo disambungkan ke pin 5 (PB0).
Di sini nilai potensiometer dibaca dan ia ditukar menjadi nilai antara 0 dan 180. Kemudian nilai sudut ini ditukar menjadi mikrodetik dan nadi diberikan kepada pin kawalan motor servo dengan kelewatan mikrodetik yang dikira. Sekarang motor servo akan berputar mengikut nilai potensiometer seperti yang ditunjukkan dalam video yang diberikan di bawah.