编程总是很有趣,如果你刚刚开始嵌入式编程,Arduino是一个很好的平台。在本教程中,我们将使用 Arduino 构建自己的计算器。这些值可以通过键盘(4×4 键盘)发送,结果可以在LCD 屏幕上查看(16×2 点阵)。该计算器可以执行简单的运算,例如整数的加法,减法,乘法和除法。但是一旦你理解了这个概念,你甚至可以使用Arduino的内置函数实现科学函数。
在本项目结束时,您将了解如何将 16x2 LCD 和键盘与 Arduino 一起使用,以及使用现成的库为它们编程是多么容易。
所需材料:
Arduino Uno (任何版本都可以)
16×2 液晶显示屏
4×4 键盘
9V电池
试验板和连接线
电路图:
上面给出了这个Arduino计算器项目的完整电路图。电路图中显示的+5V和接地连接可以从Arduino的5V和接地引脚获得。Arduino本身可以从笔记本电脑或通过DC插孔使用12V适配器或9V电池供电。
我们使用Arduino以4位模式操作LCD,因此只有LCD的最后四个数据位连接到Arduino。键盘将有 8 个输出引脚,必须从引脚 0 连接到引脚 7,如上所示。您可以使用以下连接表来验证您与Arduino的连接,也可以检查4x4键盘与Arduino的接口。
Arduino 引脚名称: | 连接到: |
D0 | 1圣键盘的销钉 |
D1 | 2德·键盘的销钉 |
D2 | 3RD键盘的销钉 |
D3 | 4千键盘的销钉 |
D4 | 5千键盘的销钉 |
D5 | 6千键盘的销钉 |
D6 | 7千键盘的销钉 |
D7 | 8千键盘的销钉 |
D8 | 注册液晶屏选择引脚(引脚4) |
D9 | 液晶屏的使能引脚(引脚 6) |
D10 | 数据引脚 4(引脚 11) |
D11 | 数据引脚 4(引脚 11) |
D12 | 数据引脚 4(引脚 11) |
D13 | 数据引脚 4(引脚 11) |
(55 | 连接到液晶屏的 Vdd 引脚(引脚 2) |
地 | 连接到液晶屏的 Vss、V 形和 RW 引脚(引脚 1、3 和 5) |
如果有任何连接到引脚 0 和 pin1 的内容,某些 Arduino 板可能会在上传程序时显示错误,因此,如果您遇到任何问题,只需在上传程序时删除键盘即可。
连接完成后,您的硬件将如下所示
Arduino计算器程序:
该项目的完整Arduino程序在本项目结束时给出。代码被分成有意义的小块,并在下面解释。
如前所述,我们将使用库将LCD和键盘与Arduino连接。因此,让我们先将它们添加到Arduino IDE中。默认情况下,LCD库已包含在Arduino中,因此我们不必担心。对于键盘库,单击链接以从Github下载。您将获得一个 ZIP 文件,然后通过 Sketch -> Include Library -> 添加.ZIP文件并将位置指向此下载文件添加到 Arduino。完成后,我们就可以进行编程了。
尽管我们使用了一个库来使用键盘,但我们不得不提到一些关于Arduino键盘的细节(如下所示)。变量 ROWS 和 COLS 将告诉我们的键盘有多少行和列,键盘映射显示按键在键盘上出现的顺序。我在这个项目中使用的键盘如下所示,键映射也表示相同。
下面我们进一步提到了键盘使用可变数组 rowPins 和 colPin 连接到哪些引脚。
const byte ROWS = 4; // Four rows
const byte COLS = 4; // Three columns
// Define the Keymap
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = { 0, 1, 2, 3 };// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte colPins[COLS] = { 4, 5, 6, 7 }; // Connect keypad COL0, COL1 and COL2 to these Arduino pins.
一旦我们提到了我们正在使用的键盘类型及其连接方式,我们就可以使用以下行使用这些详细信息创建键盘
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); // Create the Keypad
同样,我们还必须告诉LCD连接到Arduino的哪些引脚。根据我们的电路图,定义如下
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; //Pins to which LCD is connected
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); //create the LCD
在设置函数中,我们只显示项目的名称,然后继续主项目所在的 while 循环。
基本上,我们必须检查键盘上是否键入了任何内容,如果键入,我们必须识别正在键入的内容,然后在按下“=”时将其转换为变量,我们必须计算结果,然后最终将其显示在LCD上。这正是循环函数内部所做的,如下所示
key = kpd.getKey(); //storing pressed key value in a char
if (key!=NO_KEY)
DetectButtons();
if (result==true)
CalculateResult();
DisplayResult();
使用注释行解释每个函数内部发生的情况,浏览下面的完整代码,摆弄它以了解它的实际工作原理。
Arduino计算器的模拟:
我们也可以尝试使用 Proteus 软件模拟项目。Proteus本身没有Arduino组件,但可以轻松下载并添加到其库中。在Proteus上安装Arduino组件后,只需添加字母数字LCD和键盘即可进行连接,如电路图所示。
然后从这里下载十六进制文件,并通过双击Proteus将其添加到Arduino中,并将“程序文件”指向此下载的十六进制文件。模拟的快照如下所示,完整的工作显示在下面的视频中。
注意:给出的十六进制文件与下面给出的程序的原始文件不同。由于仿真键盘的键盘映射和实际硬件键盘的键盘映射是不同的。
Arduino计算器的工作:
按照电路图进行连接并上传下面的代码。如果显示错误,请确保已按照上面给出的说明添加了库。您还可以尝试模拟以检查问题是否出在您的硬件上。如果一切都按预期完成,那么您的硬件将如下所示,LCD 显示此
由于此处使用的键盘上没有适当的标记,因此我假设字母表是下面列出的运算符
键盘上的字符 | 假定为 |
“A” | 加法 (+) |
“乙” | 减法 (-) |
“C” | 乘法 (*) |
“D” | 分区 (/) |
"*" | 清除 (C) |
"#" | 等于 (=) |
您可以使用标记来覆盖每个按钮实际表示的内容。
完成后,您可以直接开始使用计算器。键入数字,将出现在第二行,按操作数并键入第二个数字,最后按“#”键获得结果。
-
计算器
+关注
关注
12文章
370浏览量
35816 -
Arduino
+关注
关注
171文章
5533浏览量
181687
发布评论请先 登录
相关推荐
如何使用TFT LCD构建Arduino触摸屏计算器

