Skip to main content

PWM pada Arduino

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().

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);
}

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%.

Comments

Post a Comment

Popular posts from this blog

Komponen dan Simbol Elektronika - Mr. Ido

Hai guys!!! Pada postingan awal kita udah ngebahas tentang Arduino. Sebelum memulai pakai Arduinonya, ada baiknya kita kenal dulu komponen-komponen dan simbol-simbol dari elektronika, sehingga ntar gak bingung waktu nyoba merangkai rangkaian elektronikanya. Nah di postingan ini bakal dijelaskan komponen-komponen elektronika secara umum. Resistor Resistor merupakan komponen pasif yang fungsinya sebagai penghambat arus listrik yang mengalir pada suatu rangkaian elektronika. Nah resistor ini paling sering dipakai dalam rangkaian elektronika. Bisanya resistor disimbolkan dengan huruf "R". Resistor memiliki nilai resistansi (hambatan) dalam satuan Ohm (Ω). Beberapa jenis resistor diantaranya: Fix Resistor, Resistor Variabel, Termistor (NTC, PTC), LDR (Light Dependent Resistor). Kapasitor Kapasitor merupakan komponen pasif yang memiliki fungsi untuk menyimpan muatan listrik sementara. Di dalamnya terdapat 2 buah konduktor yang terpisah dengan jarak tertentu o

LED Berkedip (Blink) dengan Waktu Delay Diatur Potensiometer - Mr. Ido

Hai guys!!! Pada tutorial ini Latihan Arduino bakal membagikan tutorial masih dengan LED. Di tutorial sebelumnya ( LED Berkedip (Blink) menggunakan Arduino - Mr. Ido ), kita telah membagikan cara untuk membuat LED berkedip. Kali ini kita bakal upgrade sedikit dengan cara memberikan waktu berkedip LED yang diatur dengan Potensiometer. Pada pin analog Arduino kita manfaatkan perubahan nilai yang masuk ke pin analog tersebut dengan merubah nilai resistansi dari potensiometer. Tegangan yang dapat dibaca pada pin analog ini adalah 0 - 5V dengan nilai analog yang memiliki rentang 0 - 1023 dalam bilangan integer. Dari nilai analog tersebut bisa digunakan untuk mengatur lamanya delay LED berkedip. Untuk merubahnya dalam satuan waktu, bisa digunakan perbandingan antara  delay  waktu maksimum yang diinginkan dengan 1023, yang dapat ditulis dalam persamaan berikut Keterangan: Delay waktu merupakan delay yang akan dipakai untuk delay berkedip Waktu maksimum merupakan waktu delay ma