在'之前应为主表达式;开关'; #包括 #包括 #包括 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)