Jumat, 28 Oktober 2016

Interfacing LDR photo resistor pada NodeMCU V1.0 (Arduino IDE)

Cadmium sulfide (CdS) atau light dependent resistor (LDR) memiliki resistensi berbanding terbalik dengan jumlah dari cahaya yang jatuh diatasnya, yang juga dikenal sebagai photo resistor, photoconductor, photoconductive cell, atau sederhananya disebut photocell.

Gambar 1. Karakteristik resistensi LDR terhadap intensitas cahaya

Karena memiliki karakteristik resistensi yang berbeda terkait dengan intensitas cahaya, sehingga pemanfaatan LDR pada suatu rangkaian adalah menggunakan teknik voltage divider, sehingga perubahan resistensi dapat diukur berdasarkan perubahan tegangan yang keluar (Vout).

Gambar 2. Voltage Divider dan Formula menghitung Vout

Berdasarkan persamaan tersebut diatas maka dapat dihitung Vout, misalkan Vin adalah 3.3V, RLDR=5ohm, R2=10ohm, maka Vout= 3.3V * 10000/(10000+5000) = 2.2V.

Karena tegangan yang keluar dapat berubah sesuai dengan intensitas cahaya (RLDR), sehingga Vout  harus dihubungkan ke pin analog (bukan digital) pada board NodeMCU. Board NodeMCU memiliki satu pin analog yaitu ADC (Analog-to-digital converter) yang dapat diakses melalui pin A0.

Gambar 3. Pin A0 adalah pin Analog-to-digital converter

Pembacaan pada A0 yang memiliki 10 bit sehingga berkisar antara 0 s/d 1023.

Langkah-langkah:
1. Hubungkan salah satu kaki photoresitor ke 3V3
2. Hubungkan kaki(2) yang lainnya dengan resistor 10ohm ke GND
3. Hubungkan kaki(2) ke pin A0 (membentuk rangkaian voltage divider)

Untuk jelasnya lihat gambar 4.




Gambar 4. Rangkaian photoresitor ke NodeMCU V1.0

Lakukan koding berikut ini:

// the setup routine runs once when you press reset:
const int pinLDR = A0;

void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(pinLDR);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 3.3V):
  float voltage = sensorValue * (3.3 / 1023.0);
  // print out the value you read:
  Serial.println(voltage);
  delay(500);
}

Lakukan Verify dan Upload.
Salam,
Hendra.



Tidak ada komentar:

Posting Komentar