i dont get it
i didnt know waht name post
well...
here problem
i wanted obstacle avoiding robo few months , finished (using ping ) simple turn away
but want toi have servo hookedup , make theright , left
here code using
now problem until detects obstacle keeps quiet i.e dosent move inch
and after detecting obstacle looks in 1 direction (180 degrees of servo )
and rotates 1 motor

i dont know did wrong guess coding part
well...
here problem
i wanted obstacle avoiding robo few months , finished (using ping ) simple turn away
but want toi have servo hookedup , make theright , left
here code using
code: [select]
/////obstacle avoiding //////
#include <servo.h>
const int pingpin = 10;
#define ledpin_right 13
#define ledpin_left 12
int motor_one_pin_one=3;
int motor_one_pin_two=4;
int motor_two_pin_one=5;
int motor_two_pin_two=6;
int pos = 0 ;
servo myservo;
long dist_right =0;
long dist_left = 0;
void setup()
{
myservo.attach(9);
serial.begin(9600);
pinmode(ledpin_right,output);
pinmode(motor_one_pin_one,output);
pinmode(motor_one_pin_two,output);
pinmode(motor_two_pin_one,output);
pinmode(motor_two_pin_two,output);
}
////loop////
void loop ()
{
long duration, cm;
pinmode(pingpin, output);
digitalwrite(pingpin, low);
delaymicroseconds(2);
digitalwrite(pingpin, high);
delaymicroseconds(5);
digitalwrite(pingpin, low);
pinmode(pingpin, input);
duration = pulsein(pingpin, high);
cm = microsecondstocentimeters(duration);
serial.print(cm);
serial.print("cm");
serial.println();
///servo neck centering///
myservo.write(80);
if (cm > 10 )
{
digitalwrite(motor_one_pin_one,high);
digitalwrite(motor_two_pin_one,low);
digitalwrite(motor_one_pin_two,high);
digitalwrite(motor_two_pin_two,low);
}
else if (cm < 10 )
{
drive_stop();
myservo.write(10);
delay(150);
long duration, cm;
pinmode(pingpin, output);
digitalwrite(pingpin, low);
delaymicroseconds(2);
digitalwrite(pingpin, high);
delaymicroseconds(5);
digitalwrite(pingpin, low);
pinmode(pingpin, input);
duration = pulsein(pingpin, high);
dist_left = microsecondstocentimeters(duration);
serial.print(dist_right);
serial.print("cm right");
pinmode(pingpin, output);
digitalwrite(pingpin, low);
delaymicroseconds(2);
digitalwrite(pingpin, high);
delaymicroseconds(5);
digitalwrite(pingpin, low);
pinmode(pingpin, input);
duration = pulsein(pingpin, high);
dist_right = microsecondstocentimeters(duration);
myservo.write(180);
delay(150);
serial.print(dist_left);
serial.print("cmleft");
if(((dist_right)&&(dist_left))<(10))
{
digitalwrite(ledpin_left,low);
digitalwrite(ledpin_right,low);
drive_360();
}
else if((dist_right)<(dist_left))
{
digitalwrite(ledpin_left,high);
digitalwrite(ledpin_right,low);
drive_left();
}
else ((dist_right)>(dist_left));
{
digitalwrite(ledpin_left,low);
digitalwrite(ledpin_right,high);
drive_right();
}
}
}
//drive , other functions//
long microsecondstocentimeters(long microseconds)
{
return microseconds / 29 / 2;
}
void drive_forward()
{
digitalwrite(motor_one_pin_one,high);
digitalwrite(motor_two_pin_one,low);
digitalwrite(motor_one_pin_two,high);
digitalwrite(motor_two_pin_two,low);
return;
}
void drive_stop()
{
digitalwrite(motor_one_pin_one,low);
digitalwrite(motor_two_pin_one,low);
digitalwrite(motor_one_pin_two,low);
digitalwrite(motor_two_pin_two,low);
return;
}
void drive_right()
{
digitalwrite(motor_one_pin_one,high);
digitalwrite(motor_two_pin_one,low);
digitalwrite(motor_one_pin_two,low);
digitalwrite(motor_two_pin_two,low);
delay(500);
return;
}
void drive_left()
{
digitalwrite(motor_one_pin_one,low);
digitalwrite(motor_two_pin_one,low);
digitalwrite(motor_one_pin_two,high);
digitalwrite(motor_two_pin_two,low);
delay(500);
return;
}
void drive_360()
{
digitalwrite(motor_one_pin_one,high);
digitalwrite(motor_two_pin_one,low);
digitalwrite(motor_one_pin_two,low);
digitalwrite(motor_two_pin_two,low);
delay(500);
return;
}
now problem until detects obstacle keeps quiet i.e dosent move inch
and after detecting obstacle looks in 1 direction (180 degrees of servo )
and rotates 1 motor

i dont know did wrong guess coding part
and if cm == 10 ?
aside: why perpetuate appallingly bad ping driver code?
it ain't broke don't fix it?
aside: why perpetuate appallingly bad ping driver code?
it ain't broke don't fix it?
Arduino Forum > Forum 2005-2010 (read only) > Software > Interfacing > i dont get it
arduino
Comments
Post a Comment