0
我目前正在Arduino Uno上执行一个项目。该项目基于从红外遥控器接收红外信号,然后根据收到的信号执行其他操作。存储先前读取的值直到出现新脉冲
问题是每次都会重置信号。我想存储从红外遥控器接收到的值,然后在检测到另一个脉冲时将其复位。
这里是我的代码:
int brojac = 0;
int pinData = 10;
unsigned long lengthHeader;
unsigned long bit;
int byteValue;
int vrime = 1000 ;
int storeValue = 0;
void setup()
{
Serial.begin(9600);
pinMode(pinData, INPUT);
}
void loop() {
lengthHeader = pulseIn(pinData, LOW);
if (lengthHeader > 1500)
{
for (int i = 1; i <= 32; i++) {
bit = pulseIn(pinData, HIGH);
if (i > 16 && i <= 24)
if (bit > 1000)
byteValue = byteValue + (1 << (i - 17));
}
}
Serial.print("byteValue = ");
Serial.println(byteValue);
if(byteValue == 66){
digitalWrite(11,HIGH);
}
else{
digitalWrite(11,LOW);
}
delay(vrime);
byteValue = 0;
delay(250);
}
任何你没有使用** Arduino IRremote **库的理由? –
我没有使用Arduino IRremote,因为它与ATTiny45不兼容。 ATtiny不使用定时器2,这就是为什么它不能使用,除非修改。 – Shaam
定时器可以改变zif需要 –