Как я могу запрограммировать ИК-пульт в tinkercad, чтобы изменить такую переменную, как «целевая температура», при использовании датчика температуры T36? [закрыто]
Мне нужно установить температуру в помещении удаленно с помощью беспроводного метода (ИК-пульт)
Это умный счетчик, а синий и красный светодиоды уважительно представляют вентилятор и обогреватель. Мне нужен пульт для выбора целевой температуры с помощью кнопок + и -. Вот код, который поможет
Мне нужен ИК-пульт, чтобы перечислить что-то вроде этого:
Если нажата кнопка вверх
Увеличьте заданную температуру на некоторое значение
В противном случае, если нажата кнопка вниз
Уменьшить заданную температуру на некоторое значение
Но я не могу понять это правильно. Какой код я могу использовать, чтобы настроить кнопки для изменения целевой температуры
#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), 0, 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;
}