Nextion 3.5英寸LCD 8功能计算器设计方案
基于Arduino和LCD1602屏幕实现遥控计算器
基于Arduino UNO的3 位二进制计算器
如何使用Arduino Nano构建一个金属探测器

基于Arduino的编程计算器
使用超声波传感器和Arduino构建一个避障机器人

使用Arduino构建一个摩尔斯电码转换器

使用Arduino构建一个数字罗盘
构建一个基于Arduino的货币计数器

如何使用Arduino构建一个无线门铃

通过Arduino构建一个简单的雨量检测系统

如何利用Arduino构建一个功率计

如何构建Arduino官方开发环境
点亮LCD屏————遥控计算器 arduino

如何设计一个基于51单片机的简易计算器
怎样去设计一个简易计算器
简易嵌入式计算器_使用JSCalc制作免费的嵌入式Web计算器

实用的电工计算器
如何使用HarmonyOS实现一个简单的计算器应用
如何去制作一个简易版的计算器
函数计算器如何加改电子书?
使用51单片机DIY一个计算器的详细资料免费下载

一种新的电子计算器
如何用labview做一个科学计算器
科学计算器价钱是多少_科学计算器使用方法_科学计算器使用注意事项
求一个stm32简易计算器程序
求助一波做一个计算器
补完记忆------计算器(不一样的计算器)
ADC/DAC精度计算器(ACCU)教程

带隙基准计算器(BGRC)功能

评论