Salve Ragazzi , sono un nuovo Utente e da poco più di due settimane sono entrato nel fantastico Mondo di Arduino .
Vi scrivo poichè ho la necessità di replicare un'esperimento effettuato in laboratorio di Fisica III.
L'esperimento in questione riguarda lo studio di Sorgenti Luminose Variabili nel Tempo.
Ciò che mi serve è creare un circuito composto da un sensore di Luce ( fotoresistenza ) e un LED ,in modo tale che la fotoresistenza legga l'intensità luminosa del LED e la stampi a video .
Devo due grafici con i valori del Tempo, Luminosità e Tensione .
Allego il circuito con le foto del circuito e del codice sorgente .
I problemi che riscontro sono :
Non leggo nessuna variazione della luminosità ,voltaggio , resta fissa a zero.
Non riesco a leggere i decimali sui dati relativi al tempo e luminosita'. Leggo sfilze di 0.00 ... poi 1.00 .. poi 2.00 e cosi via , nonostante il campionamento sia ogni millesimo di secondo.
come posso inserire in serie alla resistenza un potenziometro? in modo da far variare l'intensità del LED?
Ciao,
prima di tutto, essendo il tuo primo post, ti chiederei di presentartiQUI (spiegando bene quali conoscenze hai di elettronica e di programmazione) e di leggere con attenzione il REGOLAMENTO ... Grazie.
Controlla bene il codice, hai invertito varie cose e definito male varie altre ...
Esempio ...
float Sensore=A0; // Variabile sensore
... è sbagliato. Dato che per te quello è solo un mnemonico per il pin, un byte è più che sufficiente e per di più conviene dichiaralo const, o, anche, metterlo in una #define così da risparmiar anche quel byte
const byte Sensore = A0;
Poi ... metti il pin dove leggi il voltaggio (A1) nella variabile volt (anch'essa erratamente dichiarata float), ma poi leggi da un'altro pin :o :o :o
Io aggiungerei anche di mettere un poco di ordine nello schema cominciando a usare i colori dei fili secondo convenzione:
Rosso -> +Vcc
Nero -> Gnd
Se non ho visto male hai anche invertito i collegamenti sulla breadboard mettendo il +Vcc sulla linea nera e il Gnd sulla linea rossa. Su uno schema semplice come questo i collegamenti si trovano facilmente, se però fai qualcosa di più complicato e non rispetti un minimo di ordine puoi facilmente trovarti in difficoltà.
ultimo_53:
Su uno schema semplice come questo i collegamenti si trovano facilmente, se però fai qualcosa di più complicato e non rispetti un minimo di ordine puoi facilmente trovarti in difficoltà.
Nella realtà ragiono cosi , non pensavo che si potessero cambiare i colori dei fili con Fritzing, comunque sia ho rimediato . Posto nuovamente l'immagine , ho aggiunto pure un potenziometro a 3 piedini .
gpb01:
Controlla bene tutto, correggi e ... posta il programma corretto.
Ho controllato il codice , alcune cose si sono sistemate ,altre meno . Ecco il Codice :
#define sensore A0
#define tensione A1
float lum=0;
float volt=0;
float time=0;
void setup () {
Serial.begin(9600);
Serial.print(" Tempo [s] Intensita'[cd] Tensione [V] \t \n ");
}
void loop () {
time=millis()/1000;
lum=analogRead(sensore);
volt=(analogRead(tensione)/1024.0)*0.5; // Definito cosi dopo aver letto il libro progetti
Serial.print("\t");
Serial.print(time,3);
Serial.print("\t");
Serial.print(lum,3);
Serial.print("\t");
Serial.print(volt,2);
Serial.print("\n");
delay(1);
}
Problemi riscontrati :
Il LED si accende e leggo 0.5 Volt di tensione , anche variando il potenziometro non si hanno cambiamenti.
Dalla Fotoresistenza leggo sempre 1023 , nessuna variazione nel tempo ( stanza al buio ) .
Non riesco a stampare i decimali del tempo , vorrei campionare ogni millisecondo ( il settaggio del delay è corretto ) ma Arduino mi stampa solo i secondi e fissa i decimali a 0.
Scusatemi se magari sbaglio cose banali , ma questo è il mio 4o progetto