This sketch errors at break; case '6': Being that I am still learning the Arduino I don't understand why the error occurs here, however there is no error at "break; case '5':". What is the difference between loop and switch? Would any modifications be recommend for this code?
I am grateful for all of the help the community has provided
// 1 -Motor 1 Left
// 2 -Motor 1 Stop
// 3 -Motor 1 Right //
// 4 -Motor 2 Left
// 5 -Motor 2 Stop
// 6 -Motor 2 Right
// Declare L298N Dual H-Bridge Motor Controller directly since there is not a library to load.
// Motor 1
int dir1PinA = 2;
int dir2PinA = 3;
int speedPinA = 9;
// Needs to be a PWM pin to be able to control motor speed /
// Motor 2
int dir1PinB = 4;
int dir2PinB = 5;
int speedPinB = 10;
// Needs to be a PWM pin to be able to control motor speed
void setup() {
// Setup runs once per reset
//Define L298N Dual H-Bridge Motor Controller Pins
pinMode(dir1PinA,OUTPUT);
pinMode(dir2PinA,OUTPUT);
pinMode(speedPinA,OUTPUT);
pinMode(dir1PinB,OUTPUT);
pinMode(dir2PinB,OUTPUT);
pinMode(speedPinB,OUTPUT); }
void loop() {
// Initialize the Serial interface:
if (Serial.available() > 0) {
int inByte = Serial.read();
int speed;
// Local variable switch (inByte) {
//Motor 1
break case '1':
// Motor 1 Forward
analogWrite(speedPinA, 255);
//Sets speed variable via PWM
digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, HIGH);
Serial.println("Motor 1 Forward");
// Prints out “Motor 1 Forward†on the serial monitor
Serial.println(" ");
// Creates a blank line printed on the serial monitor
break; case '2':
// Motor 1 Stop (Freespin)
analogWrite(speedPinA, 0);
digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, HIGH);
Serial.println("Motor 1 Stop");
Serial.println(" ");
break; case '3':
// Motor 1 Reverse
analogWrite(speedPinA, 255);
digitalWrite(dir1PinA, HIGH);
digitalWrite(dir2PinA, LOW);
Serial.println("Motor 1 Reverse");
Serial.println(" ");
break;
//Motor 2
case '4':
// Motor 2 Forward
analogWrite(speedPinB, 255);
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, HIGH);
Serial.println("Motor 2 Forward");
Serial.println(" ");
break; case '5':
// Motor 1 Stop (Freespin)
analogWrite(speedPinB, 0);
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, HIGH);
Serial.println("Motor 2 Stop");
Serial.println(" ");
break; case '6':
// Motor 2 Reverse
analogWrite(speedPinB, 255);
digitalWrite(dir1PinB, HIGH);
digitalWrite(dir2PinB, LOW);
Serial.println("Motor 2 Reverse");
Serial.println(" ");
// break; default: // turn all the connections off if an unmapped key is pressed:
for (int thisPin = 2; thisPin < 11; thisPin++) {
digitalWrite(thisPin, LOW); }
}
}
}
}
}
Next time, use code tags like this, it's the top left button </>.
See comments <<< below:
//
// 1 -Motor 1 Left
// 2 -Motor 1 Stop
// 3 -Motor 1 Right //
// 4 -Motor 2 Left
// 5 -Motor 2 Stop
// 6 -Motor 2 Right
// Declare L298N Dual H-Bridge Motor Controller directly since there is not a library to load.
// Motor 1
int dir1PinA = 2; << byte
int dir2PinA = 3; << byte
int speedPinA = 9; << byte
// Needs to be a PWM pin to be able to control motor speed /
// Motor 2
int dir1PinB = 4; << byte
int dir2PinB = 5; << byte
int speedPinB = 10; << byte
// Needs to be a PWM pin to be able to control motor speed
void setup() {
// Setup runs once per reset
//Define L298N Dual H-Bridge Motor Controller Pins
pinMode(dir1PinA,OUTPUT);
pinMode(dir2PinA,OUTPUT);
pinMode(speedPinA,OUTPUT);
pinMode(dir1PinB,OUTPUT);
pinMode(dir2PinB,OUTPUT);
pinMode(speedPinB,OUTPUT); }
void loop() {
// Initialize the Serial interface:
if (Serial.available() > 0) {
int inByte = Serial.read();
int speed;
// Local variable switch (inByte) {
//______________Motor 1______________
break case '1': << delete break here
// Motor 1 Forward
analogWrite(speedPinA, 255);
//Sets speed variable via PWM
digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, HIGH);
Serial.println("Motor 1 Forward");
// Prints out “Motor 1 Forward†on the serial monitor
Serial.println(" ");
// Creates a blank line printed on the serial monitor
break;
case '2': << uset CTRL-T, will make these more readable
// Motor 1 Stop (Freespin)
analogWrite(speedPinA, 0);
digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, HIGH);
Serial.println("Motor 1 Stop");
Serial.println(" ");
break;
case '3':
// Motor 1 Reverse
analogWrite(speedPinA, 255);
digitalWrite(dir1PinA, HIGH);
digitalWrite(dir2PinA, LOW);
Serial.println("Motor 1 Reverse");
Serial.println(" ");
break;
//______________Motor 2______________
case '4':
// Motor 2 Forward
analogWrite(speedPinB, 255);
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, HIGH);
Serial.println("Motor 2 Forward");
Serial.println(" ");
break;
case '5':
// Motor 1 Stop (Freespin)
analogWrite(speedPinB, 0);
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, HIGH);
Serial.println("Motor 2 Stop");
Serial.println(" ");
break;
case '6':
// Motor 2 Reverse
analogWrite(speedPinB, 255);
digitalWrite(dir1PinB, HIGH);
digitalWrite(dir2PinB, LOW);
Serial.println("Motor 2 Reverse");
Serial.println(" ");
// break;
default: // turn all the connections off if an unmapped key is pressed:
for (int thisPin = 2; thisPin < 11; thisPin++) { << byte
digitalWrite(thisPin, LOW); }
}
}
}
}
}
// 1 -Motor 1 Left
// 2 -Motor 1 Stop
// 3 -Motor 1 Right //
// 4 -Motor 2 Left
// 5 -Motor 2 Stop
// 6 -Motor 2 Right
// Declare L298N Dual H-Bridge Motor Controller directly since there is not a library to load.
// Motor 1
int dir1PinA = 2;
int dir2PinA = 3;
int speedPinA = 9;
// Needs to be a PWM pin to be able to control motor speed /
// Motor 2
int dir1PinB = 4;
int dir2PinB = 5;
int speedPinB = 10;
// Needs to be a PWM pin to be able to control motor speed
void setup() {
// Setup runs once per reset
//Define L298N Dual H-Bridge Motor Controller Pins
pinMode(dir1PinA, OUTPUT);
pinMode(dir2PinA, OUTPUT);
pinMode(speedPinA, OUTPUT);
pinMode(dir1PinB, OUTPUT);
pinMode(dir2PinB, OUTPUT);
pinMode(speedPinB, OUTPUT);
}
void loop() {
// Initialize the Serial interface:
if (Serial.available() > 0) {
int inByte = Serial.read();
int speed;
switch (inByte) {
//______________Motor 1______________
case '1':
// Motor 1 Forward
analogWrite(speedPinA, 255);
//Sets speed variable via PWM
digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, HIGH);
Serial.println("Motor 1 Forward");
// Prints out “Motor 1 Forward†on the serial monitor
Serial.println(" ");
// Creates a blank line printed on the serial monitor
break;
case '2':
// Motor 1 Stop (Freespin)
analogWrite(speedPinA, 0);
digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, HIGH);
Serial.println("Motor 1 Stop");
Serial.println(" ");
break;
case '3':
// Motor 1 Reverse
analogWrite(speedPinA, 255);
digitalWrite(dir1PinA, HIGH);
digitalWrite(dir2PinA, LOW);
Serial.println("Motor 1 Reverse");
Serial.println(" ");
break;
//______________Motor 2______________
case '4':
// Motor 2 Forward
analogWrite(speedPinB, 255);
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, HIGH);
Serial.println("Motor 2 Forward");
Serial.println(" ");
break;
case '5':
// Motor 1 Stop (Freespin)
analogWrite(speedPinB, 0);
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, HIGH);
Serial.println("Motor 2 Stop");
Serial.println(" ");
break;
case '6':
// Motor 2 Reverse
analogWrite(speedPinB, 255);
digitalWrite(dir1PinB, HIGH);
digitalWrite(dir2PinB, LOW);
Serial.println("Motor 2 Reverse");
Serial.println(" ");
break;
default: // turn all the connections off if an unmapped key is pressed:
for (int thisPin = 2; thisPin < 11; thisPin++) {
digitalWrite(thisPin, LOW);
}
}
}
}
exit status 1 'Locale' was not declared in this scope results.
// 1 -Motor 1 Left
// 2 -Motor 1 Stop
// 3 -Motor 1 Right //
// 4 -Motor 2 Left
// 5 -Motor 2 Stop
// 6 -Motor 2 Right
// Declare L298N Dual H-Bridge Motor Controller directly since there is not a library to load.
// Motor 1
int dir1PinA = 2;
int dir2PinA = 3;
int speedPinA = 9;
// Needs to be a PWM pin to be able to control motor speed /
// Motor 2
int dir1PinB = 4;
int dir2PinB = 5;
int speedPinB = 10;
// Needs to be a PWM pin to be able to control motor speed
void setup() {
// Setup runs once per reset
//Define L298N Dual H-Bridge Motor Controller Pins
pinMode(dir1PinA,OUTPUT);
pinMode(dir2PinA,OUTPUT);
pinMode(speedPinA,OUTPUT);
pinMode(dir1PinB,OUTPUT);
pinMode(dir2PinB,OUTPUT);
pinMode(speedPinB,OUTPUT); }
void loop() {
// Initialize the Serial interface:
if (Serial.available() > 0) {
int inByte = Serial.read();
int speed;
Local variable switch (inByte) {
//______________Motor 1______________
break case '1':
// Motor 1 Forward
analogWrite(speedPinA, 255);
//Sets speed variable via PWM
digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, HIGH);
Serial.println("Motor 1 Forward");
// Prints out “Motor 1 Forward†on the serial monitor
Serial.println(" ");
// Creates a blank line printed on the serial monitor
break; case '2':
// Motor 1 Stop (Freespin)
analogWrite(speedPinA, 0);
digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, HIGH);
Serial.println("Motor 1 Stop");
Serial.println(" ");
break; case '3':
// Motor 1 Reverse
analogWrite(speedPinA, 255);
digitalWrite(dir1PinA, HIGH);
digitalWrite(dir2PinA, LOW);
Serial.println("Motor 1 Reverse");
Serial.println(" ");
break;
//______________Motor 2______________
case '4':
// Motor 2 Forward
analogWrite(speedPinB, 255);
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, HIGH);
Serial.println("Motor 2 Forward");
Serial.println(" ");
break; case '5':
// Motor 1 Stop (Freespin)
analogWrite(speedPinB, 0);
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, HIGH);
Serial.println("Motor 2 Stop");
Serial.println(" ");
break; case '6': //;
// Motor 2 Reverse
analogWrite(speedPinB, 255);
digitalWrite(dir1PinB, HIGH);
digitalWrite(dir2PinB, LOW);
Serial.println("Motor 2 Reverse");
Serial.println(" ");
// break; default: // turn all the connections off if an unmapped key is pressed:
for (int thisPin = 2; thisPin < 11; thisPin++) {
digitalWrite(thisPin, LOW); }
}
}
}
}
}
"loop" is not part of the C++ language - it's just the way the arduino scaffolding works. That is: it's not special to the C++ compiler in the way that C++ keywords (struct, enum, class, if, else, while, for … etc) and primitive type names are.
The 'break' statement is part of the C++ language. It break out of a C++ switch() statement or one of the loop statements: for(), while(), or do/while().