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需要 –