Deprecated: Required parameter $output follows optional parameter $depth in /home/pkaykstj/andiandaria.trinita.ac.id/wp-content/themes/jannah/framework/classes/class-tielabs-mega-menu.php on line 451
Pertemuan 12 (Interface Output PWM -2) – Charissa
Periferal dan Antarmuka

Pertemuan 12 (Interface Output PWM -2)

Tujuan Pembelajaran

1. Mahasiswa mampu mengimplementasikan fungsi antarmuka PWM pada mikrokontroler AVR dan Arduino.
2. Mahasiswa mampu membuat rangkaian dan pemrograman antarmuka PWM pada mikrokontroler AVR dan Arduino

6.4 Interface PWM di mikrokontroler AVR

Pulse Width Modulation menggunakan gelombang kotak dengan duty syle tertentu menghasilkan berbagai nilai rata-rata dari suatu bentuk gelombang, Duty sycle merupakan presentase keadaaan logika high (pulse) dalam satu periode sinyal.

Satu siklus diawali dengan oleh transmisi low atau high dari sinyal dan berakhir pada transmisi berikutnya. Selama satu siklus, jika waktu sinyal pada keadaan high dsama dengan low maka dikatakan sinyal mempunyai duty sycle 50%.

Berikut adalah contoh rangkaian dan program menggunakan interface motor DC yang dikontrol dengan sinyal PWM dari mikrokontroler AVR.

6.4.1 Interface PWM menggunakan Motor DC

Rangkaian berikut adalah rangkaian mikrokontroler AVR ATmega16 yang dihubungkan dengan motor DC, pada dasarnya rangkaian motor DC yang membutuhkan arus kuat harus menggunakan sebuah driver motor.

Fungsi dari driver ini adalah penguat arus dan tegangan.

Pada rangkaian berikut menggunakan PORTD.0 dan PORTD.1 untuk memberikan sinyal putaran ke motor sekaligus sebagai pengatur arah rotasi putaran motor DC,

dan PORTD.5 atau OC1A sebagai pin yang akan mengeluarkan sinyal kotak PWM yang dihubungkan ke kaki enable1 pada IC driver untuk mengatur kecepatan putaran motor DC.

Rangkaian lengakapnya dapat dilihat pada gambar berikut.

Gambar 6.9 Rangkaian Interface dengan motor DC

PWM adalah sinyal yang dibangkitkan lewat fitur timer yang ada pada mikrokontroler, maka sebelum melakukan pemrograman, timer perlu diaktifkan terlebih dahulu.

Gambar 6.10 Membangkitkan sinyal PWM dengan timer 1

Sebagai Contoh, pada gambar 6.10 menggunakan timer1 untuk membangkitkan sinyal PWM, meskipun timer yang lain pun juga dapat digunakan. Contoh sorce kode program yang menggunakan timer 1 dapat dilihat pada gambar 6.4.1
Listing Program:

6.4.2 Interface PWM menggunakan Motor Servo

Seperti penjelasan sebelumnya motor servo dapat berfungsi menggunakan satu data saja dengan menggunakan kontrol PWM pada fitur timer mikrokontroler.

Berikut rangkaian interface motor servo yang dihubungkan pada pin OCR1A Mikrokontroler ATmega16.

Gambar 6.11 Interface Motor Servo dengan PWM

Beradasarkan dari rangkaian pada gambar 6.11 dapat dibuat listing program sebagai berikut.
Listing Program:

6.5 Interface PWM di Arduino

Gambar 6.12 PWM pada Arduino

Pulse Width Modulation, atau PWM, adalah teknik untuk mendapatkan hasil analog dengan sarana digital. Kontrol digital digunakan untuk membuat gelombang persegi, sebuah sinyal beralih antara on dan off.

Pola on-off ini dapat mensimulasikan tegangan di antara voltase penuh (5 Volt) dan mati (0 Volts) dengan mengubah bagian dari waktu yang dihabiskan sinyal versus waktu yang dihabiskan sinyal.

Durasi “tepat waktu” disebut dengan lebar pulsa. Untuk mendapatkan berbagai nilai analog,

Anda mengubah, atau memodulasi, lebar pulsa itu. Jika Anda mengulangi pola on-off ini cukup cepat dengan Motor DC misalnya, hasilnya seolah sinyal adalah voltase stabil antara 0 dan 5V yang mengendalikan kecepatan Motor DC.

Pada gambar 6.12, garis hijau mewakili periode waktu reguler. Durasi atau periode ini adalah kebalikan dari frekuensi PWM. Dengan kata lain, dengan frekuensi PWM Arduino sekitar 500Hz, garis hijau akan mengukur 2 milidetik masing-masing.

Sebuah panggilan ke analogWrite () ada pada skala 0 – 255, sehingga analogWrite (255) meminta siklus kerja 100% (always on), dan analogWrite (127) adalah siklus tugas 50% (setengahnya) untuk contoh.

Arduino telah menyediakan pin yang bisa digunakan sebagai output PWM yang ditandai dengan “”, berikut adalah contoh penggunaannya dengan menggunakan interface motor DC dan motor Servo.

6.5.1 Interface PWM dengan Motor DC

Berikut adalah contoh rangkaian motor DC

Gambar 6.13 Arduino dengan Interface Motor DC dengan output PWM

Dalam pemrograman PWM dengan arduino dapat menggunakan perintah

