利用薄膜键盘制作一个简易四则运算器

薄膜键盘接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("");
      }
    }
  }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值