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

DHT11 Time out error using v0.4.1library

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

Arduino Uno + KTY81/210 temperature sensor