#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define LDR_pin A0
// LDR Characteristics
const float GAMMA = 0.7;
const float RL10 = 50;
int read_ADC;
int lux;
#define LDR_pin A4
#define LDR_pin A5
int RGBLED_RedPin = 7;
int RGBLED_GreenPin = 4;
int RGBLED_BluePin = 2;
void setup(){// put your setup code here, to run once
pinMode(LDR_pin, INPUT);
lcd.clear();
lcd.begin(16, 2);
delay(100);
pinMode(RGBLED_RedPin,OUTPUT);
pinMode(RGBLED_GreenPin,OUTPUT);
pinMode(RGBLED_BluePin,OUTPUT);
}
void loop(){
int analogValue = analogRead(A0);
float voltage = analogValue / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
lcd.setCursor(0,0);
lcd.print("Turbidity: ");
lcd.print(lux);
lcd.print(" ");
lcd.setCursor(0,1);//set cursor (colum by row) indexing from 0
if(lux>=1000)
lcd.print("Water Very Clean");
if(lux<1000 && lux>=50)
lcd.print("Water Norm Clean");
if(lux<50)
lcd.print("Water Very Dirty");
if(lux>=1000)
digitalWrite(RGBLED_GreenPin,HIGH);
if(lux<1000 && lux>=50)
digitalWrite(RGBLED_BluePin,HIGH);
if(lux<50)
digitalWrite(RGBLED_RedPin,HIGH);
delay(50);
}