Problema LM35 e fotoresistenza

Ciao a tutti, sto cercando di costruire un circuito con Arduino, una foto resistenza e il sensore termometrico LM35, che mi stampa su seriale i valori che rilevano questi due sensori, però ho notato una cosa alquanto strana, nonostante i collegamenti siano corretti, quando collego al pin analogico entrambi i sensori, la foto resistenza mi da un valore corretto, mentre il sensore termometri da range di temperature assurdi, tra 18 e 40 °C, se scollego dal pin analogico la foto resistenza la temperatura è corretta o quantomeno da range di temperatura tra 21 e 23 °C... Secondo voi quale può essere il problema?

Vi posto il codice:

float tempC;
int old_state = -1;

void setup(){
Serial.begin(9600);
}
void loop() {
tempC = analogRead(0);;
tempC = (5.0 * tempC * 100.0)/1024.0;

Serial.print(tempC);
Serial.print(";");
Serial.print(analogRead(5));
Serial.print(" ");

delay(1000);
}

e la foto del circuito:

:~

Inoltre ho notato che se metto una mano davanti alla fotoresistenza e il valore restituito diminuisce notevolmente, la temperatura in quell'istante viene rilevata correttamente, appena tolgo la mano, nuovamente dà valori completamente sballati...

Ciao oretovalley
Non riesco a vedere nessun problema ne sul circuito che nel codice.
Mi confermi che le 2 resistenza sono da 5,6kOhm?
Ciao Uwe

Si singolarmente sono 5.56 KOhm.

Adesso ho trovato una resistenza da 10 kOhm l'ho sostituita ma nessun cambiamento. Sto notando che se la foto resistenza abbassa il suo valore la temperatura tende a correggersi, quando invece aumenta il suo valore(aumento di luce), il sensore tende a diminuire la temperatura...

Altra foto:

Codice:

float tempC;
int light;

void setup(){
Serial.begin(9600);
}
void loop() {
light = analogRead(4);
tempC = analogRead(0) * 0.5;

Serial.print(light);
Serial.print(";");
Serial.print(tempC);
Serial.print(" ");

delay(1000);
}

Queste sono un paio di rilevazioni:

551;17.50 550;17.00 550;17.00 357;22.00 198;24.00 192;24.00 190;24.00 212;23.50 445;19.00 542;17.00 547;17.00 548;17.00 549;17.00 549;17.00 550;17.00 550;17.00 551;17.00 551;17.00 551;17.00 551;17.00 550;17.00 550;17.50 548;17.00 538;17.00 338;22.50 274;23.50 289;0.00 0;0.00 261;23.50 427;19.00 365;21.50 366;21.00 543;17.00 499;17.00 502;17.00 365;21.50 521;17.00 407;20.00 330;22.00 401;20.50 413;20.00 376;21.00 418;20.00 536;17.00 355;22.00 348;22.50 345;22.50 345;22.50 435;20.00 346;22.50 344;22.50 342;22.50 331;23.00 538;17.50 348;22.50 282;23.50 319;23.00 283;23.50 268;23.50 821;21.00 491;18.00 535;17.50 545;17.00 544;17.00 544;17.00 543;17.00 543;17.50 494;17.50 548;16.50 549;17.00 546;17.00 549;17.00 549;17.00 550;17.00 550;17.50 551;17.00 550;17.00 551;17.50 551;17.00 552;17.00 554;17.00 552;17.00 553;17.00 554;17.00 554;17.00 553;17.50 553;17.00 552;17.00 552;17.00 551;17.00 551;17.00 550;17.00 551;17.00 550;17.00 549;17.00 551;17.00 552;17.00 554;17.00 554;17.50 555;17.00 555;17.00 546;17.00 551;17.50 545;17.50 544;17.00 545;16.50 555;17.00 553;17.00 552;17.00 538;17.00 554;17.00 547;17.00 551;17.00 539;17.00 529;17.00 534;17.00 533;17.00 540;17.00 556;17.00 557;17.00 558;17.00 555;17.00 557;17.00 556;17.00 555;17.00 553;17.00 552;17.00 549;17.00 551;17.00 551;17.00 551;17.00 535;17.00 538;17.00 546;17.00 543;17.00 543;17.00 532;17.00 552;17.00 541;17.00 550;17.00 550;17.00 551;17.00 553;17.00 554;17.00 555;17.00 555;17.00 552;17.00 553;17.00 552;17.00 549;17.00 548;17.00 547;17.00 544;17.00 535;17.00 530;17.00 536;26.50 534;17.00 533;17.00 535;17.00 534;17.00 536;17.00 536;17.00 534;17.50 534;17.00 532;17.00 532;17.00 530;17.00 540;17.00 538;17.00 538;17.00 535;16.50 537;17.00 552;17.00 556;17.00 528;17.00 555;17.00 553;17.00 527;17.00 524;17.00 549;17.00 549;17.00 551;17.00 526;17.00 527;16.50 530;17.00 530;17.00 555;17.00 555;17.00 547;17.00 523;17.50 522;17.00 523;17.00 524;17.00 525;17.00 523;17.50 523;17.00 525;17.00 525;17.00 523;17.00 521;17.00 521;17.00 531;17.00 523;16.50 523;17.00 524;17.00 525;17.00 525;17.00 526;17.00 525;17.00 526;17.00 524;17.00 523;17.00

