void setup(){
Serial.begin(9600);
Serial.println("1- Ler valor de luz de fundo.");
Serial.println("2- Ler valor de luz.");
Serial.print("\n");
}
void exibe(float valor, float condutancia){
Serial.print("Valor em volts = ");
Serial.print(valor,4);
Serial.print(" V");
Serial.print("\n");
Serial.print("Valor da condutancia = ");
Serial.print(condutancia,4);
Serial.print(" mS");
Serial.print("\n");
}
float leitura(){
const int portaAnalogica = 0;
int valorLido, k;
float valorVolts;
valorLido = analogRead(portaAnalogica); // Leitura da porta analogica
valorVolts = valorLido * 0.0048876; // Conversão do valor analogico em volts
return(valorVolts);
}
float calculaCondLuzFundo(float luzFundo){
float voltResistor, corrente, resistenciaLuzFundo, condLuzFundo;
voltResistor = 5.0000000 - luzFundo; // calcula voltagem no resistor
corrente = voltResistor/4.7; // calculo da corrente
resistenciaLuzFundo = luzFundo/corrente;
condLuzFundo = (1/resistenciaLuzFundo);
return(condLuzFundo);
}
float calculaCondLDR(float condLuzFundo, float voltLDR){
float voltResistor, corrente, resistenciaLDR, condLDR;
voltResistor = 5.0000000 - voltLDR;
corrente = voltResistor/4.7;
resistenciaLDR = voltLDR/corrente;
condLDR = (1/resistenciaLDR) - condLuzFundo;
return(condLDR);
}
void loop(){
int opt;
float luzFundo, voltLDR, condLuzFundo, condLDR;
if (Serial.available() > 0) {
opt = Serial.read();
switch(opt)
{
case 49 :
luzFundo = leitura();
condLuzFundo = calculaCondLuzFundo(luzFundo);
exibe(luzFundo, condLuzFundo);
break;
case 50 :
voltLDR = leitura();
condLDR = calculaCondLDR(condLuzFundo, voltLDR);
exibe(voltLDR, condLDR);
break;
}
}
}