Bonjours,
je voudrais simplement si l'on pourrait m'expliquer ce code :
void move(int sens) // la fonction move prend comme parametre sens
{
/*une instruction switch évalue la valeur d'une variable sur
les valeurs spécifiées dans les déclarations de cas.*/
int m1 = 0, m2 = 0;
switch(sens) // test des valeurs de ma variable "sens"
{
/*en fonction du déplacement, on indique dans quel sens doit
se déplacer chaque moteur.*/
case DROITE: m1 = 1; m2 = -1;
break;
case GAUCHE: m1 = -1; m2 = 1;
break;
case AVANT: m1 = 1; m2 = 1;
break;
case ARRIERE: m1 = -1; m2 = -1;
break;
}
enAvant(SERVOG, m1*VMAX);
enAvant(SERVOD, m2*VMAX);
Ainsi que celui-ci,
void enAvant(int s, int rapide)
{
//Vitesse :
// 0 -> 0; 1 -> 1; 2 -> 3; 3 -> 8; 4 -> 10; v => 5 -> 30
int tab[6] = {0,1,3,8,10,30}; //
int pos = getNeutral(s); /* on definie la fonction
pos qui garde une valeur neutre
On effectue des opération sur des variable avec une autre variable.*/
int acc;
if (rapide < 0) // si la vitesse est inferieure à 0
acc = - tab[abs(rapide)];
else
acc = tab[rapide];
if(s == SERVO) // on definie s = sevog
servo.write(pos += acc); // servog =
else
servo.write(pos -= acc);
}
Car je ne comprend pas tout ^^
Code Arduino pour Roby
Débuté par EleCarh, févr. 05 2013 02:36
2 réponses à ce sujet
#1
Posté 05 février 2013 - 02:36
#2
Posté 05 février 2013 - 06:53
Tu as 2 moteurs, gauche et droite (m1 et m2), pouvant tourner chacun dans 2 sens (+1 = avance, -1 = recule), ce qui fait 4 combinaisons à tester :
Gauche normal, Droite normal (m1 = m2 = +1) -> marche avant
Gauche inverse , Droite inverse (m1 = m2 = -1) -> marche arrière
Gauche normal, Droite inverse (m1 = +1 et m2 = -1) -> pivote à droite
Gauche inverse , Droite normal (m1 = - 1 et m2 = +1) -> pivote à droite
Le 2d code prévoit 6 niveaux de vitesse par paliers, la tableau tab[6] stocke ces valeurs à atteindre selon l'indice du tableau qui varie de 0 à 5 (6 éléments).
Il y a 2 sens de rotation possibles (test de signe).
Gauche normal, Droite normal (m1 = m2 = +1) -> marche avant
Gauche inverse , Droite inverse (m1 = m2 = -1) -> marche arrière
Gauche normal, Droite inverse (m1 = +1 et m2 = -1) -> pivote à droite
Gauche inverse , Droite normal (m1 = - 1 et m2 = +1) -> pivote à droite
Le 2d code prévoit 6 niveaux de vitesse par paliers, la tableau tab[6] stocke ces valeurs à atteindre selon l'indice du tableau qui varie de 0 à 5 (6 éléments).
Il y a 2 sens de rotation possibles (test de signe).
Christian
#3
Posté 06 février 2013 - 03:38
Merci beaucoup !!!!
1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users













