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
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.
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
Post a Comment