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); } } |



