给红外遥控器设置两个功能按键,文字输入和数字输入,按下后再去按1-9按键可在LCD1602上显示数字或设置好的一串字母,红外遥控模块和LCD显示模块都没有问题,只是判断按键后执行语句中无法再次进行判断,功能键的功能无法执行,不知道有什么方法可以解决,代码如下,球球各位大神给指点一下
#include <IRremote.h>
#include <IRremoteInt.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(11,10,9,8,7,6);
#define RECV_PIN 13
IRrecv irrecv(RECV_PIN);
decode_results results;
void words();
void number();
void setup()
{
Serial.begin(9600);
lcd.begin(16,2);
Serial.println("Enabling IRin");
irrecv.enableIRIn();
Serial.println("Enabled IRin");
lcd.clear();
lcd.setCursor(0,0);
}
void words()
{
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX);
if(results.value==0xFF30CF)
{lcd.setCursor(2,0);lcd.print("Hello World!");delay(2000);lcd.clear();}
else if(results.value==0xFF18E7)
{lcd.setCursor(3,0);lcd.print("Tian Ji");delay(2000);lcd.clear();}
else if(results.value==0xFF7A85)
{lcd.setCursor(3,0);lcd.print("Da Xue");delay(2000);lcd.clear();}
else if(results.value==0xFF10EF)
{lcd.setCursor(3,0);lcd.print("Ren Ai");delay(2000);lcd.clear();}
else if(results.value==0xFF38C7)
{lcd.setCursor(3,0);lcd.print("Xue Yuan");delay(2000);lcd.clear();}
else if(results.value==0xFF5AA5)
{lcd.setCursor(3,0);lcd.print("Welcome!");delay(2000);lcd.clear();}
else if(results.value==0xFF42BD)
{lcd.setCursor(3,0);lcd.print("Ni Hao!");delay(2000);lcd.clear();}
else if(results.value==0xFF4AB5)
{lcd.write("Nice to meet you");delay(2000);lcd.clear();}
else if(results.value==0xFF52AD)
{lcd.setCursor(4,0);lcd.print("Bye-bye");delay(2000);lcd.clear();}
}
}
void number()
{
lcd.leftToRight();
if(irrecv.decode(&results))
{
Serial.println(results.value, HEX);
if(results.value==0xFF30CF)
{lcd.print("1");delay(100);}
else if(results.value==0xFF18E7)
{lcd.print("2");delay(100);}
else if(results.value==0xFF7A85)
{lcd.print("3");delay(100);}
else if(results.value==0xFF10EF)
{lcd.print("4");delay(100);}
else if(results.value==0xFF38C7)
{lcd.print("5");delay(100);}
else if(results.value==0xFF5AA5)
{lcd.print("6");delay(100);}
else if(results.value==0xFF42BD)
{lcd.print("7");delay(100);}
else if(results.value==0xFF4AB5)
{lcd.print("8");delay(100);}
else if(results.value==0xFF52AD)
{lcd.print("9");delay(100);}
else if ( results.value==0xFF6897)
{lcd.print("0");delay(100);}
}
}
void loop()
{
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX);
if (results.value==0xFFE21D)
{delay(1000);lcd.clear();lcd.print("screen opening...");delay(1000);lcd.clear();}
else if (results.value==0xFFA25D)
{lcd.setCursor(3,0);lcd.print("screen off");delay(1000);lcd.clear();}
else if (results.value==0xFF629D)
{lcd.clear();}
else if (results.value==0xFF22DD)
{lcd.setCursor(3,0);lcd.print("Input words:");delay(1000);lcd.clear();words();}
else if (results.value==0xFF02FD)
{lcd.setCursor(3,0);lcd.print("Input number:");delay(1000);lcd.clear();number();}
irrecv.resume();
}
delay(1000);
}