目录
简介
知道怎么使用ESP8266(nodemcu)和Lua语言去驱动PCD8544低成本的驱动84×48 LED显示屏吗?这个显示屏就是当年诺基亚使用的屏幕,现在这个显示屏比较便宜,而且功耗也比较低。接下来,咱们就去驱动一下这个大佬级别的显示屏吧。Let’s go!
步骤一 材料清单
硬件:
- nodeMCU ESP8266开发板×1
- 诺基亚5110 LED显示屏×1
- 面包板× 1
- 若干杜邦线
- 电阻10kΩ×1
软件:
- ESPlorer
步骤二 硬件搭建
u8g2模块仅通过SPI支持PCD8544控制器。这意味着我们必须在开发板上使用HMOSI和HSCLK GPIO。
- 引脚1 – RST – > D0 / GPIO16
- 引脚2 – CE(CS) – > D8 / GPIO15 – 用10k电阻下拉至GND
- 引脚3 – DC – > D4 / GPIO2
- 引脚4 – DIN – > D7 / HMOSI(固定 – 您不能使用不同的引脚)
- 引脚5 – CLK – > D5 / HSCLK(固定 – 您不能使用不同的引脚)
- 引脚6 – VCC – > 3.3V – 来自开发板或其他来源
- 引脚7 – BL ….未使用
- 引脚8 – GND – > GND – 来自开发板或其他来源。
步骤三 开始编程
在编程之前,nodemuc开发板需要写入固件
nodeMCU固件包括以下模块:gpio,i2c,spi,u8g2,uart
u8g2配置 – 确保包含您的字体。对于这个项目的示例,我们将需要6x10_tf和5x8_tf字体
固件构建地址:点击进入
Lua程序:
--[[
Nokia 5110 LED with PCD8544
8 November 2018
Hardware:
nodeMCU ESP8266(EX) Devkit V3
8 pin Nokia 5110 84x48 display w PCD8544
Wiring:
LED -> NodeMCU 8266
1 - RST -> D0/GPIO16
2 - CE (CS) -> D8/GPIO15 - pull down with 10K to GND
3 - DC -> D4/GPIO2
4 - DIN -> D7/HMOSI
5 - CLK -> D5/HSCLK
6 - VCC -> 3.3V
7 - BL -> Not used in this example
8 - GND -> GND
nodeMCU Firmware Build
built against the master branch and includes the following modules: file, gpio, i2c, net, node, spi, tmr, u8g2, uart, wifi, tls
u8g2 - SPI - pcd8544_84x48 module
u8g2 - fonts: 6x10_tf, 5x8)tf
--]]
-- Variables
PIN_CS = 8 -- GPIO15, pull-down 10k to GND
PIN_DC = 4 -- GPIO2
PIN_RES = 0 -- GPIO16
M_BUS = 1
-- Initialise module
spi.setup(M_BUS, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, 8, 8)
--gpio.mode(cs, gpio.INPUT, gpio.PULLUP)
disp = u8g2.pcd8544_84x48(M_BUS, PIN_CS, PIN_DC, PIN_RES)
disp:setFontRefHeightExtendedText()
disp:setContrast(125)
disp:setFontPosTop()
-- start
disp:clearBuffer() -- start with clean buffer
disp:setFont(u8g2.font_6x10_tf) -- set 6x10 font
disp:drawStr(1, 1, "Nokia 5110")
disp:drawStr(1, 9, "(PCD8544) test")
disp:drawStr(2, 17, "for nodeMCU")
disp:drawStr(2, 25, "by")
disp:setFont(u8g2.font_5x8_tf) -- switch to smaller font
disp:drawStr(1, 33, "ServerOnTheMove")
disp:drawStr(48, 39, ".com.au")
disp:sendBuffer() -- sent buffer to display
-- and done
步骤四 最终演示
原作者:SOTM