ARDUINO PAD BLUETOOTH
Hi, I´m trying to do a PAD controll by Bluetooth, the conexion with be between my smartphone (Android) and the Esp32 but i have some issues
The error <request for member 'equals' in 'pwm', which is of non-class type 'int'> continues appearing.
I´m using an ESP32 with a bipolar motor
Here´s my code
int v = 0; //Contador para velocidades
//ARREGLOS
int motor [4] = {25, 26, 27, 14}; //Pines donde se conecta el motor
int sh [8][4] = {{1, 0, 0, 0}, //Arreglo PAP en sentido horario
{1, 1, 0, 0},
{0, 1, 0, 0},
{0, 1, 1, 0},
{0, 0, 1, 0},
{0, 0, 1, 1},
{0, 0, 0, 1},
{1, 0, 0, 1}};
int sah [8][4] = {{1, 0, 0, 1}, //Arreglo PAP en sentido antihorario
{0, 0, 0, 1},
{0, 0, 1, 1},
{0, 0, 1, 0},
{0, 1, 1, 0},
{0, 1, 0, 0},
{1, 1, 0, 0},
{1, 0, 0, 0}};
int vel [3]={30, 10, 5};
BluetoothSerial BT;
void setup() {
Serial.begin(115200);
BT.begin("ESP32_BLUE");
//CONFIGURACIÓN
//OUTPUT´s
//Salidas de los pines del motor
pinMode (25, OUTPUT);
pinMode (26, OUTPUT);
pinMode (27, OUTPUT);
pinMode (14, OUTPUT);
//INICIALIZACIÓN
for (int i=0; i<=3; i++){
digitalWrite(motor[i],0);
}
Serial.println();
Serial.println("Control PAP mediante BT");
Serial.println("# → 1 o 2");
Serial.println();
}
void loop() {
if (BT.available()){
decoBT();
}
}
void decoBT(){
String msg=BT.readStringUntil ('\r');
msg.toUpperCase();
int tam = msg.length(); //Veo el tamaño de la cadena y la guardo en la variable tam
int sep = msg.indexOf(':'); //Busca posición del caracter
String motor=msg.substring(0, sep); //Hago cadena que agarre desde la posición 0 hasta el separador
int pwm = msg.substring(sep+1, tam).toInt(); //Obtiene la segunda parte del protocolo y lo convierte a entero
if(motor.equals("A")&&pwm.equals("O")){
for(int j=0; j<=7; j++){ //For para desplazarse por el arreglo bidimensional
for(int k=0; k<=3; k++){ //For para desplazarse por el arreglo bidimensional
digitalWrite(motor[k],sh[j][k]); //Asignación de cda valor en filas x columnas
}
delay(vel[v]); //Retardo de acuerdo a la velocidad
}
}
else if(motor.equals("A")&&pwm.equals("I")){
for(int l=0; l<=7; l++){ //For para desplazar por el arreglo bidimensional
for(int m=0; m<=3; m++){ //For para desplazar por el arreglo bidimensional
digitalWrite(motor[m],sah[l][m]); //Asignación de cda valor en filas x columnas
}
delay(vel[v]); //Retardo de acuerdo a la velocidad
}
}
else if(motor.equals("A")&&pwm.equals("F")){
for(int i=0; i<=2; i++){
digitalWrite(motor[i],0); //Apaga las salidas
}
}
}```
The variable
pwm
is an int and doesn't have anequals()
method declared. Just compare directly:for example. Don't compare against the string (double quotes), just the single character.