the code I posted on my first post was the instructors the one below is mine
/*
1. when the left switch is hit by an obstacle, the robot
reverses (call reverse() function) for 5 seconds,
turns right for 5 seconds and then continues to move forward.
Do the same when the right switch is hit, except this time have
the bot turn left.
2. During the time when the robot reverses,
have an LED mounted visibly high flash rapidly.
3.3. Next, follow this tutorial at
https://learn.adafruit.com/adafruit-arduino-lesson-10-making-sounds
to program your Piezo buzzer to play a tone while reversing.
*/
byte userInput = 0;
int motorspeed1 = 3;
int motorspeed2 = 6;
int forward1 = 8;
int forward2 = 9;
int reverse1 = 5;
int reverse2 = 10;
int leftlimitSwitch=4;
int rightlimitSwitch=7;
int BUTTON_PIN;
int buttonState=13;
int speakerPin = 12;
int numTones = 10;
int tones[] = {261, 277, 294, 311, 330, 349, 370, 392, 415, 440};
// mid C C# D D# E F F# G G# A
void setup()
{
pinMode(motorspeed1, OUTPUT);
pinMode(motorspeed2, OUTPUT);
pinMode(forward1, OUTPUT);
pinMode(forward2, OUTPUT);
pinMode(reverse1, OUTPUT);
pinMode(reverse2, OUTPUT);
pinMode(13, OUTPUT);
pinMode(BUTTON_PIN, INPUT);
pinMode(4, OUTPUT);
pinMode(6, OUTPUT);
Serial.begin(9600);
}
void forward(int ocr)
{
analogWrite(motorspeed1, ocr);
analogWrite(motorspeed2, ocr);
digitalWrite(forward1, HIGH);
digitalWrite(forward2, HIGH);
digitalWrite(reverse1, LOW);
digitalWrite(reverse2, LOW);
}
void reverse(int ocr)
{
analogWrite(motorspeed1, ocr);
analogWrite(motorspeed2, ocr);
digitalWrite(reverse1, HIGH);
digitalWrite(reverse2, HIGH);
digitalWrite(forward1, LOW);
digitalWrite(forward2, LOW);
}
void left(int ocr)
{
analogWrite(motorspeed1, ocr);
analogWrite(motorspeed2, ocr);
digitalWrite(reverse1, HIGH);
digitalWrite(reverse2, LOW);
digitalWrite(forward1, LOW);
digitalWrite(forward2, HIGH);
}
void right(int ocr)
{
analogWrite(motorspeed1, ocr);
analogWrite(motorspeed2, ocr);
digitalWrite(reverse2, HIGH);
digitalWrite(reverse1, LOW);
digitalWrite(forward2, LOW);
digitalWrite(forward1, HIGH);
}
void breaking()
{
digitalWrite(motorspeed1, HIGH);
digitalWrite(motorspeed2, HIGH);
digitalWrite(reverse2, LOW);
digitalWrite(reverse1, LOW);
digitalWrite(forward2, LOW);
digitalWrite(forward1, LOW);
}
void accelerate(int i)
{
forward(0);
for(int i=0; i<255; i++)
{
analogWrite(motorspeed1, i);
analogWrite(motorspeed2, i);
delay(10);
}
}
void decelerate(int i)
{
forward(0);
for(int i=255; i> 0 ; i = i--)
{
analogWrite(motorspeed1, i);
analogWrite(motorspeed2, i);
delay(10);
}
}
void loop()
{
forward(200); // both motor turn on
delay(5000); // turn off both motors
left(200); // turn on left motor
delay(5000);
reverse(200);
delay(5000);
right(200);
delay(5000);
accelerate(250);
delay(4500);
decelerate(250);
delay(4500);
buttonState = digitalRead(BUTTON_PIN);
Serial.print (buttonState);
//Go forward
if (userInput == '1') {
Serial.println(" moving in...");
while(digitalRead(leftlimitSwitch) != LOW){
reverse(200);
}
Serial.println(" done");
}
//Go back
if (userInput == '2'){
Serial.println(" moving out...");
while(digitalRead(rightlimitSwitch) != LOW){
reverse(200);
}
Serial.println(" done");
}
userInput = 0;
}