如何设计Arduino诺基亚5110液晶菜单?

在这个项目中,我将向你展示如何在诺基亚5110液晶显示器的帮助下设计一个简单的图形用户界面系统。我将在Arduino和几个按钮的帮助下设计一个最小的诺基亚5110菜单界面。

使用这个Arduino诺基亚5110 LCD菜单界面作为参考,你可以设计甚至复杂的GUI系统在几个图形LCD显示器,如诺基亚5110 LCD, 128×64图形LCD等。

Arduino-Nokia-GUI-Image1

介绍

如果您还记得我之前的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菜单界面的设计上。

接口-诺基亚5110 - lcd和arduino - 2

Arduino Nokia 5110 LCD菜单

图形用户界面或简单的GUI是一种使用显示屏幕与硬件交互的方式。图形用户界面使与硬件的交互变得更容易,因为我们可以从硬件获得视觉反馈。

例如,你正在设计一个简单的远程监控系统来检查灯是开着还是关着。如果我们设计这样一个系统,灯的状态(可能位于很远的地方)显示在我们附近的屏幕上,那么工作就变得非常容易。

本Arduino诺基亚5110菜单界面教程的目的是概述如何简单地使用Arduino,诺基亚5110 LCD和三个按钮来设计我们自己的GUI系统。

我们将在诺基亚5110 LCD上显示一个“菜单”,并使用按钮在其中导航。使用这个设置,我们可以通过Nokia 5110菜单与Arduino交互,并控制不同的参数(如LCD的背光和显示器的对比度)。

线路图

下图是Arduino Nokia 5110 LCD菜单界面系统的电路图。

Arduino-Nokia-Menu-Circuit-Diagram

组件的要求

  • Arduino UNO
  • 诺基亚5110液晶
  • 电平转换模块x 2
  • 按键x 3
  • 220Ω电阻
  • 10 KΩ x 3(可选,用于外引体向上)
  • 电路试验板
  • 试验板电源
  • 连接电线

硬件连接

硬件连接类似于Arduino和诺基亚5110 LCD的基本接口。但为了适应按键和背光控制,我稍微修改了连接(确切地说,应该是Arduino的引脚)。

重要提示:诺基亚5110 LCD支持的最大逻辑电压为3.6V。所以,我用了一对逻辑电平转换器模块来连接Arduino和Nokia 5110。要了解更多信息以及如何在没有逻辑电平转换器的情况下构建电路,请查看Arduino Nokia 5110 LCD教程。

我们知道诺基亚5110 LCD的通信模式是SPI一样的串行接口。所以,我选择了Arduino的硬件SPI来控制Nokia 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页),顶部是一个标题,后面是三个菜单项。

Arduino-Nokia-GUI-Design1

我给的标题是“诺基亚菜单”,三个菜单项分别是“设置对比度”、“背光”和“默认”。菜单项分别给出了数字1、2和3(在代码内部)。默认情况下,第一个菜单项会在系统重置(或启动)时高亮显示。

导航菜单

我们可以使用三个按钮在菜单中导航,它们被恰当地命名为“上”、“下”和“选择”。因此,如果我们在第1页,如果菜单项1当前是高亮显示的,那么我们可以通过按向上或向下按钮高亮显示(或导航到)其他菜单项。

显然,如果你按下“上”键,下一项会高亮显示,如果你按下“下”键,上一项会高亮显示。

如果你达到极端,即菜单项1或3和按上或下,那么菜单项将被圈(或环)回来。例如,如果菜单项1当前是高亮显示的,如果你按了向上按钮,那么菜单项3将被高亮显示。

类似地,如果菜单项3目前是高亮显示的,如果你按下向下键,那么菜单项1就会高亮显示。

对比度调整

现在,让我们看看如何设置不同的值。假设你现在在第1页,菜单项1(设置对比度)被突出显示。如果你按下“选择”按钮,那么第2页将被激活。这个页面专门用来调整显示的对比度。

arduino design2——诺基亚- 5110菜单

在第2页,你可以通过分别按向上或向下按钮来增加或减少对比度。当你按上或下按钮时,对比度会自动调整。在任何时候,如果你按下“选择”按钮,你将返回到第1页,菜单项1将被突出显示。

控制背光

你可以使用菜单项2(背光)打开或关闭诺基亚5110 LCD的背光。默认情况下,背光是打开的。在第1页,通过按上下键高亮菜单项2。

arduino design3——诺基亚- 5110菜单

菜单项2高亮显示后,可以按“选择”按钮切换背光。背光的当前状态,即ON或OFF会在菜单项2旁边打印出来。

恢复默认值

第三个菜单项叫做“默认”。该选项将恢复默认值,即显示对比度设置为“60”,背光打开。

arduino design4——诺基亚- 5110菜单

代码

如果你已经按照前面的教程下载了库,那么就不需要再重复这些步骤了。但让我再解释一遍。要将诺基亚5110 LCD模块与Arduino连接起来,你需要下载几个库。

在Arduino IDE中,进入Tools -> Manage Libraries…选项。搜索“PCD8544 Nokia”,安装“Adafruit PCD8544 Nokia 5110 LCD库”。同样,通过搜索安装“Adafruit GFX库”。我们必须在我们的代码中包含这两个库。

以下是在诺基亚5110 LCD上显示菜单的代码。

结论

在本项目中实现了一个教程,在基于Arduino的Nokia 5110菜单显示器的帮助下设计一个简单的GUI(图形用户界面)系统。

这是一个非常小的设计,但你可以把这个想法扩展成一个成熟的GUI系统。此外,你可以使用旋转编码器模块,而不是使用按钮,这让事情变得更有趣。

2反应

  1. 你好。我正打算做这个作为我的小项目。我真的需要你的帮助来做这个项目。这完全可行吗?请让我知道哪一个是更好的诺基亚5110 lcd接口arduino或esp32?

    1. 是的。这是操作。只是受限于这里的代码,以保持事情简单。
      关于Arduino vs ESP32,这取决于你的应用程序。如果你只是想要一个微控制器来驱动LCD并接受用户的输入(浏览菜单),那么Arduino就足够了。但ESP32有一个更强大的处理器,具有额外的Wi-Fi连接能力。如果这是你的应用程序所需要的,那么ESP32是不错的选择。看看Arduino和ESP32的成本,我建议你选择ESP32,因为它提供的功能非常便宜(与Arduino相比)。

留下一个回复

您的电子邮件地址将不会公布。必填项标*