Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 存储以前读取的值,直到新的脉冲_Arduino_Arduino Uno - Fatal编程技术网

Arduino 存储以前读取的值,直到新的脉冲

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;

我现在正在做一个关于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);
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你能告诉我怎么换计时器吗?