/*
3 point turn, attempt 1
*/
void setup() {
// initialize the digital pins as outputs.
pinMode(3, OUTPUT); // Forward
pinMode(4, OUTPUT); // Backwards
pinMode(5, OUTPUT); // Left
pinMode(6, OUTPUT); // Right
Serial.begin(9600);
allOff();
}
void driveForward()
{
digitalWrite(3,LOW); // set direction forward
digitalWrite (4,HIGH); // turn on drive motor
}
void driveBackwards()
{
digitalWrite(3,HIGH); // set direction forward
digitalWrite (4,HIGH); // turn on drive motor
}
void turnRight()
{
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
delay (2000);
allOff();
}
void turnLeft()
{
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay (2000);
allOff();
}
void allOff()
{ for(int i = 3; i<=6; i++)
{
//Serial.println(i);
digitalWrite(i,LOW);
}
}
void loop()
{
//
//
// for(int i = 3; i<=6; i++)
// {
// Serial.println(i);
// digitalWrite(i, HIGH);
// delay(1000);
// digitalWrite(i,LOW);
// }
driveForward();
delay(1000);
allOff();
driveBackwards();
delay(1000);
allOff();
// drive forward to right
turnRight();
driveForward();
delay(1000);
turnLeft();
//drive forward to left
turnLeft();
driveForward();
delay(1000);
turnLeft();
// drive Backwards to right
turnRight();
driveForward();
delay(1000);
turnLeft();
//drive forward to left
turnLeft();
driveBackwards();
delay(1000);
turnLeft();
//start random driving
int x = random (1,11);
if (x == 1)
{
//drive backward to left
turnLeft();
driveBackwards();
delay(2000);
turnLeft();
}
if (x == 2)
{
//drive forward to left at random variable
turnLeft();
driveForward();
delay(random(500,3000));
turnLeft();
}
if (x == 3)
{
//drive backward to left at random variable
turnLeft();
driveBackwards();
delay(random(500,5000));
turnLeft();
}
if (x == 4)
{
//drive backward to right at random variable
turnRight();
driveBackwards();
delay(random(500,5000));
turnRight();
}
if (x == 5)
{
//drive forward to right at random variable
turnRight();
driveForward();
delay(random(500,5000));
turnRight();
}
if (x == 6)
{
//drive forward to left
turnLeft();
driveForward();
delay(2000);
turnLeft();
}
if (x = 7)
{
//drive backward to left
turnLeft();
driveBackwards();
delay(2000);
turnLeft();
}
if (x = 8)
{
//drive backward to right
turnRight();
driveBackwards();
delay(2000);
turnRight();
}
}