Media Valori TMP36

Ripeto quanto detto nel post #4, quel codice funziona ma contiene un piccolo e sanguinoso piccolo errore nascosto che dopo vani tentativi di ricreare un nuovo codice finalmente è venuto alla luce.

Quell'errore è senza dubbio quello che ti ha dato problemi con il for e sicuramente di dichiarare la variabile "i" due volte, sia all'inizio come globale che all'interno del for come locale e con questo rispondo al tuo post #5.
Nella tua dichiarazione for:

 for(int i=0;i<=7;i++)**;**{

Cosa diavolo fa quel ";" dipinge?. :face_with_symbols_over_mouth:Toglilo!
In questo modo funzionerà correttamente, anche se non capisco perché salvi i valori in una matrice se non li leggi in seguito.

Togliendo questo e seguendo i consigli di @fratt e @nello791 come dicevo prima l'idea originale potrebbe essere così:

#include <LiquidCrystal.h>
#define rs 12
#define en 11
#define d4 5
#define d5 4
#define d6 3
#define d7 2
#define LED 13

int sensorPin = 0;
float temp = 0;
int misure;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);


void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  pinMode (LED, OUTPUT);
}

void loop() {
  temp = 0;
  for (int i = 0; i <= 7; i++) {
    sensorPin = analogRead(0); 
    misure = (0.488 * sensorPin - 50);
    temp = temp + misure;
    delay (50);
  }
  temp = temp / 8.0;
  Serial.println(temp);
  delay(1000);
}

Saluti.

1 Like