I need help badly. I have an exam on Tuesday and this hw assignment is due Tuesday. I have spent all week trying to do the assignment, but it's hard because I have no background in programming. I need help please if anyone can help me answer this question you will make one stressed out student less stress out.
The question asked is to expand the program given by the instructor:
- When the left limit 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.
- During the time when the robot reverses, have an LED mounted visibly high flash rapidly
- Next, follow this tutorial at Overview | Arduino Lesson 10. Making Sounds | Adafruit Learning System to program your Piezo buzzer to play a tone while reversing.
Here is a diagram of my circuit

please help
/*
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.
*/
int motorspeed1 = 3;
int motorspeed2 = 6;
int forward1 = 8;
int forward2 = 9;
int reverse1 = 5;
int reverse2 = 10;
int led=13;
int leftlimitSwitch=4;
int rightlimitSwitch=7;
void setup()
{
pinMode(motorspeed1, OUTPUT);
pinMode(motorspeed2, OUTPUT);
pinMode(forward1, OUTPUT);
pinMode(forward2, OUTPUT);
pinMode(reverse1, OUTPUT);
pinMode(reverse2, OUTPUT);
pinMode(7, OUTPUT);
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);
}
