在这个项目中,我将向您展示如何在诺基亚5110液晶显示器的帮助下设计一个简单的图形用户界面系统。我将设计一个最小的诺基亚5110菜单界面的帮助Arduino和几个按钮。
使用这个Arduino诺基亚5110液晶菜单界面作为参考,您可以设计甚至复杂的GUI系统在几个图形液晶显示器,如诺基亚5110液晶,128×64图形液晶等。
简介
如果您还记得我之前的Arduino项目,我已经实现了使用Arduino连接诺基亚5110 LCD的基本指南。这个项目只是介绍了LCD模块以及如何使用Arduino显示一些简单的文本。
由于诺基亚5110 LCD是一个图形LCD模块,我们可以控制它的单个像素,有很多我们可以做的,而不是简单地显示一些文本。我们能做的一件事就是以位图的形式显示图像。
但是,如果你真的想提取诺基亚5110 LCD的84×48分辨率的最佳效果,那么设计一个图形用户界面来与Arduino(或任何其他微控制器)交互是一个很好的选择。
所以,让我们设计一个简单的Nokia 5110 Menu系统,我们可以用3个按钮来控制它,并以更直观的方式与Arduino交互。
这个项目的目的是在诺基亚5110 LCD上显示一个简单的菜单,并使用三个按钮在菜单项中导航。
在之前的教程中,我已经讨论了诺基亚5110 LCD以及如何将其与Arduino连接的重要信息。因此,我将不再重复所有这些步骤,而是将本教程的重点放在Arduino诺基亚5110 LCD菜单界面的设计上。
Arduino诺基亚5110液晶菜单
图形用户界面或简称GUI是一种使用显示屏幕与硬件交互的方式。GUI使与硬件的交互变得更容易,因为我们可以从硬件得到可视化的反馈。
例如,您正在设计一个简单的远程监控系统,以检查灯是开着还是关着。如果我们在设计系统时,将灯光(可能位于很远的地方)的状态显示在我们附近的屏幕上,那么工作就会变得非常容易。
本Arduino诺基亚5110菜单界面教程的目的是概述如何容易使用Arduino,诺基亚5110 LCD和三个按钮设计我们自己的GUI系统。
我们将在诺基亚5110 LCD上显示一个“菜单”,并使用按钮进行导航。使用这个设置,我们可以通过Nokia 5110菜单与Arduino交互,并控制不同的参数(如LCD的背光和显示器的对比度)。
线路图
下图是Arduino诺基亚5110 LCD菜单界面系统的电路图。
组件的要求
- Arduino UNO
- 诺基亚5110液晶
- 电平转换模块x 2
- 按钮x 3
- 220Ω电阻
- 10 KΩ x 3(可选,用于外部引体向上)
- 电路试验板
- 试验板电源
- 连接电线
硬件连接
硬件连接类似于Arduino和诺基亚5110 LCD的基本接口。但为了适应按钮和背光控制,我稍微修改了连接(确切地说,是Arduino的引脚)。
重要提示:诺基亚5110 LCD支持的最大逻辑电压为3.6V。因此,我使用了一对逻辑电平转换器模块,使Arduino和诺基亚5110之间的连接。更多信息和如何建立电路没有逻辑电平转换器,查看Arduino诺基亚5110液晶教程。
我们知道诺基亚5110液晶显示器的通信模式是SPI式串行接口。因此,我选择Arduino的硬件SPI来控制诺基亚5110 LCD。下表显示了诺基亚5110 LCD模块和Arduino UNO对应的引脚连接。
诺基亚5110液晶 | Arduino UNO |
RST | 数字IO 8 |
CE | 数字IO 10 |
直流 | 数字IO 9 |
喧嚣 | 数字IO 11 |
CLK | 数字IO 13 |
VCC | 3.3 v |
提单 | 数字IO 7 |
接地 | 接地 |
从上表中可以看到,我没有将LCD的BL(背光)引脚连接到3.3V(或5V),而是将其连接到Arduino的Digital IO引脚7上(通过220Ω限流电阻)。这使得我们可以根据需要控制显示器的背光。
此外,我们需要三个按钮来实现“上”、“下”和“选择”功能。按钮的一端连接到GND上,另一端分别连接到数字IO引脚4,2,3上。
我有一个IO板,由一堆按钮和LED组成。板上的按钮使用10KΩ上拉电阻拉高。这意味着按钮所连接的Arduino引脚被外部拉高。我不需要在代码中做任何事情。
如果你没有使用任何外部上拉电阻的按钮,那么你必须在代码中使用内部上拉功能。
设计诺基亚5110的菜单
诺基亚5110菜单系统的设计非常简单。最初,LCD显示一个主菜单页面(我们称其为第1页),顶部是一个Title,后面是三个菜单项。
我给的标题是“诺基亚菜单”,三个菜单项是“设置对比度”,“背光”和“默认”。菜单项分别被赋予数字1、2和3(在代码内部)。默认情况下,第一个菜单项将在系统重置(或启动)时突出显示。
导航菜单
我们可以使用三个按钮在菜单中导航,它们被恰当地命名为向上、向下和选择。因此,如果我们在第1页,如果菜单项1当前是高亮显示的,那么我们可以通过按上或下按钮高亮显示(或导航到)其他菜单项。
显然,如果你按下“上”键,下一项将被突出显示,如果你按下“下”键,上一项将被突出显示。
如果你达到了极端情况,即菜单项1或3,按上或按下,那么菜单项将被圈(或圈)回来。例如,如果菜单项1当前高亮显示,如果您按下向上按钮,那么菜单项3将高亮显示。
类似地,如果菜单项3当前高亮显示,如果您按下向下按钮,那么菜单项1将高亮显示。
对比度调整
现在,让我们看看如何设置不同的值。假设您当前位于第1页,菜单项1(设置对比度)突出显示。如果您按下“选择”按钮,那么第2页将被激活。此页面用于调整显示的对比度。
在第2页中,您可以通过分别按向上或向下按钮来增加或减少对比度。对比度将在飞行中调整,即,当你按上或下按钮。在任何时候,如果您按下“选择”按钮,您将返回到第1页,菜单项1将被突出显示。
控制背光
您可以使用菜单项2(背光)打开或关闭诺基亚5110 LCD的背光。默认情况下,背光是打开的。在第1页中,通过按上或下按钮突出显示菜单项2。
一旦菜单项2高亮显示,您可以按“选择”按钮切换背光。背光的当前状态,即ON或OFF被打印在菜单项2的旁边。
恢复默认值
第三个菜单项叫做“Default”。该选项将恢复默认值,即,显示对比度设置为“60”,并打开背光。
代码
如果您已经按照前面的教程下载了库,那么就不需要再重复这些步骤了。让我再解释一遍。要将Nokia 5110 LCD模块与Arduino连接,您需要下载几个库。
在Arduino IDE中,进入“Tools -> Manage Libraries…”选项。搜索“PCD8544诺基亚”并安装“Adafruit PCD8544诺基亚5110液晶库”。同时通过搜索安装“Adafruit GFX库”。我们必须在代码中包含这两个库。
下面是在诺基亚5110 LCD上显示菜单的代码。
结论
在本项目中实现了一个教程,在基于Arduino的Nokia 5110菜单显示的帮助下设计一个简单的GUI(图形用户界面)系统。
这是一个非常小的设计,但您可以将其扩展为一个完整的GUI系统。此外,你可以使用旋转编码器模块,而不是使用按钮,这使事情更有趣。
2反应
你好。我打算用这个做我的小项目。我真的需要你的帮助来做这个项目。这完全可行吗?请让我知道哪一个更好的诺基亚5110 lcd接口arduino或esp32?
是的。这是操作。这里的编码只是为了简单起见。
关于Arduino vs ESP32,这取决于你的应用程序。如果你只是想要一个微控制器来驱动LCD并接受用户的输入(浏览菜单),那么Arduino就足够了。但ESP32拥有更强大的处理器,具有额外的Wi-Fi连接能力。如果您的应用程序中需要这一点,那么ESP32是很好的选择。看看Arduino和ESP32的成本,我建议您选择ESP32,因为它提供的功能非常便宜(与Arduino相比)。