如何解决在这种情况下,如何对红外遥控器进行编码,以便 + 和 - 按钮控制代码中列出的温度? Arduino (TinkerCAD)
我需要使用无线方式(红外遥控)远程设置室温
这是一个智能电表,蓝色和红色的 LED 分别代表风扇和加热器。我需要遥控器使用 + 和 - 按钮选择目标温度。这是帮助的代码
我需要红外线遥控器来列出类似这样的内容:
-
如果按下向上按钮
将目标温度增加一些值
-
否则如果按下向下按钮
将目标温度降低一些值
我需要对红外遥控器进行编程以上下改变“温度”变量。 应该添加什么代码来做到这一点?遥控器目前仅被编程为打开和关闭 LED 灯。我需要帮助对其进行编程以更改 tinkerCAD 中的周围温度。温度在源码中标注为“temp”
#include <IRremote.h>
int temp = 0;
int RECV_PIN = 11;
int ledState=0;
int ledPin=10;
int buttonPin=2;
int buttonStateNew;
int buttonStateOld=1;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(A0,INPUT);
pinMode(11,INPUT);
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(6,OUTPUT);
pinMode(5,OUTPUT);
pinMode(10,OUTPUT);
pinMode(ledPin,OUTPUT);
pinMode(buttonPin,INPUT);
}
void loop()
{
if (irrecv.decode(&results)) {
switch(results.value)
{
case 16582903: Serial.println("1"); // Button 1
digitalWrite(10,HIGH);
break;
case 16615543: Serial.println("2"); // Button 2
digitalWrite(10,LOW);
break;
default: Serial.println(results.value);
}
irrecv.resume(); // Receive the next value
}
temp = map(((analogRead(A0) - 20) * 3.04),1023,-40,125);
Serial.println(temp);
if (temp < 25) {
digitalWrite(6,HIGH);
digitalWrite(5,LOW);
}
if (temp > 25 && temp < 125) {
digitalWrite(6,LOW);
digitalWrite(5,HIGH);
}
delay(100); // Delay a little bit to improve simulation performance
buttonStateNew= digitalRead(buttonPin);
if(buttonStateOld == 0 && buttonStateNew == 1)
{
if (ledState==0){
digitalWrite(ledPin,HIGH);
ledState=1;
}
else
{
digitalWrite(ledPin,LOW);
ledState=0;
}
}
buttonStateOld=buttonStateNew;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。