Issues with servo-mounted ultrasonic sensor on autonomous car - SOLVED


i working on autonomous rc car (http://arduino.cc/forum/index.php/topic,98763.msg746374.html).  for obstacle avoidance, using ping ultrasonic sensor mounted on servo sweeps , forth.  while can servo , sensor work fine independently, can't them work together.  i think due problem wiring.  any ideas on how solve it?

here wiring used in cases.


alone, servo works.
http://www.youtube.com/watch?v=emdmovtuyk0

code: [select]

#include <servo.h>
servo sensingservo;
int pos = 1300;

void setup()
{
 serial.begin(9600);
 sensingservo.attach(5);
}

void loop() {
//sweep
// results in 1 on , pass each second
// @ resolution of 36 measurements each pass

 for(pos = 800; pos < 1700; pos += 25)
 {
   sensingservo.writemicroseconds(pos);
   serial.print("position:  ");
   serial.print(pos);    
   serial.print("\n");
 }
 for(pos = 1700; pos > 800; pos -= 25)
 {                                
   sensingservo.writemicroseconds(pos);
   serial.print("position:  ");
   serial.print(pos);    
   serial.print("\n");
 }  
}


alone, sensor works.
http://www.youtube.com/watch?v=li_qkz5nrsw

code: [select]

#include <servo.h>
// setup ultrasonic distance sensor
const int pingpin = 2;
unsigned int duration, distance;

void setup() {
 serial.begin(9600);
}

void loop() {
   // read , print ultrasonic sensor distance
   pinmode(pingpin, output);
   digitalwrite(pingpin, low);
   delaymicroseconds(2);
   digitalwrite(pingpin, high);
   delaymicroseconds(5);
   digitalwrite(pingpin, low);
   pinmode(pingpin, input);
   duration = pulsein(pingpin, high);
   distance = duration / 74 / 2;    
   
   serial.print("  distance:  ");
   serial.print(distance);
   serial.print("\n");
}



but, when try put them together, servo sweeps erratically , sensor outputs bad data.  any ideas how fix issue?
http://www.youtube.com/watch?v=k3epij6ccte

code: [select]

#include <servo.h>
servo sensingservo;
int pos = 1300;

// setup ultrasonic distance sensor
const int pingpin = 2;
unsigned int duration, distance;

void setup()
{
 serial.begin(9600);
 sensingservo.attach(5);
}

void loop() {
 for(pos = 800; pos < 1700; pos += 25)
 {
   sensingservo.writemicroseconds(pos);
   // read , print ultrasonic sensor distance
   pinmode(pingpin, output);
   digitalwrite(pingpin, low);
   delaymicroseconds(2);
   digitalwrite(pingpin, high);
   delaymicroseconds(5);
   digitalwrite(pingpin, low);
   pinmode(pingpin, input);
   duration = pulsein(pingpin, high);
   distance = duration / 74 / 2;    
   
   serial.print("position:  ");
   serial.print(pos);    
   serial.print("  distance:  ");
   serial.print(distance);
   serial.print("\n");
 }
 for(pos = 1700; pos > 800; pos -= 25)
 {                                
   sensingservo.writemicroseconds(pos);
   // read , print ultrasonic sensor distance
   pinmode(pingpin, output);
   digitalwrite(pingpin, low);
   delaymicroseconds(2);
   digitalwrite(pingpin, high);
   delaymicroseconds(5);
   digitalwrite(pingpin, low);
   pinmode(pingpin, input);
   duration = pulsein(pingpin, high);
   distance = duration / 74 / 2;    
   
   serial.print("position:  ");
   serial.print(pos);    
   serial.print("  distance:  ");
   serial.print(distance);
   serial.print("\n");
 }  
}


thanks help.

hi,
read 2 links in signature, it's quite power issue, second link has video showing problem, first link presents solutions.

duane b

rcarduino.blogspot.com


Arduino Forum > Using Arduino > Project Guidance > Issues with servo-mounted ultrasonic sensor on autonomous car - SOLVED


arduino

Comments

Popular posts from this blog

Thread: PKI Client 5.00 install (for eToken Pro)

ATmega2560-Arduino Pin Mapping

Crossfader Arduino Tutorial