Analog Output
Analog Output pada A
pada Arduino
rduino
Menggunakan PWM
Menggunakan PWM (Pulse Widt
(Pulse Width
h
Modulation)
Modulation)
10
100000
Toni Haryanto
Toni Haryanto di di ArduinoArduino
Jan 14, 2016 Jan 14, 2016 Pada tutorial ini
Pada tutorial ini kita akan membahas tentang kita akan membahas tentang analog output pada Arduino. ila !amu masihanalog output pada Arduino. ila !amu masih bingung dengan ko
bingung dengan konsep input"output dan digital"analog pada nsep input"output dan digital"analog pada Arduino, silakan ba#aArduino, silakan ba#a dulu tutorial yang ber$udul
dulu tutorial yang ber$udul %igital &nput 'utput %igital &nput 'utput pada Arduinopada Arduino dan dan Analog &nput padaAnalog &nput pada
Arduino
Arduino..
!ita dapat mengirimkan sinyal H&(H dan )'* atau
!ita dapat mengirimkan sinyal H&(H dan )'* atau onon dan dan off off pada Arduino untuk pada Arduino untuk menyalakan dan mematikan sesuatu menggunakan digital*rite+. agaimana kalo kita menyalakan dan mematikan sesuatu menggunakan digital*rite+. agaimana kalo kita
ingin mengakti-kan sesuatu dengan kekuatan tertentu dan bisa diubah"ubah sesuai keperluan, ingin mengakti-kan sesuatu dengan kekuatan tertentu dan bisa diubah"ubah sesuai keperluan, seperti misalnya mengatur intensitas #ahaya )% atau mengatur ke#epatan putaran motor/ seperti misalnya mengatur intensitas #ahaya )% atau mengatur ke#epatan putaran motor/ %alam hal ini ki
%alam hal ini kita punya analog output. Analog output pada Ata punya analog output. Analog output pada Arduino berarti kitarduino berarti kita mengirimkan sinyal analog dengan intensitas yang ditentukan sesuai kebutuhan. mengirimkan sinyal analog dengan intensitas yang ditentukan sesuai kebutuhan. Analog input dihasilkan oleh teknik yang dikenal dengan istilah P* atau
Analog input dihasilkan oleh teknik yang dikenal dengan istilah P* atau Pulse Wi Pulse Widthdth Modulation
Modulation. P* memanipulasi keluaran digital sedemikian rupa sehingga menghasilkan. P* memanipulasi keluaran digital sedemikian rupa sehingga menghasilkan sinyal analog. ikrokontroler mengeset
sinyal analog. ikrokontroler mengeset output digital ke H&(H dan output digital ke H&(H dan )'* bergantian dengan)'* bergantian dengan porsi aktu tertentu untuk setiap nilai keluarannya. %urasi aktu untuk
porsi aktu tertentu untuk setiap nilai keluarannya. %urasi aktu untuk nilai H&(H disebutnilai H&(H disebut pulse width
pulsa yang diberikan pada satu periode aktu dan dilakukan berulang"ulang. 3ntuk lebih $elasnya perhatikan ilustrasi berikut
sumber Arduino.##
!ondisi H&(H adalah kondisi ketika sinyal berada di atas gra-ik +5 dan )'* adalah ketika sinyal berada di baah +0. Duty cycle adalah persentasi pan$ang pulsa H&(H dalam satu periode sinyal. !etika duty cyclenya 0 atau sinyal )'* penuh, maka nilai analog yang
dikeluarkan adalah 0 atau setara dengan (7%. !etika duty cyclenya 100 atau sinyal H&(H penuh maka sinyal yang dikeluarkan adalaah 5.
3ntuk mengatur nilai duty cycle, kita gunakan -ungsi analogWrite([nomorPin], [nilai]). 7ilai pada parameter kedia berkisar antara 0 hingga 255. ila kita hendak
mengeset duty #y#le ke 0, maka kita set nilai parameter ke 0, dan untuk duty cycle
100, maka kita set nilai parameter ke 255. Jadi bila misalkan kita hendak mengeset duty cycle ke 50, berarti nilai yang harus kita set adalah 128 +50 9 255.
:ebenarnya berdasarkan konsep P* di atas, kita dapat mensimulasikan P* pada semua pin digital. Tapi khusus penggunaan -ungsi digital*rite+ kita hanya bisa menggunakannya pada pin"pin P*. :eperti pada Arduino 3no, pin yang dapat menggunakan -ungsi ini hanya pin ;, 5, 6, <, 10 dan 11. iasanya pin P* disimbolkan dengan karakter =>=.
%emikian sekilas tentang teori P*. :upaya lebih paham tentang analog output, kita #oba implementasikan ke dalam rangkaian.
ahan"bahan yang diperlukan untuk per#obaan berikut diantaranya?
• Arduino 3no board • readboard
• )%
• @esistor 220 ohm
uat rangkaian seperti pada gambar di baah ini
Pada rangkaian di atas, kita menghubungkan pin ; ke kaki anoda +positi- )% dengan
melalui resistor 220 ohm dan menghubungkan kaki yang lain ke (7%. Alih"alih menyalakan dan mematikan )% menggunakan digital*rite+ seperti pada artike %igital &nput 'utput, kita akan menyalakan )% dengan intensitas yang terus naik hingga titik maksimum dan kemudian menurunkan intensitasnya terus hingga mati. %emikian seterusnya. erikut adalah kode programnya
Tutorial Dasar Arduino PWM
:etelah sebelumnya dibahas tentang tutorial dasar pemrograman Arduino, Arduino bitise operation, Arduino komunikasi serial, dan akses )% Arduino, bahasan selan$utnya ialah Pulse *idth odulation. %alam pembahasan Pulse *idth odulation atau biasa disingkat P*, akan di$elaskan istilah"istilah penting seperti duty #y#le dan #ontohnya, $uga #ontoh sederhana aplikasi P* dengan menggunakan Arduino.
Pulse Width Modulation
Pulse *idth odulation +P* merupakan suatu teknik untuk mendapatkan hasil output analog dengan pendekatan se#ara digital. Teknik P* ini mengendalikan lebar pulsa berdasarkan modulator. eski bapat diterapkan dalam penyandian in-ormasi komunikasi, penerapan utamanya lebih pada kendali daya perangkat listrik, semisal motor. !endali digital
digunakan untuk membentuk sebuah gelombang kotak +sBuare aCe, s ebuah gelombang signal untuk sit#h antara kondisi on dengan o--. Pola kondisi on dan o-- tersebut
merepresentasikan suatu nilai -ull on pada Arduino +5 Colt dan kondisi o-- +0 Colt dengan mengubah perbandingan ratio antara aktu kondisi on dengan kondisi o-- dalam satu periode. %urasi aktu on disebut dengan istilah lebar pulsa, pulse idth. 3ntuk mendapatkan suatu Cariasi hasil output nilai analog, dapat dilakukan dengan mengubah lebar pulsa tersebut. Perbandingan antara aktu signal on dengan aktu satu periode disebut dengan duty #y#le. Duty Cycle
%uty #y#le dapat diartikan sebagai perbandingan antara aktu signal on dengan aktu keseluruhan untuk satu periode. esarnya nilai duty #y#le dinyatakan dalam per#ent. 7ilai duty #y#le dapat berCariasi mulai dari 0 tidak ada signal on, hingga 100 tidak ada signal o--, atau selalu dalam kondisi signal on.
:ebagai #ontoh duty #y#le 60 dengan durasi 1000 ms. aka aktu saat signal on ialah 60 dari 1000 ms, yakni 600 ms. :edangkan untuk aktu signal o-- ialah selisih antara durasi keseluruhan dengan aktu signal on, yakni 400 ms.
Implementasi
%engan melakukan pengulangan pola duty #y#le tersebut terus"menerus se#ara #epat pada sebuah )%, dapat digunakan untuk mengatur nyala te rangnya. Pengulangan pola duty #y#le tersebut seolah"olah membuat )% menyala dengan nilai tegangan yang tetap +steady antara 0 Colt hingga 5 Colt. Padahal sebenarnya ter$adi kondisi perubahan signal on"o-- se#ara #epat. ila digunakan pada motor %, semakin besar nilai P* maka semakin #epat la$u putaran motor % tersebut, dan demikian sebaliknya.
7ilai rata"rata tegangan dan $uga arus yang diberikan ke rangkaian beban dikendalikan melalui duty #y#le tersebut. :emakin besar duty #y#le +semakin lama aktu signal on maka semakin besar nilai daya yang diberikan ke rangkaian beban.
Penerapan P* dalam Arduino 3no dapat dilakukan dengan menggunakan analog*rite+ dengan nilai antara 0 hingga 255, resolusi A% D bit. %imana analog*rite+255 memiliki nilai duty #y#le 100 atau selalu menyala, analog*rite+128 memiliki nilai duty #y#le 50, dan lain sebagainya. 3ntuk pin pada board Arduino 3no yang dapat digunakan menghasilkan output P* ialah pin ;, 5, 6, <, 10, dan 11.
:aat ini di &ndonesia board Arduino 3no @; dapat diperoleh dengan mudah di kota"kota besar. oard Arduino 3no @; di$ual dengan harga murah. embuat perkembangan Arduino
kian pesat.
ila ada sesuatu yang belum $elas dan ingin tahu lebih dalam seputar pro$e#t Arduino, pemrograman, dan elektronika
Arduino - Apa itu PWM?
Hari Santoso Arduino , Elektronika 15 komentar
Memahami konsep PWM itu penting dalam mikrokontoller, sebab PWM adalah bentuk sinyal yang harus kita pahami dalam dunia digital-analog !eberapa pertanyaan tentang PWM, apa itu PWM? Apa pengertian PWM? Apa fungsi PWM dan bagaimana "ara ker#anya? $alam hal ini kita akan membahas tentang PWM yang lebih khusus pada Arduino
PWM adalah singkatan dari Pulse Width Modulation Pada Arduino, sinyal PWM adalah sinyal yang beroperasi pada %rekuensi 5&&H' (ini akan kita bahas pada paragra% selan#utnya) Pada board arduino *no, pin yang bisa diman%aatkan untuk PWM adalah pin yang diberi tanda tilde (+), yaitu pin , 5, , ., 1&, dan pin 11 Mungkin ada yang berpikir, bukankah pin-pin tersebut adalah pin analog? /a0 Pin-pin tersebut merupakan pin yang bisa di%ungsikan untuk input analog atau output analog leh sebab itu, #ika akan menggunakan PWM pada pin ini, bisa dilakukan dengan perintah analogWrite()2
PWM pada arduino beker#a pada %rekuensi 5&&H', artinya 5&& siklus3ketukan dalam satu detik *ntuk setiap siklus, kita bisa memberi nilai dari & hingga 455 etika kita memberikan angka &, berarti pada pin tersebut tidak akan pernah bernilai 5 6olt (pin selalu bernilai & 6olt) Sedangkan #ika kita memberikan nilai 455, maka sepan#ang siklus akan bernilai 5 6olt (tidak pernah & 6olt) 7ika kita memberikan nilai 148 (kita anggap setengah dari & hingga 455, atau 5&9 dari 455), maka setengah siklus akan bernilai 5 6olt, dan setengah siklus lagi akan bernilai & 6olt Sedangkan #ika #ika memberikan 459 dari 455 (13: ; 455 atau :), maka 13: siklus akan bernilai 5 6olt, dan 3: sisanya akan bernilai & 6olt, dan ini akan ter#adi 5&& kali dalam 1 detik *ntuk 6isualisasi siklus PWM, bisa Anda lihat gambar berikut<
Siklus sinyal PWM pada Arduino (klik untuk memperbesar)
!egitulah "ara ker#a PWM (Pulse Width Modulation), #ika masih ada yang kurang #elas, #angan sungkan-sungkan untuk bertanya <) !erdasarkan konsep PWM tersebut, kira-kira apa yang bisa kita lakukan? !anyak hal Salah satunya, kita bisa membuat sistem yang bisa dikontrol untuk menaikkan atau menurunkan se"ara bertahap Misal, menaikkan atau menurunkan 6olume se"ara digital, menaikkan atau menurunkan tingkat ke"erahan lampu dengan tombol, memper"epat atau memperlambat sesuatu, dll
!aik, selan#utnya akan kita bahas tentang salah satu implementasi dari PWM yang digunakan untuk mengatur intensitas "ahaya dari suatu led dengan dua tombol (tombol untuk menurunkan ke"erahan 3 nyala led dan tombol untuk menaikkan ke"erahan led)