Sto provando lo sketch per il sensore di temperatura mcp9700 e ho riscontrato un problema che vorrei porre alla vostra attenzione.
Dal serial monitor leggo 23,34 °C se alimentato a 3V o 5V diretti, mentre se lo alimento tramite un pin digitale leggo 27,65.
Dalle specifiche del sensore piccole differenze di tensione non dovrebbero dare letture differenti.
Secondo voi a cosa è dovuta questa differenza?
mancava il condensatore tra l'alimentazione del sensore e la terra come indicato in:
Comunuque prima di mettere high sul pin digitale metto un analogread che non memorizzo il da una temperatura di circa 0,5°C più alta: verificherò con un termometro al mercurio quale è più corrispondente.
float temp;
void setup(){
pinMode(4, OUTPUT);
Serial.begin(57600);
}
void loop(){
analogRead(4);
digitalWrite(4,HIGH);//eliminare questa riga se si collega ai 5V diretti
delay(1000);
temp=analogRead(4);
temp=((temp*5/1024)-0.5)*100; //sensore mcp9700 fisso a 5V consuma 6 microA
digitalWrite(4,LOW);
Serial.print("temperatura "); Serial.println(temp);
delay(5000);
}
Non si alimentano dei circuiti integrati da un pin di Arduino.
Quel sensore consuma cosí poca corrente che non ha senso spegnerlo. Consumi piú corente per pilotare il transistore.
Ciao Uwe