UNO无法使用红外传感器

2022-06-271.8万
AI 快速预览详细 收起
本文介绍了如何解决UNO无法使用红外传感器的问题。文章首先展示了具体的报错现象,例如`remoteReceive_2.getIrCommand()`返回空值。接着,通过详细的代码调试和硬件检查步骤,提供了验证过的解决方案。这些步骤包括检查红外传感器与UNO的连接,以及确保`IRremote_Receive`对象正确初始化。通过这些方法,用户可以快速定位并解决UNO红外传感器不工作的问题。
/*!
* MindPlus
* uno
*
*/
#include <DFRobot_Servo.h>
#include <DFRobot_DS18B20.h>
#include <DFRobot_IRremote.h>
#include <DFRobot_Libraries.h>

// 动态变量
volatile float mind_n__0, mind_n__1, mind_n_my_float_variable, mind_n_dangqianzhuangtai;
// 创建对象
IRremote_Receive remoteReceive_2;
Servo            servo_12;
DFRobot_Tone     DFTone;
DFRobot_DS18B20  ds18b20_11;
DFRobot_DS18B20  ds18b20_5;
DFRobot_Servo360 servo360_9;


// 主程序开始
void setup() {
        Serial.begin(9600);
        remoteReceive_2.begin(2);
        servo_12.attach(12);
        ds18b20_11.begin(11);
        ds18b20_5.begin(5);
        servo360_9.attach(9);
        mind_n__0 = 180;
        mind_n__1 = 100;
}
void loop() {
        if (((remoteReceive_2.getIrCommand())==String("4DB2738C"))) {
                delay(200);
                if ((mind_n_my_float_variable==0)) {
                        mind_n_my_float_variable = 1;
                        servo_12.angle(abs(mind_n__0));
                        DFTone.play(4, 494, 125);
                }
                else {
                        mind_n_my_float_variable = 0;
                        servo_12.angle(abs(mind_n__1));
                        DFTone.play(4, 494, 125);
                }
        }
        if (digitalRead(10)) {
                delay(200);
                if ((mind_n_dangqianzhuangtai==0)) {
                        mind_n_dangqianzhuangtai = 1;
                        servo_12.angle(abs(mind_n__0));
                        DFTone.play(4, 494, 125);
                }
                else {
                        mind_n_dangqianzhuangtai = 0;
                        servo_12.angle(abs(mind_n__1));
                        DFTone.play(4, 494, 125);
                }
        }
        Serial.println(ds18b20_11.getTempC());
        if ((ds18b20_5.getTempC()>37)) {
                servo360_9.speed(100);
                Serial.println("温度过高");
                DFTone.play(4, 494, 125);
        }
}


创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
ddccyy
ddccyy
感谢分享
- 没有更多了 -