I need code to run to modified 360 degrees servo motors.

I have tinkered with that code some more and added two "bump" switches to my bot. my ping sensor has good response approaching objects head on, however while approaching objects at near parallel angles it doesn't see them. bot has a wide platform and the ping sensor has a narrow field :frowning: A friend had a great idea also. Wrapping a length of wire several times around the positive wire to each drive servo could induce a small current flow with respect to ground. this could be used for current sensing for overload protection :slight_smile: my next goal is to find a way to smooth out the start/stop speed of my servos. they shift directions rapidly. best of luck to you on your bot this weekend, I am sure you will need to tinker with the values that return the servos to center or stop position... here is my latest code.

//remember that the power for the servos comes from the voltage source, not the arduino board. only the signal wire "white or yellow" //is connected to the arduino board. no motor shield required .
//notes are written after these forward slashes to help explain the code
//IRpin and sharp ir sensor not working yet, ignore for now...

#include <Servo.h> //include Servo library information from arduino folder
const int RForward = 47; //speed value of drive servo, value 0 for full speed rotation
const int RBackward = 180; //speed value of drive servo, value 180 for full speed rotation
const int LForward = RBackward; //servos rotate opposite directions to drive in same direction
const int LBackward = RForward; //servos rotate opposite directions to drive in same direction
const int RNeutral = 95; //value 90 is default for center "stop", my servo is a little off
const int LNeutral = 95; //continuous rotation servo center "stop" position
const int pingPin = 7;  //signal pin on parallax ping sensor connected to arduino pin 7
const int dangerThresh = 40; //threshold limit for obstacles (in cm), 10 by default
const int IRpin = A0;  //Sharp infrared sensor connected to arduino pin analog 0
int switchPin = 2;  // normally open bumper switch connected to arduino pin 2 and ground
int leftDistance, rightDistance; //store values for later use to compare ping readings 
Servo panMotor; //servo that pans the ping sensor 
Servo leftMotor;  //continuous rotation servo that drives the left wheel
Servo rightMotor; //continuous rotation servo that drives the right wheel

long duration; //time it takes to recieve PING))) signal
void setup()
{
  rightMotor.attach(11); //right drive servo signal wire connected to arduino pin 11
  leftMotor.attach(10);  //left drive servo signal wire connected to arduino pin 10
  panMotor.attach(6); //pan servo for ping sensor connected to arduino pin 6
  pinMode(switchPin, INPUT);  //N.O. bumper switch connected to pin 2 and ground
  digitalWrite(switchPin, HIGH);// turns on 20k pullup resistor so switchPin will read HIGH unless triggered LOW
  pinMode(IRpin, INPUT); // set anolog pin 0 as sharp infrared sensor input
  float volts=analogRead(IRpin)*0.0048828125; ;  //read voltage from sharp ir sensor
  float distance = 65*pow(volts, -1.10);  //calculate distance from voltage reading above
  panMotor.write(83); //set PING))) sensor pan angle to center "90 by default"
}

void loop()  //after setup do these actions in a countinuous loop
{
  int distanceFwd = ping(); //ping stright ahead continuously and store the reading for comparison
  if (digitalRead(switchPin) == HIGH  && distanceFwd>dangerThresh) //if switch reads high and ping is greater distance than threshold 
  
  {
    leftMotor.write(LForward); //move forward
    rightMotor.write(RForward); //move forward
  }
  else //otherwise if the path is blocked
  {
    leftMotor.write(LNeutral); //stop left drive motor
    rightMotor.write(RNeutral); //stop right drive motor
    panMotor.write(20); //turn ping sensor right, 0 for full right
    delay(300);        //wait this many milliseconds for servo to reach position
    rightDistance = ping(); //ping and calculate distance
    delay(100);  //wait this many milliseconds to store the measurement
    panMotor.write(135); //turn ping sensor left, 180 for full left
    delay(300);  //wait this many milliseconds for servo to reach position
    leftDistance = ping(); //ping and calculate distance
    delay(100);  //wait this many millisecondsto store measurement
    panMotor.write(83); //return to center, 90 for center
    delay(300);  //wait this many milliseconds for servo to reach position
    compareDistance(); //move on to next step "compare distance"
  }
}
  
void compareDistance()
{
  if (leftDistance>rightDistance) //if left is less obstructed 
  {
    leftMotor.write(LBackward); //rotate left drive servo backward
    rightMotor.write(RForward); //rotate right drive servo forward
    delay(400); //run motors this many milliseconds
  }
  else if (rightDistance>leftDistance) //otherwise if right is less obstructed
  {
    leftMotor.write(LForward); //rotate left drive servo forward
    rightMotor.write(RBackward); //rotate right drive servo backward
    delay(400);  //run motors this many milliseconds
  }
   else //otherwise if they are equally obstructed
  {
    leftMotor.write(LForward); //rotate left drive servo forward
    rightMotor.write(RBackward); //rotate right drive servo backward
    delay(1500); //run motors this many milliseconds
  }
}

Moderator edit: code tags added. Again.