Arduino 存储以前读取的值,直到新的脉冲
我现在正在做一个关于Arduino Uno的项目。该项目基于从红外遥控器接收红外信号,然后根据接收到的信号执行其他操作 问题是每次信号都会被重置。我想存储从红外遥控器接收到的值,然后在检测到另一个脉冲时将其重置 这是我的密码:Arduino 存储以前读取的值,直到新的脉冲,arduino,arduino-uno,Arduino,Arduino Uno,我现在正在做一个关于Arduino Uno的项目。该项目基于从红外遥控器接收红外信号,然后根据接收到的信号执行其他操作 问题是每次信号都会被重置。我想存储从红外遥控器接收到的值,然后在检测到另一个脉冲时将其重置 这是我的密码: int brojac = 0; int pinData = 10; unsigned long lengthHeader; unsigned long bit; int byteValue; int vrime = 1000 ; int storeValue = 0;
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);
int-brojac=0;
int pinData=10;
无符号长长度头;
无符号长位;
int字节值;
int-vrime=1000;
int-storeValue=0;
无效设置()
{
Serial.begin(9600);
pinMode(pinData,输入);
}
void循环(){
长度头=脉冲信号(pinData,低);
如果(长度收割台>1500)
{
对于(int i=1;i 16和i 1000)
byteValue=byteValue+(1我通过将值存储在变量中直到检测到新变量来得到答案
int pinData = 10;
int led = 11;
unsigned long lengthHeader;
unsigned long bit;
int byteValue;
int storeValue = 0;
int previousValue = 0;
void setup()
{
Serial.begin(9600);
pinMode(pinData, INPUT);
pinMode(led, LOW);
}
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);
**storeValue = byteValue;
if (storeValue != 0){
previousValue = storeValue;
}
Serial.print("Previous value = ");
Serial.println(previousValue);**
byteValue = 0;
delay(500);
}
int pinData=10;
int-led=11;
无符号长长度头;
无符号长位;
int字节值;
int-storeValue=0;
int-previousValue=0;
无效设置()
{
Serial.begin(9600);
pinMode(pinData,输入);
引脚模式(led,低电平);
}
void循环(){
长度头=脉冲信号(pinData,低);
如果(长度收割台>1500)
{
对于(int i=1;i 16和i 1000)
byteValue=byteValue+(1您为什么不使用Arduino iRemote库?我之所以不使用Arduino iRemote,是因为它与ATTiny45不兼容。ATtiny不使用计时器2,这就是为什么除非进行修改,否则无法使用它。计时器可以在zif中更改needed@PatrickTrentin你能告诉我怎么换计时器吗?