可能是由于切换引脚干扰了红外接收器的信号引起的。可以通过在切换引脚和红外接收器之间添加一个限流电阻来解决。具体代码示例如下:
int switchPin = 2; int irPin = 3; int resistors = 220; // 添加的限流电阻值
void setup() { pinMode(switchPin, INPUT); pinMode(irPin, INPUT); }
void loop() { if (digitalRead(switchPin) == HIGH) { digitalWrite(irPin, LOW); // 关闭红外接收器 } else { digitalWrite(irPin, HIGH); // 开启红外接收器 delay(resistors); // 等待限流电阻滤波 } }