薄膜键盘接2到9口
#include <Keypad.h>
const byte ROWS = 4; //four rows
const byte COLS = 4; //three columns
char passwd='1';
char keys[ROWS][COLS] = {
{'/','#','0','.'},
{'*','9','8','7'},
{'-','6','5','4'},
{'+','3','2','1'}
};
String firstNum = "";
String secondNum = "";
int demo=1;
float result = 0.0;
char operatr = ' ';
byte rowPins[ROWS] = {5, 4, 3, 2}; //连接到键盘的行插脚
byte colPins[COLS] = {9,8, 7, 6}; //连接到键盘的列插脚
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );//实例化Keypad 对象
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.println("简易四则运算器:");
while(1)
{
char key = keypad.getKey();//新建一个key 变量 用于获取键盘当前的值
if(demo==1)
{
if (key != NO_KEY && (key == '1' || key == '2' || key == '3' || key == '4' || key == '5' ||key == '.' || key == '6' || key == '7' || key == '8' || key == '9' || key == '0')) {
Serial.print(key);
firstNum =firstNum +key;
}
else if(key != NO_KEY &&(key == '+' ||key == '-' ||key == '*' ||key == '/' ||key == '#' ))
{
Serial.print(key);
operatr=key;
demo=demo+1;
}
}
else
{
if(key != NO_KEY && (key == '1' || key == '2' || key == '3' ||key == '.' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9' || key == '0')) {
Serial.print(key);secondNum =secondNum +key;}
else if(key != NO_KEY &&(key == '#' ))
{
Serial.print("=");
if(operatr=='+')
{
result=firstNum.toFloat()+secondNum.toFloat();
}
else if(operatr=='-')
{
result=firstNum.toFloat()-secondNum.toFloat();
}
else if(operatr=='*')
{
result=firstNum.toFloat()*secondNum.toFloat();
}
else if(operatr=='/')
{
result=firstNum.toFloat()/secondNum.toFloat();
}
Serial.print(result);
demo=1;firstNum = "";secondNum = "";operatr = ' ';
Serial.println("");
}
}
}
}