3. Proyek LED dengan Arduino

3. PROYEK LED DENGAN ARDUINO

LED (Light Emiting Diode) banyak digunakan sebagai indikator berlangsungnya proses, awal proses atau berakhirnya proses pada sistem microcontroller, sehingga pengguna dapat mengetahui proses yang sedang terjadi. LED memiliki polaritas Plus dan minus, biasanya posisi Plus tegangan ditandai dengan kaki yang lebih panjang dari yang lainnya, seperti tampak pada Gambar 3.1.

Description

3.1 LED Berkedip Bergantian

Tujuan proyek ini adalah menghidupkan dan mematikan 3 LED secara bergantian selama 2 detik untuk setiap LED secara terus menerus.

Kebutuhan Bahan

Bahan

Jumlah

Nilai

Keterangan

LED 5MM

Resistor ¼ watt

3 pcs

3 pcs

220 Ohm

Warna Merah, kuning dan hijau

Diagram Sketch

Kode Program

int ledPinMerah = 8; // Pinout 8 ke kaki LED positif LED Merah

int ledPinKuning = 9; // Pinout 9 ke kaki LED positif LED Kuning

int ledPinHijau = 10; // Pinout 10 ke kaki LED positif LED Hijau

void setup() {

pinMode(lcdPinmerah, OUTPUT);

pinMode(lcdPinKuning, OUTPUT);

pinMode(lcdPinHijau, OUTPUT);

}

void loop() {

digitalWrite(lcdPinMerah, HIGH); // LED Merah Hidup

digitalWrite(lcdPinKuning, LOW); // LED Kuning Mati

digitalWrite(lcdPinHijau, LOW); // LED Hi jau Mati

delay(2000); // Tunda 2000ms atau 2 detik

digitalWrite(lcdPinMerah, LOW); // LED Merah Mati

digitalWrite(lcdPinKuning, HIGH); // LED Kuning Hidup

digitalWrite(lcdPinHijau, LOW); // LED Hi jau Mati

delay(2000); // Tunda 2000ms atau 2 detik

digitalWrite(lcdPinmerah, LOW); // LED merah Mati

digitalWrite(lcdPinKuning, LOW); // LED Kuning mati

digitalWrite(lcdPinHijau, HIGH); // LED Hi jau Hidup

delay(2000); // T unda 2ØOØrns atau 2 detik

}

3. 2 Kontrol LED Dengan Push Button

Description

Tujuan proyek ini adalah untuk menghidupkan dan mematikan setiap LED dari tiga LED yang tersedia dengan menggunakan saklar push button. Kondisi hidup atau mati setiap LED dikendalikan oleh saklar push button. Adapun pemahaman kaki saklar push button seperti tampak pada Gambar 3.3

Kebutuhan Bahan

Bahan Jumlah Nilai Keterangan
LED 5MM 3 pcs Warna merah, kuning dan hijau
Resistor 1/4 watt 3 pcs 10K
Resistor 1/4 watt 3 pcs 220 Ohm – 470 Ohm
Saklar push button 3 pcs Description

Description

Kode Program

int ledPinMerah = 8; // Pinout 8 ke kaki LED positif LED Merah

int ledPinKuning = 9; // Pinout 9 ke kaki LED positif LED Kuning

int ledPinHijau = 10; // Pinout la ke kaki LED positif LED Hijau

int buttonPinMerah 11 ; // Pushbutton Merah dihubungkan dengan pin 11

int buttonPinKuning = 12 ; // Pushbutton Kuning dihubungkan dengan pin 12

int buttonPinHijau = 13; // Pushbutton Hijau dihubungkan dengan pin 13