ciao oretovalley

La resistenza della fotoresistenza diminuische con piú luce non viceversa ma questo non é causa del problema.
Prova di misurare la tensione sulla Breadbord.

Ciao Uwe

Al sensore LM35 arrivano 4.93 V, alla foto resistenza arrivano 4.10 V

oretovalley:
Al sensore LM35 arrivano 4.93 V, ...

Sempre? anche col cambiare della luce sulla fotoresistenza?
Ciao Uwe

Sisi resta fisso.

Hai un secondo Arduino?
Fa li i stessi scherzetti?
Ciao Uwe

No ho solo questo, però non è strano? Cioè i due sensori separatamente funzionano correttamente, insieme danno questo tipo di problemi.

Per esperienza con un LM35 ti dico che questo genere di sensori è molto... sensibile agli sbalzi di corrente. Anche il mio, se collegato con qualcos'altro che assorbe corrente, fornisce letture che saltano molto. Secondo me l'unica cosa è quella di "isolare" l'alimentazione del sensore termico, ossia non alimentarlo da Arduino ma usa un alimentatore che fornisca corrente solo a lui.
Non so se dipende dal fatto che esso ha bisogno di un minimo che l'Arduino, con altre cose, non è in grado di fornire, oppure se ha bisogno di una corrente stabilizzata che lo stabilizzatore dell'Arduino non riesce a dare.

Capisco, esistono altri tipi di sensori termometrici che non danno questa tipologia di problema?

Forse quelli più cari della serie LM35** non sono afflitti da questo genere di disturbi. Ma non so dirtelo con certezza perché la mia esperienza personale si ferma agli LM35.

Capisco, grazie lo stesso per l'informazione che mi hai dato :slight_smile:

Se collego una batteria esterna da 9 V ad arduino, c'è la possibilità di risolvere il problema?

Prova ma non so se risolvi. Mediamente una pila da 9V fornisce sui 200/220 mA: l'USB fornisce 500 mA, mi pare.
Ma non hai un caricatore di un vecchio cell da cannibalizzare? Quelli sono perfetti: mediamente sono sui 5V-500mA.

Con LM35DZ ho avuto gli stessi problemi...mettendo un condensatore da 100nF tra Aref e GND le cose non sono cambiate molto, mettendolo invece su Vin e GND del sensore un po' la situazione è cambiata ma rimanevano comunque picchi di letture stranissime.

Nel datasheet c'è scritto che non è fatto per comandare carichi capacitivi più alti di 50 pF...ma non credo sia questo il caso...boh

Se non risolvi puoi provare con altri sensori tipo le termistori (NTC) o sensori digitali tipo il DS1624 o altri...fai un giro sul playground, c'è proprio la sezione temperatura!

Vedrò di provare un sensore digitale in modo da non avere problemi :slight_smile:
Grazie ancora.