Aller au contenu


Rather Be

Inscrit(e) (le) 29 mars 2014
Déconnecté Dernière activité avril 14 2014 06:56
-----

Messages que j'ai postés

Dans le sujet : Arduino Capteur ultrason + servo

13 avril 2014 - 04:56

Le fonctionnement du If , je l'ai bel et bien aquis , j'ai fais plusieurs programme avec ect ... Changer le nom de " augmente " n'y fais rien , ce n'est pas ce qui me genait . Par contre , tu as touché dans le mille lorsque tu m'expliques :


Maintenant, pour revenir à l'exemple de Mike, par convention, l'évaluation booléenne d'une variable de type entier est la suivante : si la variable vaut zéro (entier), alors son équivalent booléen est "false". Si la variable a une valeur non-nulle (1, mais aussi 2, -8, etc), l'équivalent booléen de la variable est "true". Écrire
if(toto)


C'est la meme chose que d'écrire :
if(toto!=0)


Ce que je ne savais pas ! :drinks:/>/>/>/> Ducoup le code s'éclaircit . En revanche , je ne comprend toujours pas l'interet de " augmente " , quel son role dans le code ? On peut s'en passer non ?

Edit : J'dois me tromper vis à vis des balises , à l'aide :tatice_03:/>/>

Dans le sujet : Arduino Capteur ultrason + servo

13 avril 2014 - 03:29

Et dans le cas où j'ai rien comrpis , comment on fais ? :on_the_quiet:

La boucle " for " ne me pose plus de probleme , j'ai bien saisi . En revanche , je ne comprend pas ta variable " augmente " . J'essai de me traduire le code :


int pos =0; // On met une variable qui correspond à la position , jusqu'ici pas de soucis ..
int augmente =1; // On met une variable pour faire joli , pas de soucis ici non plus :on_the_quiet: Non , sérieusement , je ne comprend pas ici ..

while (cm<20)  // "While" donc fonction qui signifie "tant que" , pas de probleme non plus , tant que ma condition ( cm<20 ) est vraie , on execute le code entre les accolades et ...
{
if (augmente) // "If" donc , litéralement " si " augmente ... Si augmente ? Si augmente quoi ? Remplacons augmente par "add" . Si add ? Oui mais si add quoi ? Ici , je commence à me perdre ..
pos++;        // pos++ qui signifie que l'on ajoute 1 à la variable " pos " qui , initiallement égale 0 , à chaque boucle .
if(!augmente) // If ( !augmente ) Le " ! " signifie différent si je me souvient bien . Donc " Si augmente est différent . Différent de quoi ?
pos--;        // pos-- , à l'inverse , on enleve  à chaque boucle .
if(pos>180)   // If " pos " est supérieur à 180 
augmente =0;  // augmente égal 0 
if (pos<0)    // Bon la , pareil mais à l'inverse .. Cela n'empeche que je ne comprend pas pourquoi faire ca .
augmente =1;  // Idem .
myservo.write(pos); // Myservo.write , monservo.écrit la valeur de pos ( qui , ne dépasse pas 180 logiquement )
delay(15);  // Pause dans le programme de 15 millisecondes
}



En résumé , partout où il y a augmente je ne comprend pas , des explications seraient les bienvenues ;)


Edit : Quelles sont les balises pour écrire du code dans nos post ?

Dans le sujet : Arduino Capteur ultrason + servo

13 avril 2014 - 09:15

Donc la solution serait :

void loop()
{
for(pos = 0; pos < 180; pos += 1)
{
myservo.write(pos);
delay(15);
}
for(pos = 180; pos>=1; pos-=1)
{
myservo.write(pos);
delay(15);
}
}

J'ai beaucoup de mal avec la boucle " for " , c'est pour ca que j'ai pris " while " . Quand à pourquoi j'ai choisi random ? Simplement parce que c'etait la seule solution que je connaissais pour faire tourner le servo sur une plage . Biensur , ca ne me donnait pas le resultat attendu ..

Merci pour ton aide , je test ca dessuite !! :drag_02: