LDR n LED (Digital n Analog)
Catatan harian ku dengan arduino sebelumnya, menceritakan bagaimana intensitas cahaya (mewakili analog I/O) di tampilkan di layar monitor lewat Serial Monitor dan posting pertama aku bercerita tetang digital I/O dengan led berjalan-nya, kini tibalah saatnya aku harus mengawinkan analog dengan digital, mau nunggu apalagi coba ? mereka saling mencinta dan kedua orangtuanya pun sudah setuju. Yang dimaksud memadukan antara analog dan digital adalah analog input diwakili oleh LDR ditampilkan hasilnya di digital output yang diwakili oleh led. Maka rangkaian LDR dan Led Shield yang telah dibuat sebelumnya aku sandingkan di pelaminan boardnya arduino saverino.
Gambar 1. LDR , Shield Led n Saverino
Skenarionya seperti ini : apabila nilai intensitas cahaya 0 alias gelap gulita maka led 1 akan menyala, apabila intensitas cahaya mencapai nilai tertentu dan lebih dari 0 maka led2 akan menyala, demikian seterusnya tentukan nilai dan tentukan pula led mana saja yang akan menyala. Led 5 menyala dengan asumsi apabila intensitas cahaya maksimum alias terang benderang.
Sekarang waktunya untuk berfikir, aku mimi susu dulu biar otak agak encer dikit tak lama berselang air susu bereaksi aku mulai dapat ide-ide segar, kode kode bermunculan dalam benak-ku lalu kemudian aku tulis beberapa bait program dalam sket seperti berikut ini:
int LdrPin = A0; // inisialisasi pin Analog 0 untuk LDR
int NilaiCahaya; // inisialisasi variabel Nilai cahaya dengan nilai awal 0
void setup() {
//tentukan tiap pin sebagai output
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
}
void loop() {
//baca pin analog 0 dan simpan di NilaiCahaya
NilaiCahaya = analogRead(LdrPin);
//apabila nilai_cahaya = 0 maka hanya led 1 nyala
if (NilaiCahaya <= 0) {
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
}
//apabila nilai_cahaya lebih dari 20 maka led 1 dan 2 nyala
if (NilaiCahaya >= 20) {
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
}
//apabila nilai_cahaya lebih dr 100 maka hanya led 1,2 dan 3 nyala
if (NilaiCahaya >= 100) {
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
}
//apabila nilai_cahaya lebih 250 maka hanya led 1,2,3 dan 4 nyala
if (NilaiCahaya >= 250) {
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
}
//apabila nilai_cahaya lebih dr 400 maka hanya led 1,2,3,4 dan 5 nyala
if (NilaiCahaya >= 400) {
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
}
}
Hasilnya sesuai dengan yang direncanakan yaitu :
- Apabila Intensitas cahaya 0 : led1 nyala
- Apabila Intensitas cahaya >20 : led 1dan 2 nyala
- Apabila Intensitas cahaya >100: led 1, 2 dan 3 nyala
- Apabila Intensitas cahaya >250: led 1, 2, 3 dan 4 nyala
- Apabila Intensitas cahaya >400 : semua led nyala
Tiap LDR tentu berbeda tingkat sensivitasnya aku tinggal melihat dulu di serial monitor nilai cahaya yang diterima oleh LDR baru deh tentukan led mana saja yang harus nyala. Sayang aku belum bisa menampilkan hasil karya anak bangsa dalam bentuk video, but tomorrow maybe.. just wait n see ok …..
No comments:
Post a Comment