0°

在nodemcu上使用诺基亚5110显示屏(Nokia5110 LCD)

简介

知道怎么使用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

步骤四 最终演示

在nodemcu上使用诺基亚5110显示屏(Nokia5110 LCD)

原作者:SOTM

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论