Aller au contenu


Photo

probleme temps de lecture avec 3 sonars...


  • Veuillez vous connecter pour répondre
4 réponses à ce sujet

#1 bennurre

bennurre

    Habitué

  • Membres
  • PipPip
  • 160 messages
  • Gender:Male

Posté 26 décembre 2011 - 07:03

bonjour ! j'espère que tout le monde à passé de bonne fetes.!!!

J'ai une petite question ...
je fais des tests sur une plateforme avec 3 sonars et 2 moteurs...
et je rencontre un probleme, j'ai fait 3 conditions:
si distance G< 15 alors tourne à D
si distance D< 15 alors tourne à G
si distance AV< 15 alors recule
else avance
et malheureusement ce n'est pas aussi smple, en faite, la premiere ligne pour la D est ok, elle marche bien, par contre le 2ème pour la G on commence à ressentir des lags dans les moteurs, des accoups, qui je pense sont dû au temps d'access des sonards... et la marche AR est la ligne qui marche nikel.
bref les détections et les actions sont loin d'être fluide !!! j'ai fait plein de modif dans mes lignes de codes mais là c'est ce qui est le mieux ! lol

int E1 = 6;   
int M1 = 7;
int E2 = 5;                         
int M2 = 4;                           

#include "Ultrasonic.h"

#define  TRIG_PIN_A  8
#define  ECHO_PIN_B  9
Ultrasonic OurModule_G(TRIG_PIN_A, ECHO_PIN_<img src='http://www.robot-maker.com/forum/public/style_emoticons/<#EMO_DIR#>/cool.gif' class='bbc_emoticon' alt='B)' />;

#define  TRIG_PIN_C  10
#define  ECHO_PIN_D  11
Ultrasonic OurModule_M(TRIG_PIN_C, ECHO_PIN_D);

#define  TRIG_PIN_E  12
#define  ECHO_PIN_F  13
Ultrasonic OurModule_D(TRIG_PIN_E, ECHO_PIN_F);



void setup() 
{ 
    pinMode(M1, OUTPUT);   
    pinMode(M2, OUTPUT); 
    avance();
} 



void loop() 
{ 
  
  
        if ( (OurModule_D.Ranging(CM)) < 17 & (OurModule_D.Ranging(CM)) < (OurModule_G.Ranging(CM)))
		{
	 	droite();
		delay(50);
                }


	if ( (OurModule_G.Ranging(CM)) < 17 & (OurModule_G.Ranging(CM)) < (OurModule_D.Ranging(CM)))
		{
	 	gauche();
		delay(50);
                }
	


	if ( (OurModule_M.Ranging(CM)) < 13 )
		{
	 	recul();
                delay(750);
                }
			
            else
  
                  avance();
     
}


void avance()
{
  digitalWrite(M1,HIGH);   
    	digitalWrite(M2, HIGH);       
   	analogWrite(E1, 255);  		
   	analogWrite(E2, 255); 
}


void droite()
{

   
    digitalWrite(M1,HIGH);   
    digitalWrite(M2,HIGH);       
    analogWrite(E1, 255);   
    analogWrite(E2, 10);   
    
}


void gauche()
{

   
    digitalWrite(M1,HIGH);   
    digitalWrite(M2,HIGH);       
    analogWrite(E1, 10);   
    analogWrite(E2, 255);  
     
}


void recul()
{

   
    digitalWrite(M1,LOW);   
    digitalWrite(M2,LOW);       
    analogWrite(E1, 75);   
    analogWrite(E2, 175);   
       
}

j'ai essayer de réécrire le prog en utilisant DO WHILE... mais ça ne marche pas du tout...

voici une petite vidéo pour explication...

http://youtu.be/-yuA7bORxgM

...................................................

Mon premier projet arduino...

Blog de ma Tondeuse RC...

...................................................


#2 Nathan

Nathan

    Membre

  • Membres
  • 28 messages

Posté 27 décembre 2011 - 02:40

Salut,

Dans tes instructions IF, tu utilises &, l'opérateur AND bit à bit alors que je pense que tu veux utiliser l'opérateur booléan AND &&.
Change tes & par des && et dis moi si tu as du changement ;)

#3 bennurre

bennurre

    Habitué

  • Membres
  • PipPip
  • 160 messages
  • Gender:Male

Posté 27 décembre 2011 - 03:05

j'ai trouvé !!!!!!!!!!! hummmm j'ai mal au crane !!!!


changement des if par while! et ca marche nikel de chez nikel !!!!

...................................................

Mon premier projet arduino...

Blog de ma Tondeuse RC...

...................................................


#4 Microrupteurman

Microrupteurman

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 210 messages
  • Gender:Male
  • Location:Aquitaine,Gironde

Posté 27 décembre 2011 - 11:41

Salut, quelle sont tes capteurs ?

 
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter :  https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/

Besoin d'une impression 3D grand format ? Contactez moi !
 


#5 bennurre

bennurre

    Habitué

  • Membres
  • PipPip
  • 160 messages
  • Gender:Male

Posté 28 décembre 2011 - 02:18

Salut, quelle sont tes capteurs ?



des hc-sr04

...................................................

Mon premier projet arduino...

Blog de ma Tondeuse RC...

...................................................





0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users