problema nella lettura porte analogica

ciao a tutti.

ho da poco iniziato a usare Arduino, ma ho un problema: volevo verificare tramite una porta analogica di arduino il voltaggio di un led collegato ad un circuito esterno ad arduino. collego il + del led alla porta analogica 0, collego il - alla massa e faccio partire il programma identico a quello del tutorial"Guida - Lettura di un sensore con Arduino", con l'aggiunta di un delay(1000) per avere un valore ogni secondo.

il problema è che arduino mi stampa a video dei valori più o meno plausibili, intervallati però da molti 0 :o

es:

0 0 0 595 595 0 0 596 0 0 0 0 0 595 0 0 0 0 594 0 0 0 0 0 595 0 0 0 0 596 0 0 0

sbaglio qualcosa?

Ma il circuito esterno che gestisce il led, cosa gli fa fare? Magari e’ giusto che tu ottenga degli 0

nono, il led è fisso mentre faccio queste prove, e la tensione, misurata col tester, è fissa a 1.45 v

Senza controllare il codice non posso dire niente; per favore mandalo Ciao Uwe

Il " + " va collegato ai 5 volt invece la porta analogica 0 la devi attaccare insieme ai piedino della resistenza e del Led.

il codice è:

#define InputAnalogico A0
void setup()
{
 Serial.begin(9600);
}

void loop()
{
 int ValoreSensore = analogRead(InputAnalogico);
 Serial.println(ValoreSensore, DEC); 
delay(1000);
}

, ma non penso sia quello il problema.

in realtà ho parzialmente capito la questione: il numero che mi da intervallato da tanti zero è sempre lo stesso, e, in funzione della luminosità, cambia solo il numero degli zero , per cui: luminosità minima -----> 99% [0]; 01% [595] luminosità intermedia -> 50% [0]; 50% [595] luminosità massima----> 01% [0]; 99% [595]

sorgono in me allora due domande: 1)come faccio a far interpretare da arduino questi valori come un indice che varia da un minimo a un massimo?(il risultato dovrebbe essere dato in un tempo molto breve, massimo un decimo di secondo)

2)come mai col tester visualizzo un voltaggio variabile in modo lineare?

grazie, ciscu

Ma il led è alimentato con una tensione DC, o con duty cycle?

il led appartiene alla stazione centrale dell'aMbx di philips: http://gadget7.com/wp-content/uploads/2007/08/philips-ambx-peripherals.jpg

quindi non so come è alimentato, speravo di risalirci...

Il led è contenuto dentro il cubo luminoso posto sopra le casse?

Se ti riferisci a quello, dentro sembra essereci un led rgb, ora non capisco che misura vuoi fare.

Devi spiegare meglio, quando parli di un LED, io ho pensato che avessi alimentato un led non che vuolevi fare una misura su un prodotto commerciale.

Un led singolo, e diverso da un LED+Driver+PWM.

Ciao.

il mio obbiettivo è far leggere ad arduino l'intensità luminosa dei 3 canali rgb di un modulo dell'ambx, contenuto all'interno dello scatolotto centrale da cui vedi uscire luce nella foto.

allego le foto del modulo da cui prelevo la corrente da leggere:

fronte: http://ffblog.altervista.org/immagini/hosting/CIMG2045.JPG

retro: http://ffblog.altervista.org/immagini/hosting/CIMG2046.JPG

più precisamente la lettura non la effettuo da un singolo led, ma dalla resistenza variabile che 'penso' comandi tutti i led di quel colore.

i cavi saldati sul fronte sono quelli da dove prelevo le tensioni: cavo rosso= led rossi; cavo nero vicino al rosso = massa; cavo nero in basso= led blu; cavo giallo= led verdi.

dimmi se hai bisogno di altre info

Caspita che belle immagini nitide, che macchiana fotografica hai?

Vabbene, più che leggere la tensione che è sempre quella,
dovresti leggere la corrente che scorre nel led. Tuttavia in quel circuito la luminosita viene variata modificando il duty cycle, dovresti risalire a quale pin nel connettore corrisponde al controllo pwm di un colore.

Quindi non rilevi ne corrente ne tensione, ma l’onda quadra di frequenza x, e duty cycle y.

Quello che leggi e che hai postato è corretto ma interpretato male.

Ciao.

Le porte analogiche rilevano la tensione... poi siamo noi tramite la legge di Ohm a ricavare la corrente... il contrario non è possibile.

ok, ce l'ho fatta :D

una volta capito che la luminosità varia modificando il duty cycle, ho collegato alla resistenza dei led blu al posto della porta analogica una porta digitale, e ho poi modificato il programma in modo che conti gli stati HIGH nell'unità di tempo:

int Valore = 0; 
int H=0;
int L=0 ;
int contatore =0;

void setup() 
{
  pinMode(7, INPUT); 
  Serial.begin(9600);
}

void loop()
{
  if(contatore!=96500)
  {
    Valore = digitalRead(7); 
    if (Valore == HIGH) 
    { 
      H=H+1;
    }
    else 
    {
      L=L+1;
    }
    contatore=contatore+1;
  }
  else
  {
    Serial.println(H, DEC);
    L=0;
    H=0;
    contatore=0;
  }
}

in questo modo i valori registrati variano in modo perfetto, dando un valore proporzionale alla luminosità 8-)