Hello,
I have a 3pi+ 32U4 OLED Robot and everytime I export the code, it says that its completed. However, no actions occur and it just makes a clicking sound. Is there a problem with my code or my computer? I used the exact same code a year ago and it worked so im not sure what the problem is.
//inputs 1 & 2 are left motor, inputs 3 & 4 vice versa
//inputs 1,2,3,4 are D4,5,6,7 respectively
//adjust ENA and ENB accordingly -- don't have jumpers yet but ENA should be 3 and ENB should be 8
//right motor
int motor_R1 = 5;
int motor_R2 = 4;
int motor_Rspeed = 3;
//left motor
int motor_L1 = 7;
int motor_L2 = 6;
int motor_Lspeed = 8;
void setup() {
pinMode(motor_Rspeed, OUTPUT);
pinMode(motor_R1, OUTPUT);
pinMode(motor_R2, OUTPUT);
pinMode(motor_Lspeed, OUTPUT);
pinMode(motor_L1, OUTPUT);
pinMode(motor_L2, OUTPUT);
analogWrite(motor_Rspeed, 240);
analogWrite(motor_Lspeed, 200);
digitalWrite(motor_R1, LOW); //Moves to the center of the first block
digitalWrite(motor_R2, HIGH);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, HIGH);
delay(700);
analogWrite(motor_Rspeed, 0);
analogWrite(motor_Lspeed, 0);
digitalWrite(motor_R1, LOW); //stops for .5 seconds
digitalWrite(motor_R2, LOW);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, LOW);
delay(500);
//put code here
rightTurn();
leftTurn();
leftTurn();
rightTurn();
moveForward();
leftTurn();
moveForward();
leftTurn();
moveForward();
analogWrite(motor_Rspeed, 0);
analogWrite(motor_Lspeed, 0);
digitalWrite(motor_R1, LOW); //stops for 1 second
digitalWrite(motor_R2, LOW);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, LOW);
delay(1000);
}
void loop() {
// put your main code here, to run repeatedly:
}
void moveForward() {
analogWrite(motor_Rspeed, 200);
analogWrite(motor_Lspeed, 200);
digitalWrite(motor_R1, LOW); //Moves forward for 1.25 seconds
digitalWrite(motor_R2, HIGH);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, HIGH);
delay(1200);
}
void leftTurn() {
/* analogWrite(motor_Rspeed, 200);
analogWrite(motor_Lspeed, 200);
digitalWrite(motor_R1, LOW); //Moves forward a bit to adjust for turn
digitalWrite(motor_R2, HIGH);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, HIGH);
delay(250);
*/
analogWrite(motor_Rspeed, 0);
analogWrite(motor_Lspeed, 0);
digitalWrite(motor_R1, LOW); //stops for .5 seconds
digitalWrite(motor_R2, LOW);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, LOW);
delay(500);
analogWrite(motor_Rspeed, 200);
analogWrite(motor_Lspeed, 200);
digitalWrite(motor_R1, LOW); //Turns left
digitalWrite(motor_R2, HIGH);
digitalWrite(motor_L1, HIGH);
digitalWrite(motor_L2, LOW);
delay(375);
analogWrite(motor_Rspeed, 0);
analogWrite(motor_Lspeed, 0);
digitalWrite(motor_R1, LOW); //stops for .5 seconds
digitalWrite(motor_R2, LOW);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, LOW);
delay(500);
analogWrite(motor_Rspeed, 200);
analogWrite(motor_Lspeed, 200);
digitalWrite(motor_R1, LOW); //Moves forward for 1 second
digitalWrite(motor_R2, HIGH);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, HIGH);
delay(1200);
analogWrite(motor_Rspeed, 0);
analogWrite(motor_Lspeed, 0);
digitalWrite(motor_R1, LOW); //stops for .5 seconds
digitalWrite(motor_R2, LOW);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, LOW);
delay(500);
}
void rightTurn() {
/* analogWrite(motor_Rspeed, 200);
analogWrite(motor_Lspeed, 200);
digitalWrite(motor_R1, LOW); //Moves forward a bit to adjust for turn
digitalWrite(motor_R2, HIGH);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, HIGH);
delay(250);
*/
analogWrite(motor_Rspeed, 0);
analogWrite(motor_Lspeed, 0);
digitalWrite(motor_R1, LOW); //stops for .5 seconds
digitalWrite(motor_R2, LOW);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, LOW);
delay(500);
analogWrite(motor_Rspeed, 200);
analogWrite(motor_Lspeed, 200);
digitalWrite(motor_R1, HIGH); //Turns right
digitalWrite(motor_R2, LOW);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, HIGH);
delay(390);
analogWrite(motor_Rspeed, 0);
analogWrite(motor_Lspeed, 0);
digitalWrite(motor_R1, LOW); //stops for .5 seconds
digitalWrite(motor_R2, LOW);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, LOW);
delay(500);
analogWrite(motor_Rspeed, 200);
analogWrite(motor_Lspeed, 200);
digitalWrite(motor_R1, LOW); //Moves forward for 1 second
digitalWrite(motor_R2, HIGH);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, HIGH);
delay(1200);
analogWrite(motor_Rspeed, 0);
analogWrite(motor_Lspeed, 0);
digitalWrite(motor_R1, LOW); //stops for .5 seconds
digitalWrite(motor_R2, LOW);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, LOW);
delay(500);
}
void turn180() {
analogWrite(motor_Rspeed, 200);
analogWrite(motor_Lspeed, 200);
digitalWrite(motor_R1, LOW); //Turns left
digitalWrite(motor_R2, HIGH);
digitalWrite(motor_L1, HIGH);
digitalWrite(motor_L2, LOW);
delay(630);
analogWrite(motor_Rspeed, 0);
analogWrite(motor_Lspeed, 0);
digitalWrite(motor_R1, LOW); //stops for .5 seconds
digitalWrite(motor_R2, LOW);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, LOW);
delay(500);
analogWrite(motor_Rspeed, 200);
analogWrite(motor_Lspeed, 200);
digitalWrite(motor_R1, LOW); //Moves to the center of the block
digitalWrite(motor_R2, HIGH);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, HIGH);
delay(750);
analogWrite(motor_Rspeed, 0);
analogWrite(motor_Lspeed, 0);
digitalWrite(motor_R1, LOW); //stops for .5 seconds
digitalWrite(motor_R2, LOW);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, LOW);
delay(500);
}
