Mehrere LMP36 Temperatursensoren Mittelwert bilden/EthernetShield

Hallo
versuche schon seit einiger Zeit den Mittelwert meiner Temperaturmessungen angezeigt zu bekommen.
Mit einem habe ich es schon mal hinbekommen !
Aber es ist dann so ein durcheinader entstanden das ich mich nicht mehr ausgekennt habe.
Geht sicher irgend wie einfacher ?
Würde aber gerne von allen 4 sensoren den Mittelwert angezeigt bekommen.
Kann mir da bitte jemand helfen ?

So weit bin ich ich schon :grin:

//TMP36 Pin Variables
int sensorPin0 = A0; //the analog pin the TMP36's Vout (sense) pin is connected to
int sensorPin1 = A1;                        //the resolution is 10 mV / degree centigrade with a
int sensorPin2 = A2;                        //500 mV offset to allow for negative temperatures
int sensorPin3 = A3; 
/*
 * setup() - this function runs once when you turn your Arduino on
 * We initialize the serial connection with the computer
 */
void setup()
{
  Serial.begin(9600);  //Start the serial connection with the computer
                       //to view the result open the serial monitor 
}
 
void loop()                     // run over and over again
{
 //getting the voltage reading from the temperature sensor
 int reading0 = analogRead(sensorPin0);  
 int reading1 = analogRead(sensorPin1); 
 int reading2 = analogRead(sensorPin2); 
 int reading3 = analogRead(sensorPin3); 
 
 // converting that reading to voltage, for 3.3v arduino use 5
 float voltage0 = reading0 * 5.0; 
 voltage0 /= 1024.0; 
 float voltage1 = reading1 * 5.0; 
 voltage1 /= 1024.0; 
 float voltage2 = reading2 * 5.0; 
 voltage2 /= 1024.0; 
 float voltage3 = reading3 * 5.0; 
 voltage3 /= 1024.0; 
 
 // now print out the temperature
 float temperature0 = (voltage0 - 0.5) * 100 + 0 ;  //converting from 10 mv per degree wit 500 mV offset
 float temperature1 = (voltage1 - 0.5) * 100 + 0 ; //to degrees ((volatge - 500mV) times 100)
 float temperature2 = (voltage2 - 0.5) * 100 + 0 ; //bei + 0 kann die Abweichung der Kabellaenge hinzugerechnet werden
 float temperature3 = (voltage3 - 0.5) * 100 + 0 ;
 
 Serial.print(temperature0); Serial.println(" Grad im Keller Bad ");
 Serial.print(temperature1); Serial.println(" Grad Aussen ");
 Serial.print(temperature2); Serial.println(" Grad im Bad ");
 Serial.print(temperature3); Serial.println(" Grad in der Stube ");
 Serial.println(" ");
 
 delay(3000);                                     //waiting a second
}

Danke

Wieso nicht einfach mehrere Messungen in einer for-Schleife machen?

void loop()
{
 const byte ANZAHL_MESSUNGEN = 5;
 unsigned int reading0 = 0;
 unsigned int reading1 = 0;
 unsigned int reading2 = 0;
 unsigned int reading3 = 0;

 for(byte i = 0; i < ANZAHL_MESSUNGEN; i++)
 {
    reading0 += analogRead(sensorPin0); 
    reading1 += analogRead(sensorPin1);
    reading2 += analogRead(sensorPin2);
    reading3 += analogRead(sensorPin3); 
 }

 reading0 /= ANZAHL_MESSUNGEN;
 reading1 /= ANZAHL_MESSUNGEN;
 reading2 /= ANZAHL_MESSUNGEN;
 reading3 /= ANZAHL_MESSUNGEN;

Eventuell noch am Ende in der for-Schleife ein kurzes Delay einbauen, damit etwas mehr Abstand zwischen den Messungen ist

Danke Serenifly :slight_smile:
hast mir sehr geholfen ,hätte sicher noch ewig gebraucht !
Ist mein erstes Projekt mit dem Arduino ,macht mir aber super Spass.
Habe noch viel vor damit....
Als nächstes kommt das Ethernet Shield...
Vielleicht kannst du mir wieder mal helfen .

Danke nochmals XD