Another Day with Arduino (part two)


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