arduino出错,愿大家一起解决-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 436|回复: 3

[未解决] arduino出错,愿大家一起解决

[复制链接]
发表于 2022-8-26 22:03 | 显示全部楼层 |阅读模式
在arduino编写红外遥控调速小风扇的程序,代码如下:
  1. #include<IRremote.h>
  2. #include<Servo.h>
  3. boolean a = false;
  4. int b = 255;
  5. void setup(){
  6.   Servo myServo;
  7.   myServo.attach(9);
  8.   myServo.write(90);
  9.   IRrecv IRRecv(12);
  10.   decode_results results;
  11.   IRRecv.enableIRIn();
  12.   Serial.begin(9600);
  13. }

  14. void loop(){
  15.   if(IRRecv.decode(&results))
  16.   {
  17.     Serial.println(results.value,HEX);
  18.     switch(results.value){
  19.       case 0xFFC23D:{
  20.         if (a == false){
  21.           a = true;
  22.         }
  23.         else{
  24.           a = false;
  25.         }
  26.       }
  27.       break;
  28.       case 0xFF22DD:{
  29.         b = b - 5;
  30.         if (b <= 50){
  31.           b = 50;
  32.         }
  33.       }
  34.       break;
  35.       case 0xFF02FD:{
  36.         b = b + 5;
  37.         if(b >= 255){
  38.           b = 255;
  39.         }
  40.       }
  41.       break;
  42.       case 0xFFE01F:{
  43.         myServo.write(180);
  44.       }
  45.       break;
  46.       case 0xFFA857:{
  47.         myServo.write(0);
  48.       }
  49.    }
  50.     if(a == false){
  51.       analogWrite(11,b);
  52.       analogWrite(3,0);
  53.     }
  54.     else{
  55.       analogWrite(11,0);
  56.       analogWrite(3,0);
  57.     }
  58.     IRRecv.resume();
  59.   }
  60. }
复制代码
可是出现了如下错误:
'IRRecv' was not declared in this scope
在浏览器上一翻译,中文是:
'irRecv'这个范围内声明

这是怎么回事?
发表于 2022-8-27 01:14 来自手机 | 显示全部楼层
emmm把setup函数中的那个IRrecv IRRecv(12);移到函数外面去 定义成全局变量
 楼主| 发表于 2022-8-27 09:57 | 显示全部楼层
迪洛克 发表于 2022-8-27 01:14
emmm把setup函数中的那个IRrecv IRRecv(12);移到函数外面去 定义成全局变量

改完后:
  1. #include<IRremote.h>
  2. #include<Servo.h>
  3. boolean a = false;
  4. int b = 255;
  5. Servo myServo;
  6. myServo.attach(9);
  7. myServo.write(90);
  8. IRrecv IRRecv(12);
  9. decode_results results;
  10. IRRecv.enableIRIn();
  11. void setup(){
  12.   Serial.begin(9600);
  13. }

  14. void loop(){
  15.   if(IRRecv.decode(&results))
  16.   {
  17.     Serial.println(results.value,HEX);
  18.     switch(results.value){
  19.       case 0xFFC23D:{
  20.         if (a == false){
  21.           a = true;
  22.         }
  23.         else{
  24.           a = false;
  25.         }
  26.       }
  27.       break;
  28.       case 0xFF22DD:{
  29.         b = b - 5;
  30.         if (b <= 50){
  31.           b = 50;
  32.         }
  33.       }
  34.       break;
  35.       case 0xFF02FD:{
  36.         b = b + 5;
  37.         if(b >= 255){
  38.           b = 255;
  39.         }
  40.       }
  41.       break;
  42.       case 0xFFE01F:{
  43.         myServo.write(180);
  44.       }
  45.       break;
  46.       case 0xFFA857:{
  47.         myServo.write(0);
  48.       }
  49.    }
  50.     if(a == false){
  51.       analogWrite(11,b);
  52.       analogWrite(3,0);
  53.     }
  54.     else{
  55.       analogWrite(11,0);
  56.       analogWrite(3,0);
  57.     }
  58.     IRRecv.resume();
  59.   }
  60. }
复制代码
但又出现了新的错误:
'myServo' does not name a type
翻译
'myServo'没有指定类型

发表于 2022-8-27 10:24 | 显示全部楼层
zhaochunyao0426 发表于 2022-8-27 09:57
改完后:但又出现了新的错误:
'myServo' does not name a type
翻译

这个你可以看看库的用法 我没看出明显的代码上的错误 可以尝试换个库的版本试试 我看百度上很多这个错误的博客 你可以去找找看
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-30 23:57 , Processed in 0.160159 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表