Hai guys!!! Pada postingan Dasar Pemrograman Arduino telah dijelaskan beberapa pemrograman dasar yang dapat digunakan untuk mengontrol arduino. Disitu dijelaskan bagaimana menggunakan input dan output dari arduino. Input dan output dari arduino terdiri dari digital dan analog. Nah kali ini kita fokus pada output analog dari Arduino.
Biasanya untuk menghidupkan LED kita gunakan digitalWrite(). Dengan menggunakan digitalWrite(), maka output berupa HIGH dan LOW dan LED akan hidup dan mati saja. Andai ingin menghidupkan LED, tetapi hidupnya hanya setengah, maka tidak bisa menggunakan digitalWrite(). Oleh karena itu kita butuh output analog.
Output analog biasa dikenal sebagai PWM (Pulse Width Modulation). PWM akan memanipulasi output digital menjadi analog. Output ini berupa sinyal kotak dan memiliki nilai HIGH dan LOW secara bergantian dengan waktu tertentu. Persentase sinyal HIGH dengan LOW dalam satu waktu disebut duty cycle. Duty cycle ini memiliki nilai 0 - 100 %. Nah ini sebagian contoh sinyal output PWM yang dihasilkan menggunakan analogWrite().
Biasanya untuk menghidupkan LED kita gunakan digitalWrite(). Dengan menggunakan digitalWrite(), maka output berupa HIGH dan LOW dan LED akan hidup dan mati saja. Andai ingin menghidupkan LED, tetapi hidupnya hanya setengah, maka tidak bisa menggunakan digitalWrite(). Oleh karena itu kita butuh output analog.
Output analog biasa dikenal sebagai PWM (Pulse Width Modulation). PWM akan memanipulasi output digital menjadi analog. Output ini berupa sinyal kotak dan memiliki nilai HIGH dan LOW secara bergantian dengan waktu tertentu. Persentase sinyal HIGH dengan LOW dalam satu waktu disebut duty cycle. Duty cycle ini memiliki nilai 0 - 100 %. Nah ini sebagian contoh sinyal output PWM yang dihasilkan menggunakan analogWrite().
Gambar 1. Sinyal output yang dihasilkan
Gambar 1 menunjukkan output gelombang yang dihasilkan menggunakan analogWrite(). Untuk menghasilkan duty cycle dengan presentase tertentu, digunakan syntax sebagai berikut
analogWrite(pin, value);
pin: merupakan pin digital PWM yang digunakan
value: merupakan nilai PWM
Nilai yang digunakan adalah nilai integer 0 - 255, dengan presentase duty cycle yang dihasilkana dalah 0% - 100% pada nilai tersebut. Nilai ini digunakan karena pada Arduino Uno memiliki resolusi 8-bit (2^8 = 256). Jika kita ingin menghasilkan gelombang dengan duty cycle 25%, maka nilai yang digunakan adalah 64. Untuk duty cycle 50%, nilai yang digunakan adalah 128, 75% nilainya 192, dan 100% nilainya 255. Untuk menghasilkan duty cycle tertentu, maka tinggal kita presentasikan saja nilai 8-bit tersebut.
Example
Berikut contoh penggunaan analogWrite yang diterapkan pada Arduino IDE
int pin= 9;
int value= 128;
void setup(){
pinMode(pin, OUTPUT);
}
void loop(){
analogWrite(pin, value);
}
int value= 128;
void setup(){
pinMode(pin, OUTPUT);
}
void loop(){
analogWrite(pin, value);
}
Contoh tersebut menunjukkan bahwa pin digital PWM yang digunakan adalah pin 9. Value yang dikeluarakan adalah bernilai 128, yang berarti outputnya memiliki duty cycle 50%, sehingga jika diterapakan menggunakan LED, maka LED tersebut akan hidup tidak terang secara penuh, melainkan sedikit lebih redup dengan ouput duty cycle 50%.
nice information min
ReplyDeletePower supply hp