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

code: [select]
//  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;
    (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(){
  (int a=0; a<9; a++){
    (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 été lu.


Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Trouver la valeur Min d'un tableau


arduino

Comments

Popular posts from this blog

sd card Could not find FAT16/FAT32 partition [solved]

Sketch upload fails with Java error (___REMOVE___/bin/avrdude)!

DHT11 Time out error using v0.4.1library