亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino 计算器

组件和用品

Arduino UNO
× 1
RGB LCD 屏蔽套件,16x2 字符显示
× 1
跳线(通用)
× 1
9V 电池(通用)
× 1
面包板(通用)
× 1

关于这个项目

在本项目结束时,您将了解如何将 16x2 LCD 和键盘与 Arduino 配合使用,以及使用现成的库为它们编程是多么容易。您还将了解如何对 Arduino 进行编程以完成特定任务。

所需材料:

  • Arduino Uno(任何版本都可以)
  • 16×2 LCD 显示屏
  • 4×4 键盘
  • 9V 电池
  • 面包板和连接线

D0

键盘第一针

D1

键盘第二针

D2

键盘第三针

D3

键盘第4针

D4

键盘第5针

D5

键盘第6脚

D6

键盘第7针

D7

键盘第8针

D8

LCD寄存器选择引脚(引脚4)

D9

LCD 使能引脚(引脚 6)

D10

数据引脚 4(引脚 11)

D11

数据引脚 4(引脚 11)

D12

数据引脚 4(引脚 11)

D13

数据引脚 4(引脚 11)

+5V

连接到 LCD 的 Vdd 引脚(引脚 2)

地面

连接到 LCD 的 Vss、Vee 和 RW 引脚(引脚 1、3 和 5)

如果有任何连接到 pin 0 和 pin1 的东西,一些 Arduino 板可能会在上传程序时显示错误,因此如果您遇到任何问题,请在上传程序时移除键盘。

连接完成后,您的硬件将如下所示

代码

  • 无标题文件
无标题文件Arduino
* * Arduino 键盘计算器程序 */#include  //LCD 的头文件来自 https://www.arduino.cc/en/Reference/LiquidCrystal#include  //Header来自 https://github.com/Chris--A/Keypadconst 字节 ROWS =4 的键盘文件; // 四行常量字节 COLS =4; // 三列// 定义Keymapchar keys[ROWS][COLS] ={ {'7','8','9','D'}, {'4','5','6',' C'}, {'1','2','3','B'}, {'*','0','#','A'}};byte rowPins[ROWS] ={ 0, 1, 2, 3 };// 将键盘 ROW0, ROW1, ROW2 和 ROW3 连接到这些 Arduino 引脚。byte colPins[COLS] ={ 4, 5, 6, 7 }; // 将键盘 COL0、COL1 和 COL2 连接到这些 Arduino 引脚。Keypad kpd =Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); // 创建 Keypadconst int rs =8, en =9, d4 =10, d5 =11, d6 =12, d7 =13; //LCD连接的引脚LiquidCrystal lcd(rs, en, d4, d5, d6, d7); long Num1,Num2,Number;字符键,动作;布尔结果 =假;无效设置(){液晶显示器。开始(16,2); //我们使用的是 16*2 LCD 显示屏 lcd.print("DIY Calculator"); //显示介绍信息 lcd.setCursor(0, 1); // 将光标设置到第 0 列第 1 行 lcd.print("-CircuitDigest"); //显示介绍消息 delay(2000); //等待显示器显示信息 lcd.clear(); //然后清理它}void loop() { key =kpd.getKey(); //在charif中存储按下的键值 (key!=NO_KEY)DetectButtons();if (result==true)CalculateResult();DisplayResult(); }void DetectButtons(){ lcd.clear(); //然后清理它 if (key=='*') //如果取消按钮被按下 {Serial.println ("Button Cancel");数字=数字1=数字2=0; result=false;} if (key =='1') //如果按钮 1 被按下 {Serial.println ("Button 1"); if (Number==0) Number=1; else Number =(Number*10) + 1; //按下两次 } if (key =='4') //如果按钮 4 被按下 {Serial.println ("Button 4"); if (Number==0) Number=4; else Number =(Number*10) + 4; //按下两次 } if (key =='7') //如果按钮 7 被按下 {Serial.println ("Button 7"); if (Number==0) Number=7; else Number =(Number*10) + 7; //按下两次 } if (key =='0') {Serial.println ("Button 0"); //按钮0被按下 if (Number==0) Number=0; else Number =(Number*10) + 0; //按下两次 } if (key =='2') //Button 2 被按下 {Serial.println ("Button 2"); if (Number==0) Number=2; else Number =(Number*10) + 2; //按下两次 } if (key =='5') {Serial.println ("Button 5"); if (Number==0) Number=5; else Number =(Number*10) + 5; //按下两次 } if (key =='8') {Serial.println ("Button 8"); if (Number==0) Number=8; else Number =(Number*10) + 8; //按下两次 } if (key =='#') {Serial.println ("Button Equal"); Num2=数字;结果=真; } if (key =='3') {Serial.println ("Button 3"); if (Number==0) Number=3; else Number =(Number*10) + 3; //按下两次 } if (key =='6') {Serial.println ("Button 6"); if (Number==0) Number=6; else Number =(Number*10) + 6; //按下两次 } if (key =='9') {Serial.println ("Button 9"); if (Number==0) Number=9; else Number =(Number*10) + 9; //按下两次 } if (key =='A' || key =='B' || key =='C' || key =='D') //检测第 4 列的按钮 { Num1 =Number;数 =0; if (key =='A') {Serial.println ("加法"); action ='+';} if (key =='B') {Serial.println ("减法");动作 ='-'; } if (key =='C') {Serial.println ("乘法"); action ='*';} if (key =='D') {Serial.println ("Devesion");动作 ='/';} 延迟(100); } }void CalculateResult(){ if (action=='+') Number =Num1+Num2; if (action=='-') Number =Num1-Num2; if (action=='*') Number =Num1*Num2; if (action=='/') Number =Num1/Num2; }void DisplayResult(){ lcd.setCursor(0, 0); // 将光标设置到第 0 列第 1 行 lcd.print(Num1);液晶打印(动作);液晶打印(数字2);如果(结果==真){lcd.print(“=”); lcd.print(Number);} //显示结果 lcd.setCursor(0, 1); // 将光标设置到第 0 列第 1 行 lcd.print(Number); //显示结果}

示意图


制造工艺

  1. 擀面杖
  2. 保龄球瓶
  3. Arduino 键盘漏洞利用演示 (HID) 和预防
  4. 通过 Arduino 对 Atmel AT89 系列进行编程
  5. Arduino Spybot
  6. 使用 Arduino 读取 RC 接收器 PPM 信号
  7. FlickMote
  8. 自制电视 B-Gone
  9. 主时钟
  10. Arduino + LEDs + MIDI 键盘 + MuseScore =Piano Tutor
  11. 找到我
  12. 25 kHz 4 Pin PWM 风扇控制与 Arduino Uno