Pages: [1]   Go Down
Author Topic: [résolu]comment utiliser plusieurs capteurs a ultrason  (Read 2167 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour,
je souhaite utiliser 2 capteurs a ultrason comme ceci :
si un des capteurs détecte quelque chose , il commande deux servos
j'arrive a utiliser un capteur, mais pas deux.
merci de m'aider.
ugo
PS:voila le code
Quote
#include <Servo.h>
#include <Ultrasonic.h>

const int Trig = 3;     // pin "Trig" du HC-SR04 connectée à pin 3 de l'Arduino
const int Echo = 2;     // pin "Echo" du HC-SR04 connectée à pin 2 de l'Arduino
Servo servo1,servo2,servo3;
long cm;                // variable pour stocker la distance de l'objet en cm //variable qui stocke la mesure du temps
Ultrasonic HCSR04(Trig,Echo);   //   lira l'heure à chaque boucle

void setup()
{  
   servo1.attach(9);
   servo2.attach(10);
   servo3.attach(smiley-cool;

}  

void loop()
{
     servo1.write(0);
servo2.write(0);
servo3.write(0);
delay(1500);
servo3.write(180);
delay(1500);
   cm = HCSR04.convert(HCSR04.timing(), 1);
  
  if(cm <2  )  
{ servo1.write(0);
servo2.write(180);
servo3.write(90);
delay(1500);
}
}

« Last Edit: March 01, 2013, 10:30:52 am by ugo1999 » Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1991
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour,
normal,
il faut affecter 2 autres pins pour l'autre capteur.
tu utilise les même pins pour les 2, donc ca le fait pas du tout. smiley-wink
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

je comprend bien mais je ne sais pas comment faire car si j'ecris ca:
#include <Servo.h>
#include <Ultrasonic.h>

const int Trig (3,5);    
const int Echo ( 2,4);    
Servo servo1,servo2,servo3;
long cm;                // variable pour stocker la distance de l'objet en cm //variable qui stocke la mesure du temps
Ultrasonic HCSR04(Trig,Echo);   //   lira l'heure à chaque boucle

void setup()
{  
   servo1.attach(9);
   servo2.attach(10);
   servo3.attach(smiley-cool;

sa ne marche pas !!
merci de me repondre
« Last Edit: March 01, 2013, 07:27:50 am by ugo1999 » Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Et si tu faisais plutôt :

Code:
const int Trig_1 =3;   
const int Echo_1= 2; 
const int Trig_2 =5;   
const int Echo_2 =4; 
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5213
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Et si tu faisais plutôt :

Code:
const int Trig_1 =3;   
const int Echo_1= 2; 
const int Trig_2 =5;   
const int Echo_2 =4; 
Salut JF (tu tousse encore ?  smiley-mr-green  )
Il faut voir si la lib utilisée gere les sonar multiples et gere les timings entre eux
sinon il y cette lib compatible avec le hard qui le fait avec filtrage (à priori)
http://code.google.com/p/arduino-new-ping/
Logged

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3820
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Et faire une autre instanciation
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

excusez moi encore mais le detecteur "HCSRO4_2" ne detecte toujours rien ...
je vous remercie d'avance de votre aide.
ugo
ps: voici le code:
#include <Servo.h>
#include <Ultrasonic.h>

const int Trig_1 =3;   
const int Echo_1= 2; 
const int Trig_2 =5;   
const int Echo_2 =4;
Servo servo1,servo2;
long cm;
Ultrasonic HCSR04(Trig_1,Echo_1);
Ultrasonic HCSRO4_2(Trig_2,Echo_2);//   lira l'heure à chaque boucle

void setup()

   servo1.attach(9);
   servo2.attach(10);



void loop()
{
     servo1.write(0);
servo2.write(0);
   cm = HCSR04.convert(HCSR04.timing(), 1);
  cm = HCSRO4_2.convert(HCSR04.timing(),1);
 
  if(cm<20  ) 
{ servo1.write(0);
servo2.write(180);
delay(1500);
}
}
Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut JF (tu tousse encore ?  smiley-mr-green  )

C'est le plus pénible....
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

comment peut-on utiliser la librairie new ping dont artouste a parlé pour controler les capteurs ???
merci
Logged

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3820
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Y'a une erreur  :

Code:
cm = HCSR04.convert(HCSR04.timing(), 1);
  cm = HCSRO4_2.convert(HCSR04.timing(),1);

C'est pas le bon timing et tu écrases cm :

Code:
cm = HCSR04.convert(HCSR04.timing(), 1);
  cm2 = HCSRO4_2.convert(HCSR04_2.timing(),1);
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

MERCI !!!!
finalement j'ai trouvé le problème grace a vous tous et en particulier B@tto
j'avais oublié ceci :
Quote
else if (cm2<20)
{ servo1.write(0);
servo2.write(180);
delay(1500);

ce qui donne :
#include <Servo.h>
#include <Ultrasonic.h>

const int Trig_1 =3;   
const int Echo_1= 2; 
const int Trig_2 =5;   
const int Echo_2 =4;
Servo servo1,servo2;
long cm;
long cm2;
Ultrasonic HCSR04(Trig_1,Echo_1);
Ultrasonic HCSRO4_2(Trig_2,Echo_2);//   lira l'heure à chaque boucle

void setup()

   servo1.attach(9);
   servo2.attach(10);



void loop()
{
     servo1.write(0);
servo2.write(0);
   cm = HCSR04.convert(HCSR04.timing(), 1);
  cm2 = HCSRO4_2.convert(HCSRO4_2.timing(),1);
 
  if(cm<20  ) 
{ servo1.write(0);
servo2.write(180);
delay(1500);}
else if (cm2<20)
{ servo1.write(0);
servo2.write(180);
delay(1500);
}
}
je vous remercie tous et j'uploaderai mon travail dans les prochain jours.(surprise  smiley-razz)
merci encore
 ugo
Logged

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5213
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut JF (tu tousse encore ?  smiley-mr-green  )

C'est le plus pénible....
[HS]
Faut pas pousser... en même temps  smiley-evil ------>[] déjà loin  smiley-cool
Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pffffff..... smiley-mr-green
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Pages: [1]   Go Up
Jump to: