在'之前应为主表达式;开关'; #包括 #包括 #包括 int接收器=A5; IRECV IRECV(接收器); 解码_结果; void translateIR(){ 开关(结果值){ 案例0xFFA25D:Serial.println(“电源”);中断; 案例0xFFE21D:Serial.println(“功能/停止”);中断; 案例0xFF629D:Serial.println(“VOL+”);中断; 案例0xFF22DD:Serial.println(“快速返回”);中断; 案例0xFF02FD:Serial.println(“暂停”);中断; 案例0xFFC23D:Serial.println(“快进”);中断; 案例0xFFE01F:Serial.println(“向下”);中断; 案例0xFFA857:Serial.println(“VOL-”);中断; 案例0xFF906F:Serial.println(“UP”);中断; 案例0xFF9867:Serial.println(“EQ”);中断; 案例0xFFB04F:Serial.println(“ST/REPT”);中断; 案例0xFF6897:Serial.println(“0”);中断; 案例0xFF30CF:Serial.println(“1”);中断; 案例0xFF18E7:Serial.println(“2”);中断; 案例0xFF7A85:Serial.println(“3”);中断; 案例0xFF10EF:Serial.println(“4”);中断; 案例0xFF38C7:Serial.println(“5”);中断; 案例0xFF5AA5:Serial.println(“6”);中断; 案例0xFF42BD:Serial.println(“7”);中断; 案例0xFF4AB5:Serial.println(“8”);中断; 案例0xFF52AD:Serial.println(“9”);中断; 案例0xFFFFF:Serial.println(“REPEAT”);中断; 违约: Serial.println(“其他按钮”); } 延迟(500); } AF_直流电机(1); 伺服伺服1; 伺服2; 无效设置(){ if(解码和结果)){ translateIR(); 简历(); } Serial.begin(9600); 1.连接(9); 电机设定转速(200); 电机运行(释放); } void循环(){ 如果(switch(results.value))=(case 0xFF906F:){//另一个问题

在'之前应为主表达式;开关'; #包括 #包括 #包括 int接收器=A5; IRECV IRECV(接收器); 解码_结果; void translateIR(){ 开关(结果值){ 案例0xFFA25D:Serial.println(“电源”);中断; 案例0xFFE21D:Serial.println(“功能/停止”);中断; 案例0xFF629D:Serial.println(“VOL+”);中断; 案例0xFF22DD:Serial.println(“快速返回”);中断; 案例0xFF02FD:Serial.println(“暂停”);中断; 案例0xFFC23D:Serial.println(“快进”);中断; 案例0xFFE01F:Serial.println(“向下”);中断; 案例0xFFA857:Serial.println(“VOL-”);中断; 案例0xFF906F:Serial.println(“UP”);中断; 案例0xFF9867:Serial.println(“EQ”);中断; 案例0xFFB04F:Serial.println(“ST/REPT”);中断; 案例0xFF6897:Serial.println(“0”);中断; 案例0xFF30CF:Serial.println(“1”);中断; 案例0xFF18E7:Serial.println(“2”);中断; 案例0xFF7A85:Serial.println(“3”);中断; 案例0xFF10EF:Serial.println(“4”);中断; 案例0xFF38C7:Serial.println(“5”);中断; 案例0xFF5AA5:Serial.println(“6”);中断; 案例0xFF42BD:Serial.println(“7”);中断; 案例0xFF4AB5:Serial.println(“8”);中断; 案例0xFF52AD:Serial.println(“9”);中断; 案例0xFFFFF:Serial.println(“REPEAT”);中断; 违约: Serial.println(“其他按钮”); } 延迟(500); } AF_直流电机(1); 伺服伺服1; 伺服2; 无效设置(){ if(解码和结果)){ translateIR(); 简历(); } Serial.begin(9600); 1.连接(9); 电机设定转速(200); 电机运行(释放); } void循环(){ 如果(switch(results.value))=(case 0xFF906F:){//另一个问题,c,if-statement,receiver,adafruit,servo,C,If Statement,Receiver,Adafruit,Servo,函数translateIR显示了switch语句的正确语法。您在循环中尝试执行的操作与此完全不同 如果要进行比较,只需使用表达式中的值,而不使用开关或大小写: #include <IRremote.h> #include <AFMotor.h> #include <Servo.h> int receiver = A5; IRrecv irrecv(receiver); decode_results results; void translateIR(){

