fdufnews:
pro3000:
cm et cm2... Bah j'ai besoin des valeurs de centimètre des deux capteurs et si je laissais cm2 avec le nom cm, bah ca ferait deux variables avec le même nom.C'est sur mais c'est pas une raison pour faire un code bordélique qui mélange les actions
Tu appelles une fonction microsecondsToCentimeters et dedans tu fais une acquisition sur un deuxième senseur. Cela rend le code incompréhensible et en plus au passage tu te gourres.
pro3000:
Et en gros,mon code ne marcherait pas du tout?C'est quelque chose qui arrive souvent lorsqu'on copie du code sans bien comprendre ce qu'il fait
Si tu découpais ton code proprement il fonctionnerait certainement et tu trouverais plus vite tes problèmes
Il faut écrire:
- des fonctions qui assurent l'acquisition de chacun des senseurs.
- des fonctions qui assurent des conversions de format.
- des fonctions qui prennent les décisions
- des fonctions qui envoient des consignes aux actionneurs.
Toutes ses fonctions tu les appelles les unes après les autres dans loop.Et puis aussi il faut lire un peu pour savoir comment fonctionne le C. Par exemple http://arduino.cc/en/Reference/Return
où tu vois que return fait quitter la fonction et donc tout le code situé après n'est jamais exécuté comme par exemple la lecture du second capteur.
Oui, je suis vraiment désolé de ma petite connaissance, mais nous avons eu que deux semaines de cours d'Arduino il y a 3 mois,soit les bases, et celles-ci sont vraiment très très loin de me permettre de faire un tel projet. De plus, nous sommes un membre de plus dans l'équipe, alors le prof veut que notre projet soit plus complexe...
Presque tout ce qui est dans ce code,je ne l'ai jamais vu en cours!
Donc ce que tu me dis, c'est que la fonction microsecondsToCentimeters ( qui converti les microsecondes calculées en centimètres? ) Ne marchera pas car je fais une acquisition sur un 2e capteur?
De plus,si je garde les deux fonctions return, tout ce qui suivra ne sera jamais exécuté? Je devrais donc les enlever?
Et ce que tu veux dire aussi, c'est que je devrais mélanger les commandes des deux capteurs? Ce qui voudrait dire que par exemple les fonctions qui effectuent l'acquisition de données des deux capteurs, je les mets ensembles,ceux qui assurent des conversions de format ensembles,etc?
Alors cela donnerait plutôt :
cm = microsecondsToCentimeters(duration);
for(int i = 0; i < avgrange ; i++)
{
anVolt = analogRead(maxsonar)/2;
sum += anVolt;
delay(10);
}
long microsecondsToInches(long microseconds)
inches = sum/avgrange;
cm2 = inches * 2.54;
sum = 0;
delay(500);
et ensuite les if?
Aussi j'ai un peu changé le code avec les servos.
Pour tourner à gauche: myservo.write(170);
à droite myservo.write(0);
et tout droit: myservo.write(90);
vraiment désolé de mon manque de connaissance... J'essaye de lire ce que je trouve sur internet aussi à côté