Problem with using keypad.h
i working on project requires user press key on keypad when interrupt called. interrupt called pressing push button , function executes requires user press either 1,2,3,or 4 before proceeding make necessary computations.
the problem when use keypad.waitforkey(), program stops executing.
can please me figure out.
here code function
void addpassenger(){
if(digitalread(3))
{
//when led lights///user can choose option
digitalwrite(10,high);
lcd.clear();
key = no_key;
while(true){
key = keypad.waitforkey();
mydelay(100);
lcd.print("?");
if(key != no_key)
break;
}
state = false;
switch(key){
case '2':
if(!onboard[1]){
onboard[1] = true;
numberonboard++;
lcd.setcursor(0,1);
lcd.print("passenger 2 added");
}
else
{
lcd.setcursor(0,1);
lcd.print("passenger in");
}
break;
case '3':
if(!onboard[2]){
onboard[2] = true;
numberonboard++;
lcd.setcursor(0,1);
lcd.print("passenger 3 added");
}
else
{
lcd.setcursor(0,1);
lcd.print("passenger in");
}
break;
case '4':
if(!onboard[3]){
onboard[3] = true;
numberonboard++;
lcd.setcursor(0,1);
lcd.print("passenger 4 added");
}
else
{
lcd.setcursor(0,1);
lcd.print("passenger in");
}
break;
}
}
else
digitalwrite(10,low);
}
n.b placed led on pin 10 to indicate when interrupt called...it lights when press push button
the problem when use keypad.waitforkey(), program stops executing.
can please me figure out.
here code function
void addpassenger(){
if(digitalread(3))
{
//when led lights///user can choose option
digitalwrite(10,high);
lcd.clear();
key = no_key;
while(true){
key = keypad.waitforkey();
mydelay(100);
lcd.print("?");
if(key != no_key)
break;
}
state = false;
switch(key){
case '2':
if(!onboard[1]){
onboard[1] = true;
numberonboard++;
lcd.setcursor(0,1);
lcd.print("passenger 2 added");
}
else
{
lcd.setcursor(0,1);
lcd.print("passenger in");
}
break;
case '3':
if(!onboard[2]){
onboard[2] = true;
numberonboard++;
lcd.setcursor(0,1);
lcd.print("passenger 3 added");
}
else
{
lcd.setcursor(0,1);
lcd.print("passenger in");
}
break;
case '4':
if(!onboard[3]){
onboard[3] = true;
numberonboard++;
lcd.setcursor(0,1);
lcd.print("passenger 4 added");
}
else
{
lcd.setcursor(0,1);
lcd.print("passenger in");
}
break;
}
}
else
digitalwrite(10,low);
}
n.b placed led on pin 10 to indicate when interrupt called...it lights when press push button
just use getkey() , check if returned value not equal no_key.
Arduino Forum > Using Arduino > Programming Questions > Problem with using keypad.h
arduino
Comments
Post a Comment