untuk mengetahui nilai duty cycle dapat digunakan rumus sebagai berikut:
Penjelasan:
D = Duty Cycle
sL= sinyal Low
sH = sinyal High
sTotal= sinyal total dalam satu perioda
Vout = tegangan keluaran
V in = Tegangan masukan
Dengan menggunakan rumus ini, kita dapat menghitung nilai PWM yang dikeluarkan jika diketahui grafiknya seperti Gambar 1 diatas. Dari Gambar tersebut, lebar sinyal High per periodenya adalah 20%, sedangkan lebar sinyal Low nya lebih besar, yaitu 80%. Sehingga Vout (tegangan yang dikeluarkan) dari PWM tersebut adalah
Vout = (5 X 20) / 100 = 100 / 100 = 1V
Dari rumus diatas, dapat diketahui bahwa nilai PWM yang dikeluarkan adalah 1 V.
Pada board Arduino yang menggunakan mikrokontroler Atmega328P, pin PWM terdapat pada pin digital 3, 5, 6, 9, 10 dan 11. Biasanya pin tersebut ditandai dengan ~ pada Arduino Uno. Untuk menggunakan PWM pada Arduino, digunakan perintah analogWrite().
PWM (Pulse Width Modulation) dapat digunakan untuk mengatur kecepatan putaran Motor, atau dapat digunakan juga untuk mengatur kecerahan lampu, PWM sangat berguna dalam pengaplikasian robotika, atau umumnya pada sistem – sistem otomatis, misalnya untuk mengatur ketinggian terbang sebuah Drone, atau mengatur kecepatan robot ketika akan belok, dan lain sebagainya.
Dalam Board Arduino, terdapat pin khusus yang sudah disediakan, seperti dalam Arduino Uno, pin PWM tersedia pada pin D3, D5, D6, D9, D10 dan D11. dan untuk mengaktifkannya, kita dapat menggunakan perintah
analogWrite (pin yang digunakan, nilai PWM);
Contoh Kasus
Misalnya kita ingin mengatur kecepatan Motor DC, dan pin PWM yang kita gunakan adalah pin digital 5, rangkaian sederhana nya dapat dilihat pada Gambar berikut:
Contoh program sederhananya adalah sebagai berikut:
int PWM = 3;
void setup(){
pinMode (PWM, OUTPUT);
}
void loop(){
/* manambah kecepatan motor tiap 300ms secara terus menerus */
for (int i=10; i<=255; i++){
delay(300);
} delay (1000);
/* jika nilai lebih besar dari 255, maka akan dikurangi setiap 500ms */
for (int i=255; 1>=10; i--){
delay(500);
} delay (1000);
}
nice information min
ReplyDeletePower supply hp