analogWrite(pin,nilai);

pin adalah kaki yang yang digunakan sebagai output pwm, dan nilai diisi dengan nilai besar duty sycle yang akan diberikan pada output pwm. untuk lebih jelasnya perhatikan listing program berikut.

Listring program sudah disesuaikan dengan rangkaian pada gambar 6.13.
Listing Program:

6.5.2 Interface PWM dengan Motor Servo

Berikut adalah contoh rangkaian interface motor servo yang terhubung dengan arduino pada pin 10.

Gambar 6.14 Arduino dengan Interface Motor DC dengan output PWM

Dalam pemrograman PWM pada servo dengan arduino dapat menggunakan perintah

analogWrite(pin,nilai);

pin adalah kaki yang yang digunakan sebagai output pwm, dan nilai diisi dengan nilai besar duty sycle yang akan diberikan pada output PWM.

Pada pemrograman pwm untuk servo, arduino telah menyediakan pustaka yang dapat memudahkan pengguna untuk melakuakan pemrograman, pustaka tersebut adalah “Servo.h”.

Penggunaan pustakan dan listring program untuk mengontrol servo dapat dilihat dibawah, listing program sudah disesuaikan dengan rangkaian pada gambar 6.14.
Listing Program:

Rangkuman

1. Timer/Counter adalah Seperangkat pencacah biner (binary counter) yang terhubung langsung ke saluran data mikrokontroler, sehingga mikrokontroler bisa membaca kondisi pencacah dan bila diperlukan mikrokontroler dapat pula merubah kondisi pencacah tersebut.
Saat sinyal clock yang diberikan sudah melebihi kapasitas pencacah, maka pencacah akan memberikan sinyal overflow/limpahan. Limpahan pencacah ini dicatat dalam suatu register.
2. Sinyal clock yang diberikan ke pencacah dibedakan menjadi 2 macam yaitu Sinyal Clock dengan frequensi tetap dan frequensi berpariasi
3. Bit rate Timer / Counter dibagi menjadi 2 yaitu 8 bit dan 16 bit.
4. PWM ( Pulse Width Modulation) adalah salah satu teknik modulasi dengan mengubah lebar pulsa (duty cylce) dengan nilai amplitudo dan frekuensi yang tetap.
5. Aplikasi penggunaan PWM biasanya ditemui untuk pengaturan kecepatan motor dc, pengaturan cerah/redup LED, dan pengendalian sudut pada motor servo.
6. Pemrograman PWM pada mikrokontroler AVR menggunakan perintah “OCR1A=nilai;”, sedangkan pada Arduino menggunakan perintah “analogWrite(pin,nilai);”

Tugas Formatif

1. Jelaskan komponen apa saja yang mampu dikelola menggunakan output PWM?
2. Jelaskan apa berbeda antara PWM dan DAC (digital to analog conversi)?

Tugas Latihan

1. Buatlah rangkaian dan program menggunakan mikrokontroler AVR dan Arduino menggunakan interface 2 buah pushbutton, dan 1 buah servo.
2. Buatlah dengan algoritma, jika pushbutton pertama ditekan maka servo akan berkerak ke kanan, dan ketika pushbutton kedua ditekan maka servo akan bergerak ke kiri.

Daftar Pustaka

1. Adrianto, H.: 2013, Pemrograman Mikrokontroler AVR ATmega16 Menggunakan Bahasa C (CodeVisionAVR), Informatika bandung, Bandung.
2. Adrianto, H.: 2015, Pemrograman Mikrokontroler AVR ATmega16 Menggunakan Bahasa C (CodeVisionAVR), Informatika bandung, Bandung.
3. E. Knuth, D.: 2011, The Art of Computer Programing, Addison Wesley, United States.
4. Fahmizal: 2011, Jenis dan Tipe Motor Servo. URL: https://fahmizaleeits.wordpress.com/
5. Fauzi, F. A.: 2015, Downloader). URL: https://fajarahmadfauzi.wordpress.com/
6. Grupta, M.: 2012, Perkenalan Seputar Mikrokontroler. URL: https://guptayp.wordpress.com/
7. Iswanto: 2011, Belajar Mikrokontroler AT89S51 dengan Bahasa C, CV Andi Offset, Yogyakarta.
8. Kadir, A.: 2015, Buku Pintar Pemrograman Arduino, MediaKom, Yogyakarta.
9. Rachmat, O.: 2012, Panduan Praktis Membuat Robotik dengan Pemrograman C++, CV Andi Offset, Yogyakarta.
10. Rangkuti, S.: 2011, Mikrokontroler Atmel AVR Simulasi dan Praktik Menggunakan ISIS Proteus dan CodeVisionAVR, Informatika Bandung, Bandung.
11. Saputra, E.: 2015, Materi dasar Algoritma dan Pemograman. URL: https://suhaebiebi40.wordpress.com/
12. Spurianto: 2015, Pengertian Push Button Switch (Saklar Tombol Tekan)). URL: http://blog.unnes.ac.id/
13. Syahrul: 2012, Mikrokontroler AVR ATmega8535, Informatika Bandung, Bandung.
14. syarif, m.: 2014, Serial Pheripheral Interface (SPI) dan Universal Synchronous Asynchronous Receiver Transmitter (USART). URL: http://muhammadsyarif.ilearn

Related Articles

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Back to top button