Problema analogRead

Salve ragazzi.

Ho un problema con la lettura analogica: sto usando due led ir per costruirmi un sensore, uno come emettitore e l’altro come ricevitore. Faccio delle letture ambientali a emettitore spento, quindi medio e accendo l’emettitore per fare altre letture ad emettitore acceso.

Fino a ieri funzionava tutto correttamente, da oggi le letture sembrano impazzite. Non posto il circuito perché sono due semplici LED, uno collegato con una resistenza al pin 8, l’altro collegato al pin A1.

int i=0;
long valore_ambientale;
long tmp;
long distanza;
void setup()
{
  //pinMode(A1,INPUT);
  pinMode(8,OUTPUT);
  Serial.begin(9600);
 // analogReference(INTERNAL);
}

void loop()
{
  tmp=0;
  i=0;
  digitalWrite(8,LOW);
  analogRead(A
  while(i<50)
  {
    tmp=analogRead(A1)+tmp;
    i++;
  }
  valore_ambientale=tmp/50;
  Serial.print("tmp: ");Serial.println(tmp);
  Serial.print("Valore ambientale:");Serial.println(valore_ambientale);
  digitalWrite(8,HIGH);
  while(i<100)
  {
    distanza=analogRead(A1)-valore_ambientale;
   // Serial.println(distanza);
    i++;
  }
}

Ho provato un pò di tutto: ad aggiungere dei delay, a fare letture a vuoto ma non capisco l’errore. Molto spesso come risultato della lettura mbientale si alternano tre valori: 105 - 60 -0 -105 -60 -0.

Grazie,
Andrea

Hai acceso oggi una lampada a flurescenza che ieri era spenta?

Usa come ricevitore un ricevitore dei telecomandi IR tipo TSOPxx38 e modula il LED IR emettitore con una frequenza di 38kHz. Cosí non devi calibrarlo e funziona perfino in piena luce del sole.

Ciao Uwe

Le condizioni di test sono rimaste invariate!

Avendo a disposizione quei led preferivo usare quelli , tanto più che ho visto funzionare il tutto con i miei occhi!

Cerco di filtrare la luce ambientale proprio per adattare un minimo il dispositivo ad ogni zona della casa. Non ho necessità di usare il sensore all'esterno quindi non dovrebbe essere un problema.

Grazie, Andrea

Piccola news: il problema non sembra essere l’analogRead. Infatti se uso un potenziometro su breadboard tutto sembra andare correttamente. Lo stesso codice usando però un LED ir da risultati altalenanti. C’è di più: se io il LED lo collego direttamente alla board tra A0 e massa tutto sembra funzionare alla grande.

A questo punto potrebbe essere un problema della breadboard?

Grazie,

Andrea

addre_91: A questo punto potrebbe essere un problema della breadboard?

Sí, possibilissimo. Ciao Uwe