从 Arduino Infraredreceiver 读取四个不同的值
Read four different values from an Arduino Infraredreceiver
我想从 Infraredreceiver
中获得 4 个不同的值。对函数 IRNumbers
的每次调用都应等待信号。但是当它获得第一个值时,它会继续并且不会在 while-loop
处停止。它只使用第一个值三次。
这是我的代码:
int IRNumbers(int i) {
char number;
while (!irrecv.decode( & results));
switch (results.value) {
case 16738455:
number = '0';
break;
case 16724175:
number = '1';
break;
case 16718055:
number = '2';
break;
...
default:
IRNumbers(i);
break;
}
return number;
}
我不知道为什么 while-loop
不停。我也尝试清除缓冲区。但它没有任何用处。
我认为您需要在尝试读取下一个值之前调用 irrecv.resume()。例如:
int IRNumbers(int i) {
char number;
while (!irrecv.decode( & results));
irrecv.resume();
switch (results.value) {
case 16738455:
number = '0';
break;
...
我想从 Infraredreceiver
中获得 4 个不同的值。对函数 IRNumbers
的每次调用都应等待信号。但是当它获得第一个值时,它会继续并且不会在 while-loop
处停止。它只使用第一个值三次。
这是我的代码:
int IRNumbers(int i) {
char number;
while (!irrecv.decode( & results));
switch (results.value) {
case 16738455:
number = '0';
break;
case 16724175:
number = '1';
break;
case 16718055:
number = '2';
break;
...
default:
IRNumbers(i);
break;
}
return number;
}
我不知道为什么 while-loop
不停。我也尝试清除缓冲区。但它没有任何用处。
我认为您需要在尝试读取下一个值之前调用 irrecv.resume()。例如:
int IRNumbers(int i) {
char number;
while (!irrecv.decode( & results));
irrecv.resume();
switch (results.value) {
case 16738455:
number = '0';
break;
...