×

李澄瑞

mixly遥控风扇

李澄瑞 李澄瑞 发表于2026-08-19 浏览104 评论0
#include <IRremote.h>

const int IR_RECV_PIN = A0;
const int FAN_PIN_A2 = A2;
const int FAN_PIN_A3 = A3;

IRrecv irrecv(IR_RECV_PIN);
decode_results results;

bool fanState = false;
// 你的按键码 FFA25D
const unsigned long TARGET_KEY = 0xFFA25D;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();

  pinMode(FAN_PIN_A2, OUTPUT);
  pinMode(FAN_PIN_A3, OUTPUT);
  digitalWrite(FAN_PIN_A2, LOW);
  digitalWrite(FAN_PIN_A3, LOW);
}

void loop()
{
  if (irrecv.decode(&results))
  {
    Serial.print("收到码值 HEX: ");
    Serial.println(results.value, HEX);

    // ✅过滤NEC长按重复码 0xFFFFFFFF,只有真正按键才执行
    if(results.value != 0xFFFFFFFF)
    {
      if (results.value == TARGET_KEY)
      {
        fanState = !fanState;
        if (fanState)
        {
          digitalWrite(FAN_PIN_A2, HIGH);
          digitalWrite(FAN_PIN_A3, HIGH);
          Serial.println("👉风扇开启 A2 A3 = HIGH");
        }
        else
        {
          digitalWrite(FAN_PIN_A2, LOW);
          digitalWrite(FAN_PIN_A3, LOW);
          Serial.println("👉风扇关闭 A2 A3 = LOW");
        }
      }
    }
    irrecv.resume();
  }
}