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.
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 5MMResistor ¼ watt |
3 pcs3 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
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 | ![]() ![]() |
Kode Program
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
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.
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.