MASIGNALPHAS2101
6680671983845063762

Cara menggunakan Pin PWM pada Arduino

Cara menggunakan Pin PWM pada Arduino
Add Comments
3/28/2020
Selamat datang kembali di Hestech Indonesia. Kamu sekarang sedang membaca artikel dengan label Arduino Tutorials. Pada artikel ini kita akan belajar bagaimana Input dan output pin digital pada Arduino bekerja  untuk menghidup dan mematikan LED dengan menggunakan Button dan PWM. 

Kita dapat menghidupkan LED dengan mengirimkan nilai HIGH/LOW atau on dan off pada Arduino untuk menyalakan dan mematikan LED menggunakan digitalWrite().

Bagaimana kalo kita ingin mengaktifkan sesuatu dengan nilai tertentu dan bisa diubah-ubah sesuai keinginan?, seperti mengatur intensitas cahaya LED atau mengatur kecepatan putaran motor? 

Supaya lebih jelas, mari kita implementasikan kedalam rangkaian berikut:
Komponen yang dibutuhkan dalam rangkaian diatas adalah:
  1. Arduino
  2. LED
  3. Resistor 220 ohm
  4. Kabel Jumper
  5. Breadboard
Kemudian upload program berikut kedalam arduino:
Example 1:

int button = 12;
int led = 13;

int buttonState = 0;

void setup() {
pinMode(led, OUTPUT);
pinMode(button, INPUT);
}

void loop() {
buttonState = digitalRead(button);
if (buttonState == HIGH)) {
digitalWrite(led, HIGH);
}
else {
digitalWrite(led, LOW);
}
}
Example 2:
int led = 13;
int button = 12;

int buttonState =0;
int brightness = 0;
int brightup = 2;

void setup() {
pinMode(led, OUTPUT);
pinMode(button, INPUT);
}

void loop() {
analogWrite(led, brightness);

buttonState = digitalRead(button);

if ( buttonState == HIGH ) {
brightness = brightness + brightup;
}
if ( brightness == 255 ) {
brightness = 0;
}
delay(30);
}
Arduino mengeset output digital ke HIGH dan LOW bergantian dengan porsi waktu tertentu untuk setiap nilai keluarannya. Durasi waktu untuk nilai HIGH disebut pulse width atau panjang pulsa. Variasi nilai pin output didapatkan dari perubahan panjang pulsa yang diberikan pada satu periode waktu dan dilakukan berulang-ulang. Untuk lebih jelasnya perhatikan ilustrasi berikut:
PWM
Kondisi HIGH adalah kondisi ketika sinyal berada di atas grafik (5V) dan LOW adalah ketika sinyal berada di bawah (0V). Duty cycle adalah persentasi panjang pulsa HIGH dalam satu periode sinyal. Ketika duty cyclenya 0% atau sinyal LOW penuh, maka nilai analog yang dikeluarkan adalah 0V atau setara dengan GND. Ketika duty cyclenya 100% atau sinyal HIGH penuh maka sinyal yang dikeluarkan adalah 5V.

Untuk mengatur nilai duty cycle, kita gunakan fungsi analogWrite([nomorPin], [nilai]). Nilai pada parameter kedua berkisar antara 0 hingga 255. Bila kita hendak mengeset duty cycle 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 127 (50% x 255).

Hestech Indonesia

Innovasi di bidang Teknologi, Listrik, Teknik Komputer dan gaya Hidup. Info lainnya tentang praktik konservasi berbasis Sains, inovasi, dan kearifan lokal