void setup() {

pinMode(IedPinMerah, OUTPUT) ;

pinMode(ledPinKuning, OUTPUT) ;

pinMode(ledPinHijau, OUTPUT) ;

digitalWrite(ledPinMerah, LOW) ;

digitalWrite(IedPinKuning, LOW);

digitalWrite(IedPinHijau, LOW);

pinMode(buttonPinMerah, INPUT);

pinMode(buttonPinKuning, INPUT);

pinMode(buttonPinHijau, INPUT);

void 1oop() {

// Jika saklar push button Merah ditekan

if (digitalRead(buttonPinMerah) == HIGH) {

digitalwrite(ledPinMerah, HIGH); // LED Merah hidup

} else {

digitalwrite(ledPinMerah, LOW); // LED Merah mati

}

// Jika saklar push button Kuning ditekan

if (digitalRead(buttonPinKuning) ==HIGH) {

digitalwrite(ledPinKuning, HIGH); // LED Kuning hidup

} else {

digitalwrite(ledPinKuning, LOW); // LED Kuning mati

}

// Jika saklar push button Hijau ditekan

if (digitalRead(buttonPinHijau) == HIGH) {

digitalwrite(ledPinHijau, HIGH); // LED Hijau hidup

} else { digitalwrite(ledPinHijau, LOW); // LED Hijau mati

}

}

3.3 Fading LED Dengan Potensiometer

Bahan Jumlah Nilai Keterangan
LED 5MM 1 pcs Warna bebas
Resistor 1/4 watt 1 pcs 220 Ohm – 470 Ohm
Potentiometer Mono 1 pcs 10 K -50K

Tujuan proyek ini adalah untuk mengatur tingkat intensitas kecerahan LED yang dimulai dari kondisi mati sampai terang dengan menggunakan potensiometer. Karena komponen potensiometer bekerja secara analog maka kita harus memanfaatkan pin analog sebagai masukkan.

Kebutuhan Bahan

Description

Kaki LED positif dihubungkan ke resistor 220 ohm,kemudian kaki resistor dihubungkan ke pin D8 Arduino, sedangkan kaki negatifLED dihubungkan dengan ground Arduino. Kaki sebelah kiri potensiometer dihubungkan ke ground Arduino, kaki tengah potensiometer dihubungkan ke pin analog A0 Arduino dan kaki sebelah kanan potensiometer dihubungkan ke tegangan 5 volt Arduino.

Kode Program

const int LEDPin=8; // Kaki LED positif dihubungkan ke pin 8

const int POTPin = A0; // Kaki tengah potensiometer dihubungkan ke pin analog A0

int nilaiPotensiometer =0;

int nilaiOutput = 0; // asumsi bahwa posisi potensio dimulai paling kiri

void setup(){

// Inisialisasi komunikasi serial dengan kecepatan 9600 bps

Serial.begin(9600); // Baudrate disesuaikan dengan baudrate serial monitor

pinMode(LEDPin, OUTPUT);

pinMode(POTPin, INPUT);

}

void loop() {

// Mendapatkan nilai pembacaan potensiometer

nilaiPotensiometer = analogRead(POTPin);

// Mentransformasi atau memetakan nilai pembacaan potensiometer

// antara 0-1023 (nilai analog) menjadi antara 0-255

// dengan menggunakan fungsi map Arduino

nilaiOutput = map(nilaiPotensiometer, θ, 1023, ø, 255);

// Mengatur tingkat kecerahan LED antara 0-255

analogWrite(LEDPin, nilaioutput);

// Cetak hasilnya ke Serial Monitor

Serial.print(“\n Nilai analog potensiometer (0-1023) = “);

Serial.print(nilaiPotensiometer);

Serial.print(“\n Output tingkat kecerahan (0-255)=“);

Serial.print(nilaiOutput); //Tunda 10ms setiap kali ada pergesaran nilai potenstiometer

delay(10);

}

Program di atas menggunakan fungsi map yang berguna untuk mentransformasi nilai dengan rentang tertentu yang di-skala menjadi rentang nilai baru sesuai kebutuhan. Sebagai contoh, secara default semua input yang bersumber dari input analog berkisar antara 0 sampai 1023, kemudian ditransformasi menjadi rentang nilai baru antara 0 sampai 255.

Proyek juga menggunakan mode PWM (pulse width modulation), biasanya ditandai dengan fungsi analogWrite() yang melibatkan nilai antara 0 sampai 255. Sedangkan mode digital umumnya menggunakan fungsi digitalWrite() yang melibatkan dua nilai saja yaitu HIGH dan LOW.

Pada program di atas juga dikenalkan fungsi komunikasi serial yang ditandai dengan inisialisasi Serial.begin. Sedangkan fungsi Serial.print() bertujuan untuk menampilkan variabel nilai angka atau string ke monitor yang berguna saat proses debug kode program..

Untuk membaca output ke serial monitor dengan cara buka menu Tools -> Serial Monitor. Kemudian sesuaikan kecepatan transfer data (baudrate) antara serial monitor dengan kecepatan pada kode program. Sebagai contoh kecepatan transfer data adalah 9600 bps.

Setelah itu lakukan upload program ke Arduino. Putar potensiometer ke kanan atau ke kiri, perhatikan perubahan nilai yang sedang terjadi pada layar serial monitor seperti tampak pada Gambar 3.4.

3.4 RGB LED

LED RGB adalah LED yang terdiri dari 3 warna dasar antara Iain warna merah, hijau dan biru dalam satu LED tunggal. Terkadang demi kesederhanaan perancangan, cukup digunakan satu LED namun memiliki tiga warna berbeda. Dengan mengatur kompisisi warna dasar RGB akan diperoleh kombinasi warna yang lebih kaya.

Gambar 3.5 Pin LED 3 Warna RGB Gambar 3.6 Komposisi Warna Dasar R6B

Kebutuhan Bahan

Bahan Jumlah Nilai Keterangan
LED RGB 1 pcs
Resistor 1/4 watt 3 pcs 220 Ohm – 470 Ohm

Diagram Sketch

Setiap kaki LED dihubungkan ke resistor antara 470Q dan ujung kaki resistor lainnya dihubungkan ke pin Db pin D9 dan pin DIO Arduino. Sedangkan pin negatif LED dihubungkan ke ground Arduino.

Kode Program

int pinMerah=8; // Pin Led Merah dari resistor

int pinHijau=9; // Pin Led Hijau dari resistor

int pinBiru =10; // Pin Led Biru dari resistor

void setup(){

pinMode(pinMerah, OUTPUT);

pinMode(pinHijau, OUTPUT);

pinMode(pinBiru, OUTPUT);

}

void loop() {

aturWarna(255, 0, 0); // Warna Merah

delay(1000);

aturWarna(0, 255, 0); // Warna Hijau

delay(1000);

aturwarna(0, 0, 255); // Warna Biru

delay(1000);

aturWarna(255, 255, 255); // Warna Putih

delay(1000);

aturwarna(170, 0, 255); // Warna Ungu

delay(1000);

void aturWarna(int nilaiMerah, int nilaiHijau, int nilaiBiru) {

analogwrite(pinMerah, nilaiMerah);

analogWrite(pinHijau, nilaiHijau);

analogWrite(pinBiru, nilaiBiru);

}

Pada bagian ini dikenalkan pula bagaimana membuat fungsi buatan sendiri yang bernama aturWarna(). Fungsi umumnya terdiri dari nama fungsi, variabel parameter dan badan fungsi (berisi kode program). Fungsi bisa bernilai balik atau tidak. Fungsi bisa dipanggil berulang-ulang jika diperlukan pada badan void loop, sehingga program menjadi lebih efisien.

 

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

This site uses Akismet to reduce spam. Learn how your comment data is processed.