[英]request for member ' ' in ' ' which is of non class type Arduino
ARDUINO PAD BLUETOOTH ARDUINO 平板蓝牙
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嗨,我正在尝试通过蓝牙进行 PAD 控制,我的智能手机 (Android) 和 Esp32 之间的连接,但我有一些问题
The error <request for member 'equals' in 'pwm', which is of non-class type 'int'> continues appearing.
错误<request for member 'equals in 'pwm', which is of non-class type 'int'>继续出现。
I´m using an ESP32 with a bipolar motor
我使用带双极电机的 ESP32
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 an equals()
method declared.变量
pwm
是一个 int 并且没有声明equals()
方法。 Just compare directly:直接对比一下:
if(motor.equals("A")&&pwm == 'O')){
for example.例如。 Don't compare against the string (double quotes), just the single character.
不要与字符串(双引号)进行比较,只需与单个字符进行比较。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.