函数
translateIR
显示了
switch
语句的正确语法。您在
循环中尝试执行的操作与此完全不同

如果要进行比较,只需使用表达式中的值,而不使用
开关
大小写

#include <IRremote.h>
#include <AFMotor.h>
#include <Servo.h>
int receiver = A5;

IRrecv irrecv(receiver);
decode_results results;

void translateIR(){
  switch(results.value){
    case 0xFFA25D: Serial.println("POWER");break;
    case 0xFFE21D: Serial.println("FUNCTION/STOP");break;
    case 0xFF629D: Serial.println("VOL+");break;
    case 0xFF22DD: Serial.println("FAST BACK");break;
    case 0xFF02FD: Serial.println("PAUSE");break;
    case 0xFFC23D: Serial.println("FAST FORWARD");break;
    case 0xFFE01F: Serial.println("DOWN");break;
    case 0xFFA857: Serial.println("VOL-");break;
    case 0xFF906F: Serial.println("UP");break;
    case 0xFF9867: Serial.println("EQ");break;
    case 0xFFB04F: Serial.println("ST/REPT");break;
    case 0xFF6897: Serial.println("0");break;
    case 0xFF30CF: Serial.println("1");break;
    case 0xFF18E7: Serial.println("2");break;
    case 0xFF7A85: Serial.println("3");break;
    case 0xFF10EF: Serial.println("4");break;
    case 0xFF38C7: Serial.println("5");break;
    case 0xFF5AA5: Serial.println("6");break;
    case 0xFF42BD: Serial.println("7");break;
    case 0xFF4AB5: Serial.println("8");break;
    case 0xFF52AD: Serial.println("9");break;
    case 0xFFFFFFF: Serial.println(" REPEAT");break;

    default:
      Serial.println(" other button");
  }
      delay(500);
  
}

AF_DCMotor Motor(1);
Servo servo1;
Servo servo2;

void setup(){
  if (irrecv.decode(&results)){
    translateIR();
    irrecv.resume();
  }

  
  Serial.begin(9600);
  servo1.attach(9);
  Motor.setSpeed(200);
  Motor.run(RELEASE);

}
void loop(){
  if (switch(results.value)) = (case 0xFF906F:){     // THE OTHER PROBLEM <-------------
    Motor.run(FORWARD);
  }
  else switch(results.value) != (case 0xFF906F:){    // THE PROBLEM <-------------
    Motor.run(RELEASE);
  } 
  
  
}
关于:

void loop(){
  if (results.value == 0xFF906F){
    Motor.run(FORWARD);
  }
  else {
    Motor.run(RELEASE);
  } 
}
建议重新阅读
switch()

下面是一个可能的更正:

if (switch(results.value)) = (case 0xFF906F:)
{     
    Motor.run(FORWARD);
}
else switch(results.value) != (case 0xFF906F:)
{   
    Motor.run(RELEASE);

IRECV IRECV(接收器);
是C中的一个错误。我想这实际上是Arduino C++
A5
不是
int
,不能分配给
int
什么是
decode\u结果
“是
struct
?如果是,那么发布struct的定义。
main()
function?因为该函数将显示如何调用其他函数
IRECV。decode(&results)
在C中也是一个错误。除非IRECV是一个结构,decode是一个函数指针类型的字段
 if (results.value == 0xFF906F )
 {     
     Motor.run(FORWARD);
 }
 else 
 {   
     Motor.run(RELEASE)