//Pin A0 pour let capteur LM35 int outputpin = A0; float calibre = .9; int nbmes = 4; //Nb de mesures int myTemps[4]; int myTempsSort[4]; void setup() { Serial.println("Sketch started"); Serial.begin(9600); delay(2000); for (int i=0; i < nbmes; i++) { int analogValue = analogRead(outputpin); float millivolts = (analogValue/1024.0) * 3300 * calibre; myTemps[i] = millivolts; delay(1000); } show(myTemps, nbmes); sort(myTemps, nbmes); show(myTemps, nbmes); } void loop() { //boucle principale et unique for (int i = 0; i < (nbmes-1); i++) { myTemps[i] = myTemps[i + 1]; } int analogValue = analogRead(outputpin); float millivolts = (analogValue/1024.0) * 3300 * calibre; myTemps[nbmes - 1] = millivolts; show(myTemps, nbmes); for (int i = 0; i < nbmes; i++) { myTempsSort[i] = myTemps[i + 1]; } sort(myTempsSort, nbmes); show(myTempsSort, nbmes); float average = avg(myTempsSort, nbmes)/10; Serial.print("T Celsius: "); Serial.println(average); delay(3000); } void sort(int v[], int size) { for (int i=0; i < (size-1); i++) { for (int j = 0; j < (size-(i+1)); j++) { if (v[j] > v[j+1]) { int t = v[j]; v[j] = v[j+1]; v[j+1] = t; } } } } float avg(int v[], int size) { int nbval = 0; int calc = 0; for (int i=1; i < (size-1); i++) { calc += v[i]; nbval += 1; } return calc / nbval; } void show(int v[], int size) { for (int i=0; i < size; i++) { Serial.print(myTemps[i]); Serial.print(" "); } Serial.println(""); }