PENGONTROLAN TINGKAT KECERAHAN LED
Jika pada materi blog sebelumnya
kita belajar mengenai simulasi arduino dengan menggunakan PROTEUS, dimana kita
bermain-main dengan program simulasi, maka pada kesempatan kali ini kita akan
membahas mengenai cara mengontrol tingkat kecerahan LED dengan hardwarenya
langsung .
Masih ingat kan apa itu
mikrokontroller, dan apa itu arduino ? :D
Mikrokontroller adalah komputer yang berukuran
mikro dalam satu
chip IC (integrated circuit) yang terdiri dari
processor, memory, dan antarmuka yang bisa diprogram. Jadi disebut komputer
mikro karena dalam IC atau
chip mikrokontroller terdiri
dari CPU, memory, dan I/O yang
bisa kita kontrol dengan
memprogramnya. I/O juga sering
disebut dengan GPIO (General
Purpose Input Output Pins) yang berarti pin yang bisa kita program sebagai
input atau output sesuai kebutuhan.
Arduino merupakan board
microcontroller yang disertai software pendukung untuk melakukan pemrograman. Arduino menganut system open hardware menggunakan ATMEL AVR Processor dan memiliki I/O on board. Board Arduino terdiri dari hardware / modul mikrokontroller yang siap pakai dan software IDE yang digunakan untuk memprogram sehingga kita bisa belajar dengan mudah. Kelebihan dari Arduino yaitu kita tidak direpotkan dengan
rangkaian minimum sistem dan
programmer karena sudah built in dalam satu board. Oleh sebab itu kita bisa fokus ke pengembangan sistem.
Nah bagaimana cara untuk mengatur intensitas cahaya LED? Berikut
tutorialnya !
Alat dan Bahan
1.
PC
/laptop dengan dilengkapai IDE Arduino
2.
Board
Arduino R3
3.
Kabel
USB
4.
Protoboard dan socket jumper
5.
LED
merah (optional ya.. bisa kuning, hijau, biru)
6.
Push
button
7.
Resistor
220 Ω
Gambar Rangkaian dan Langkah
Kerja
1.
Siapkan
sebuah LED dan resistormya. Sambungkan kaki positif LED ke pin 9 Arduino.
2.
Kaki
negatif LED disambungkan ke resistor menuju GND.
3.
Untuk
pushbutton yang pertama, disambungkan ke GND dan ke pin 2 pada board Arduino.
4.
Untuk
pushbutton yang kedua, disambungkan ke GND dan pin 3 pada board arduino.
Langkah
1-4 dibuat seperti rangkaian seperti gambar dibawah ini !
Rangkaian
Pengaturan Intensitas Cahaya LED
Gambar Rangkaian dan Langkah Kerja
const
int pinButton1 = 2; // pin 2 sebagai input digital
const
int pinButton2 = 3; // pin 3 sebagai input digital
const
int pinLED = 9; //
Ingat, pin 9 support PWM
void
setup() {
pinMode(pinButton1,
INPUT);
pinMode(pinButton2,
INPUT);
pinMode(pinLED,
OUTPUT);
digitalWrite(pinButton1,
HIGH);
digitalWrite(pinButton2,
HIGH);
}
int
brightness = 0;
void
loop() {
if(digitalRead(pinButton1)
== LOW) // jika pushbutton ditekan
{
brightness++; //
tambahkan nilai brightness
}
else
if(digitalRead(pinBt2) == LOW) //
jika pushbutton2 ditekan
{
brightness--; // kurangi nilai brightness
}
brightness
= constrain(brightness, 0, 255); //
brightness dibatasi antara 0 – 255
analogWrite(pinLED,
brightness); // pinLED diberi nilai antara 0 -
255
delay(20); // delay agar perubahannya bertahap
}
Penjelasan
Code Program
Prinsipnya dari program diatas adalah apabila push button 1
ditekan, maka intensitas cahaya led akan naik, sedangkan jika pushbutton 2
ditekan, maka intensitas cahaya akan kian meredup. Fungsi
constrain() digunakan untuk menjaga agar nilai tetap pada range yang
ditentukan, yaitu antara 0-255. Misal nilai brightness lebih kecil dari 0, maka
akan dirubah menjadi 0, tapi jika nilai brightness lebih besar dari 255 maka
akan dirubah menjadi 255. Karena nilai brightness selau antara 0-255, maka
ketika dituliskan ke pinLED juga akan selau selang antara 0-255. Fungsi
analogWrite() digunakan untuk memberikan data PWM atau data analog. analogWrite()
bisa menuliskan data dengan selang antara 0V hinga +5V pada pin input. Fungsi
delay(20) adalah untuk mengatur durasi perubahan intensitas cahaya led. Jika delay
kita hilangkan, maka led akan langsung hidup atau langsung mati ketika tombol
ditekan. Jika kita kecilkan nilainya, maka perubahan intensitas akan lebih
cepat, dan sebaliknya.
Naaaaah itulah penjelasan dari conding program pengontrolan intensitas cahaya LED
Gimana.. mudahkan untuk dipraktikkan ???
Untuk melihat percobaannya, lihat vidio dibawah ini ya... :D
























