Salve a tutti, mi chiamo igor e sono nuovo del forum. Possiedo un arduino1 rev3. Sono alle prime armi ma già ho preso buona dimestichezza con la programmazione di base ed ho già fatto i primi esperimenti con led, potenziometro ecc. Ora mi trovo davanti un problema che non riesco a risolvere. Mi stò cimentando nella realizzazione di un banale sensore crepuscolare, che al calare del buio faccia suonare un buzzer, che in futuro sostituirò con un relè. Il problema è che non riesco a far funzionare il fotoresistore sul pin analogico.
I collegamenti hardware che ho fatto sono i seguenti:
da arduino parte un jumper dal pin 5v che va sulla bread board. Sulla linea dei 5v ho collegato i due piedini della fotoresistenza, dopo sempre in linea ho connesso un resistore da 10kohm, il piedino esterno del resistore è a massa sul gnd. Un'altro jumper parte da un pin analogico e va sulla bread board, tra il fotoresistore ed il resistore da 10k. Tralasciate il valore che è scritto nell'istruzione if. il problema è che il buzzer non parte al variare della luce. Ho provato a cambiare il valore, ed esso suona solo ad un certo valore. ma se sono al buio o in piena luce non cambia.. Ho provato a leggere il valore che legge dalla porta analogica, tramite il monitor seriale. Mi dava 1023, il giorno prima oscillava tra i 590 ed i 620.. L'anomalia sta anche nel fatto che scollegando il jumper dalla porta analogica il valore non arriva a 0 ma cala intorno ai 300.. Ho provato anche in un'altro progetto a far variare il suono del buzzer tramite potenziometro e in apparenza, sembrano funzionare tutti e 6 i pin analogici.
Ho sbagliato qualcosa io??? è danneggiata il fotoresistore?? sono danneggiati i pin analogici del mio arduino?? Aiutatemi se potete, sono giorni che non ne vengo a capo. Questo è il mio sketch:
int valorefotocellula;
int analogico=4;
void setup (){pinMode(12, OUTPUT); Serial.begin(9600);}
void loop (){valorefotocellula=analogRead(analogico); Serial.println(analogRead(analogico)); delay(4000); if(valorefotocellula<=512) {tone(12, 1000,500); delay(4000);} else {noTone(12);}},