Trouver la valeur Min d'un tableau

Bonjour,

Mon projet est d’utiliser un capteur ultrason monter sur un servomoteur pour faire un radar, qui me permet de déterminer l’objet le plus proche.
Je fais tourner le moteur, fais un relever des mesures et les compare entre elle pour determiner la plus petite valeur.
Mon programme marche, mais je le trouve pas tres efficace, de plus je souhaite faire plus de relever et donc de comparaison et mon code devient tres moche.

Auriez vous des conseils ?

Merci et surtout JOYEUSE FETES

//  SERVO
#include <Servo.h>
Servo servo;
int angle=130;

//  ULTRASON
const int trigPin=7;
const int echoPin=11;
long distance=0;
long distanceCm=0;

//  DONNEES
int demarrage=0;
int record[9];
int comparaison[9][9];

//**************************** VOID SETUP ***
void setup(){
  Serial.begin(9600);

  //  SERVO
  servo.attach(3);
  servo.write(angle);
  delay(1000);

  //  ULTRASON
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT); 
}

//***************************** VOID LOOP ***
void loop(){
  if (demarrage==0){
    demarrage=1;
    for (int i=0; i<9; i++){

      servo.write(angle);
      angle=angle-10;

      digitalWrite(trigPin, HIGH);
      delayMicroseconds(10);
      digitalWrite(trigPin, LOW);
      distance=pulseIn(echoPin, HIGH);
      distanceCm=distance/58;
      record[i]=distanceCm;
      delay(500);
    }
    trie();
  }
}
//********************************** TRIE ***
void trie(){
  for (int a=0; a<9; a++){
    for (int b=0; b<9; b++){
      if (record[a]<=record[b]){
        comparaison[a][b]=1; 
      }
      else {
        comparaison[a][b]=0; 
      }
    }
  }
  if (comparaison[0][0]==1 && comparaison[0][1]==1 && comparaison[0][2]==1 && comparaison[0][3]==1 && comparaison[0][4]==1 && comparaison[0][5]==1 && comparaison[0][6]==1 && comparaison[0][7]==1 && comparaison[0][8]==1){
    Serial.println("POSITION 1");
  }
  if (comparaison[1][0]==1 && comparaison[1][1]==1 && comparaison[1][2]==1 && comparaison[1][3]==1 && comparaison[1][4]==1 && comparaison[1][5]==1 && comparaison[1][6]==1 && comparaison[1][7]==1 && comparaison[1][8]==1){
    Serial.println("POSITION 2");
  }
  if (comparaison[2][0]==1 && comparaison[2][1]==1 && comparaison[2][2]==1 && comparaison[2][3]==1 && comparaison[2][4]==1 && comparaison[2][5]==1 && comparaison[2][6]==1 && comparaison[2][7]==1 && comparaison[2][8]==1){
    Serial.println("POSITION 3");
  }
  if (comparaison[3][0]==1 && comparaison[3][1]==1 && comparaison[3][2]==1 && comparaison[3][3]==1 && comparaison[3][4]==1 && comparaison[3][5]==1 && comparaison[3][6]==1 && comparaison[3][7]==1 && comparaison[3][8]==1){
    Serial.println("POSITION 4");
  }
  if (comparaison[4][0]==1 && comparaison[4][1]==1 && comparaison[4][2]==1 && comparaison[4][3]==1 && comparaison[4][4]==1 && comparaison[4][5]==1 && comparaison[4][6]==1 && comparaison[4][7]==1 && comparaison[4][8]==1){
    Serial.println("POSITION 5");
  }
  if (comparaison[5][0]==1 && comparaison[5][1]==1 && comparaison[5][2]==1 && comparaison[5][3]==1 && comparaison[5][4]==1 && comparaison[5][5]==1 && comparaison[5][6]==1 && comparaison[5][7]==1 && comparaison[5][8]==1){
    Serial.println("POSITION 6");
  }
  if (comparaison[6][0]==1 && comparaison[6][1]==1 && comparaison[6][2]==1 && comparaison[6][3]==1 && comparaison[6][4]==1 && comparaison[6][5]==1 && comparaison[6][6]==1 && comparaison[6][7]==1 && comparaison[6][8]==1){
    Serial.println("POSITION 7");
  }
  if (comparaison[7][0]==1 && comparaison[7][1]==1 && comparaison[7][2]==1 && comparaison[7][3]==1 && comparaison[7][4]==1 && comparaison[7][5]==1 && comparaison[7][6]==1 && comparaison[7][7]==1 && comparaison[7][8]==1){
    Serial.println("POSITION 8");
  }
  if (comparaison[8][0]==1 && comparaison[8][1]==1 && comparaison[8][2]==1 && comparaison[8][3]==1 && comparaison[8][4]==1 && comparaison[8][5]==1 && comparaison[8][6]==1 && comparaison[8][7]==1 && comparaison[8][8]==1){
    Serial.println("POSITION 9");
  }
}

J ai oublié de préciser un truc important. Je veux trouve la valeur min MAIS également la position à laquelle la valeur a été lu.

bonjour,
je pense que tu te complique la vie

A ta place, je partirais sur une valeur distanceCm 10000
tu prend un angle à 0 position 0
si distanceCm inférieur à 10000
tu garde en mémoire la position et distanceCm

tu prends un autre angle +5 par exemple position +1
si distanceCm1 < distanceCm ====> distanceCm = distanceCm1 et tu garde angle
sinon angle +5
etc…

il te suffit par la suite de modifier juste la valeur angle pour modifier le nombre de comparaisons a faire

+1 avec infobarquee - vous pouvez construire cela à la volée

Ok MERCI je vais reprendre tout ça.

Pourquoi faire simple,..., ;)