I collegamenti elettrici sono corretti, +5V sul primo pin, pin centrale uscita collegato a AI1 e terzo pin GND collegato a GND di arduino.
In uscita ho i seguenti valori:
Testato:
scusa ma tu hai connesso il sensore all'ingresso asnalogico 1, allora devi dichiarare:
int PIN_TEMP=A1;
tu invece hai messo 1 che sarebbe il tx di arduino
No, quando si usa analogRead il valore del pin passato è implicitamente riferito agli ingressi analogici. Quindi analogRead(1) equivale a analogRead(A1).
Concordo con te che per rendere più chiaro il codice è sempre consigliabile utilizzare Ax per indicare i pin analogici.
non ho un lm35 altrimenti ti facevo una prova pratica, ma ci sono infiniti esempi di quel sensore, deve essere un banale probelma di connessione, perche' quel 85,93 esce fuori proprio in condizioni di sensore sconnesso
Non del tutto. Metti un delay(3000) nel setup subito dopo il Serial.begin per evitare che tu non riesca ad aprire in tempo il terminale ed Arduino riempa il buffer della seriale.
Metti anche un Serial.println(sensorValue, DEC) per avere la stampa in formato numerico.
@Uwe:
già, mi ero scordato di dire che appunto Zeus usava il riferimento a 1,1V ed aveva perciò messo il moltiplicatore 1.05 (approssimazione personale sua).
allora i passi sono questi:
Prima cosa leggere il valore grezzo dalla porta:
int lettura = analogRead(0);
Poi la convertiamo in millivolt (float):
float voltaggio = lettura * 5.0;
voltaggio /= 1024.0;
ora la trasformiamo in una temperatura
float temperaturaC = (voltaggio - 0.5) * 100 ;
Adesso il valore è pronto per essere stampato sulla seriale:
Serial.print(temperaturaC);
Serial.println("°");
fine