Hi,
I have two servos controlling a little bot. I am using this to learn how to use the Arduino. I also did many general tutorials to get familiar. Anyways, I want my bot to move forward, turn one way, turn the other way, and reverse back all with ramping into and out of each maneuver. It almost all works well. It goes forward, turns, turns, and comes back and all the ramping except at the very end it just keeps reversing. I feel like I should see what's wrong here but I just don't. Maybe I've been looking at it too long, but I had this issue yesterday, thought maybe I just needed a break and picked it up again today. No luck. I will post the whole sketch because it's not very big. The problem is at the end of the last maneuver, full speed backwards w/ ramping.
// ForwardLeftRightBackwardRamping// Move forward, left, right, then backward for testing and tuning w/ ramping.
#include <Servo.h> // Include servo library
Servo servoLeft; // Declare left and right servos
Servo servoRight;
void setup() // Built-in initialization block
{
tone(4, 3000, 1000); // Play tone for 1 second
delay(1000); // Delay to finish tone
servoLeft.attach(13); // Attach left signal to P13
servoRight.attach(12); // Attach right signal to P12
// Full speed forward
for(int speed = 0; speed <= 100; speed += 2)
{
servoLeft.writeMicroseconds(1500+speed);
servoRight.writeMicroseconds(1500-speed);
delay(20);
}
delay(1500);
for(int speed = 100; speed >= 0; speed -= 2)
{
servoLeft.writeMicroseconds(1500+speed);
servoRight.writeMicroseconds(1500-speed);
delay(20);
}
// Turn left in place
for(int speed = 0; speed <= 100; speed += 2)
{
servoLeft.writeMicroseconds(1500-speed);
servoRight.writeMicroseconds(1500-speed);
delay(20);
}
for(int speed = 100; speed >= 0; speed -= 2)
{
servoLeft.writeMicroseconds(1500-speed);
servoRight.writeMicroseconds(1500-speed);
delay(20);
}
// Turn right in place
for(int speed = 0; speed <= 100; speed += 2)
{
servoLeft.writeMicroseconds(1500+speed);
servoRight.writeMicroseconds(1500+speed);
delay(20);
}
for(int speed = 100; speed >= 0; speed -= 2)
{
servoLeft.writeMicroseconds(1500+speed);
servoRight.writeMicroseconds(1500+speed);
delay(20);
}
// Full speed backward
for(int speed = 0; speed <= 100; speed -= 2)
{
servoLeft.writeMicroseconds(1500+speed);
servoRight.writeMicroseconds(1500-speed);
delay(20);
}
delay(1500);
for(int speed = -100; speed >= 0; speed += 2)
{
servoLeft.writeMicroseconds(1500+speed);
servoRight.writeMicroseconds(1500-speed);
delay(20);
}
servoLeft.detach();
servoRight.detach();
}
void loop()
{
}
Any help will be much appreciated. I did look through the forum for answers, but didn't see any. Thanx again.
Syn7