简体   繁体   English

请求非 class 类型 Arduino 的“ ”中的成员“ ”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM