在这个项目中,我们将学习如何将诺基亚5110 LCD与ESP32 Devkit开发委员会接口。我们将看到一些有关诺基亚5110 LCD,Phillips的PCD8544驱动程序IC,ESP32诺基亚5110接口的工作方式,并使用ESP32在诺基亚5110 LCD上显示一些文本和图形。
介绍
如果您想显示动画,自定义符号,不同类型和大小的字体和许多其他相关内容(形状,符号),则图形显示非常有用。
如今,我们正在变得更大,色彩丰富的图形显示,有些甚至具有触摸屏功能。但是,如果您想要一个具有不错的分辨率而较低的简单显示,那就是成本呢?
诺基亚5110 LCD模块是为此目的的绝妙选择。诺基亚5110 LCD最初用于诺基亚3110和诺基亚5110手机,由于低成本,紧凑的尺寸和简单的界面,诺基亚5110 LCD已成为DIY社区中的流行显示器。
这以及Arduino社区(以及其他开源社区)为驾驶员提供的支持,使诺基亚5110 LCD成为我们项目中必须使用的显示设备。
诺基亚5110 LCD的简短说明
诺基亚5110 LCD模块基于Phillips的PCD8544 LCD控制器IC。它能够驾驶84列和48行,这是诺基亚5110 LCD的分辨率,即84×48像素。
PCD8544的SRAM内部504字节分为6个银行,每个银行都能存储84个字节数据。
因此,6个银行 * 84个字节= 504字节。
要记住的重要一件重要的事情是诺基亚5110 LCD和PCD8544控制器在3.3V电源上工作。这不是问题,因为我们正在使用ESP32,这也是3.3V设备。但是,如果您打算将诺基亚5110 LCD与Arduino(或其他5V微控制器)一起使用,则需要进行适当的逻辑级别转换。
我对将5110 LCD与Arduino接口进行了专用教程。如果您打算将诺基亚5110 LCD与Arduino一起使用,请检查一下。
此外,诺基亚5110 LCD模块配备了许多背光颜色选项,例如:红色,蓝色,白色,黄色和绿色。就我而言,我得到了蓝色背光模型。
ESP32诺基亚5110 LCD界面
足够的理论。让我们继续将诺基亚5110与ESP32接口。但是首先,让我们快速看一下诺基亚5110模块的插图。下表和图像显示了诺基亚5110 LCD的引脚。
引脚号 |
引脚名称 | 引脚描述 |
1 |
第 | 外部重置输入 |
2 | CE | 芯片启用 |
3 |
DC | 数据 /命令 |
4 | din | 序列数据输入 |
5 |
clk | 串行时钟输入 |
6 | VCC | 电源电压 |
7 |
bl | 背光供应 |
8 | gnd | 地面 |
从图像中可以看到,诺基亚5110 LCD(或PCD8544控制器)使用SPI之类的串行接口与微控制器进行通信。因此,我们必须使用ESP32微控制器的SPI引脚。
即使ESP32 SOC具有四个SPI接口,但其中两个与Flash IC绑定。因此,我们留下了两个硬件SPI接口。它们是:HSPI和VSPI。您可以将以下ESP32 PINOUT图像用作参考。
我将在此项目中使用VSPI接口。我们需要硬件VSPI接口的MOSI,CLK(SCK)和CS引脚。诺基亚5110 LCD的重置(RST)和数据 /命令(DC)引脚可以连接到ESP32的任何GPIO引脚。
因此,ESP32和诺基亚5110 LCD之间的最终连接看起来像这样:
诺基亚5110 LCD |
ESP32 Devkit板 |
第 |
GPIO 2(D2) |
CE | GPIO 15(D15) |
DC |
GPIO 4(D4) |
din | GPIO 23(D23) |
clk |
GPIO 18(D18) |
VCC | 3.3V |
bl |
3.3V(通过220Ω电阻) |
gnd | gnd |
笔记:我不使用vspi_cs,而是使用了hspi_cs。但是不用担心。
您可以另一个GPIO引脚来控制LCD的背光,但我始终选择了背光,因此我通过220Ω电流限制电阻将诺基亚5110 LCD的“ BL”引脚连接到3.3V供应。
需要组件
- ESP32 Devkit开发委员会
- 诺基亚5110 LCD模块
- 面包板
- 连接电线
- Micro-USB电缆
电路原理图
下图显示了ESP32诺基亚5110 LCD接口的连接。
准备Arduino IDE
您需要在Arduino IDE中为诺基亚5110 LCD下载两个库。它们是设备特定的“ Adafruit PCD8544诺基亚5110 LCD库”和支持的“ Adafruit GFX”库。如果您与诺基亚5110 LCD合作并以前安装了这些库,则可以跳过此步骤。
在Arduino IDE中,选择工具 - >管理库。。。打开图书馆经理。
使用搜索栏搜索“ PCD8544”,并安装“ Adafruit PCD8544诺基亚5110 LCD库”。
要显示小图形,例如不同的形状和符号,您必须使用Adafruit GFX库。搜索“ GFX”并安装“ Adafruit GFX”库。安装两个库后,您可以关闭库管理器。
用ESP32测试诺基亚5110 LCD
如前所述,进行所有连接,然后将ESP32连接到计算机。转到工具 - >董事会,并确保选择“ ESP32 DEV模块”。还使用正确的COM端口。
对于第一个程序,我只是在诺基亚5110 LCD上显示带有两种不同尺寸的文本。
代码
这是一个简单的代码,可以证明使用ESP32在诺基亚5110 LCD上显示文本的容易性。您可以尝试其他选项,例如显示不同的形状,普通文本和倒文本,更改字体和大小等。
调整显示器的对比度
诺基亚5110 LCD的有用功能之一是,您可以使用函数“ setConcontast”来数字地调整显示的对比度。如果您想要对比度的软件控制而不是物理调整(例如16×2字符LCD),这将非常有帮助。
因此,我制作了一个小电路,将5kΩ锅连接到ESP32的ADC1通道6。并基于ADC的输出,我设置了诺基亚5110 LCD显示屏的对比度。
要记住的一件重要的事情是,ESP32中的ADC具有12位分辨率。这意味着ADC转换的输出数字值将在0-4095的范围内。但是诺基亚5110 LCD可以接受的对比度范围在0到100之间。
如果您之前在Arduino中使用了ADC和PWM,则有一个称为“ MAP”的函数,该函数将一个数字映射到另一个范围(在这种情况下,从0 - 4095到0-100)。我们必须在代码中使用此功能。
电路原理图
下图显示了使用电位器调整诺基亚5110 LCD对比度的电路。
代码
结论
一个涉及ESP32开发委员会和诺基亚5110 LCD的简单项目。您了解了诺基亚5110 LCD,PCD8544 LCD控制器,ESP32诺基亚5110 LCD接口如何工作以及如何使用ESP32在诺基亚5110上显示简单文本。