segunda-feira, 13 de junho de 2011

Código fonte

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;
      }
  }
}

Nenhum comentário:

Postar um comentário