0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在不使用I2C通信的情况下将NodeMCU与16x2 LCD连接

科技观察员 来源:circuitdigest 作者:里沙布·耆那教 2022-11-14 17:24 次阅读

在本教程中,我们将了解如何在不使用 I2C 通信的情况下将 NodeMCU 与 16x2 LCD连接。在这里,我们将使用移位寄存器 SN74HC595 连接 16x2 LCD。即使不使用任何移位寄存器,我们也可以对其进行接口。我们将在本教程中看到这两种接口。两种接口之间的主要区别在于NodeMCU中使用的引脚数量。

所需材料:

节点单片机 ESP12E

SN74HC595 移位寄存器 IC

16x2液晶模块

电位器

公-母线

面包板

移位寄存器:

在数字系统中,移位寄存器是触发器的组合,触发器串联并共享相同的时钟。在这个级联封装中,一个触发器的数据输出充当下一个触发器的数据输入,这导致电路将存储在其中的位数组移动一个位置。

我们将要使用的IC是SN74HC595N。它是一款简单的8位串行并行输出移位寄存器IC。简而言之,该IC允许通过在并行和串行格式之间转换数据来向微控制器添加额外的输入或输出。我们的微控制器使用该IC的3个引脚串行发送数据。实际上,从输入引脚获取 8 位信息后,8 位输出将出现在 8 个引脚上。

IC SN74HC595N 的引脚图和引脚功能如下:

poYBAGNyCWSAOG-sAAAky6ujAME421.png

poYBAGNyCWaAHInQAACFwltjO-s828.png

您可以在此处找到74HC595N与Arduino和Raspberry Pi的接口。

使用 ESP12 接口 LCD,无需使用移位寄存器:

如果您已将16x2 LCD与Arduino板一起使用,那么它将非常容易。您只需在NodeMCU中连接引脚,就像使用Arduino板一样。

NodeMCU中有16个GPIO引脚,我们需要6个引脚和GND,vcc。根据下面给出的电路图连接引脚:

pYYBAGNyCWyAPC1vAAEFwwc4OGA734.png

我们将使用4 个数据引脚和 RS、LCD 的 EN,它们连接为:

液晶屏的d7引脚==节点MCU的D8引脚

液晶屏的 d6 引脚 == 节点MCU 的 D7 引脚

液晶屏的d5引脚==节点MCU的D6引脚

液晶屏的d4引脚==节点MCU的D5引脚

液晶显示器的 RS 引脚 == 节点MCU 的 D2 引脚

液晶屏的 en 引脚 == 节点MCU 的 D3 引脚

可以将任何 GPIO 用于这些连接。

法典:

#include

const int RS = D2, EN = D3, d4 = D5, d5 = D6, d6 = D7, d7 = D8;

LiquidCrystal lcd(RS, EN, d4, d5, d6, d7);

void setup() {

// set up the LCD's number of columns and rows:

lcd.begin(16, 2);

// Print a message to the LCD.

lcd.print("hello, world!");

}

void loop() {

// set the cursor to column 0, line 1

// (note: line 1 is the second row, since counting begins with 0):

lcd.setCursor(0, 1);

// print the number of seconds since reset:

lcd.print(millis() / 1000);

}

正如我们所看到的,我们已经使用了 6 个引脚的 NodeMCU。这个小板可用的引脚已经更少了,我们只剩下很少的引脚来连接其他传感器

因此,为了克服这个问题,我们将使用移位寄存器IC,这将最大限度地减少no。节点MCU上使用的引脚。

使用 ESP12 接口 LCD,使用移位寄存器 SN74HC595N:

移位寄存器IC中提供8个输出引脚和3个输入引脚。我们将使用 6 个输出引脚与 LCD 连接,使用 3 个输入引脚连接到 NodeMCU。

LCD与IC的连接如下:

液晶屏D7引脚==IC引脚1

液晶屏D6引脚==IC引脚2

液晶屏D5引脚==IC引脚3

液晶屏D4引脚==IC引脚4

液晶屏的RS引脚==IC的引脚7

液晶屏引脚 == IC 引脚 15

节点MCU与IC的连接:

节点MCU的D6引脚==IC的引脚14,IC的数据引脚

节点MCU的D7引脚==IC的引脚12,IC的锁存引脚

节点MCU的D8引脚==IC的引脚11,IC的时钟引脚

将 IC 的引脚 16 和 PIN 10 连接到 Vcc。

将 IC 的引脚 8 和引脚 13 连接到接地。

根据下图仔细制作电路:

pYYBAGNyCXGAShnEAAEnsOUJtjY201.png

现在我们的硬件已准备好进行编程

1. Arduino IDE的Goto Sketch菜单。

2. 单击“包括库”。

3.现在,单击添加.zip库。选择您从给定链接下载的zip文件并完成。

现在上传下面给出的代码,您将看到打印LCD的消息。

法典:

#include // include the library

LiquidCrystal595 lcd(D6,D7,D8); // data_pin, latch_pin, clock_pin

void setup() {

lcd.begin(16,2); // 16 characters, 2 rows

lcd.clear();

lcd.setCursor(0,0);

lcd.print("lcd with nodemcu");

}

void loop() {

lcd.setCursor(0,1);

lcd.print("Success");

}

代码很简单,因为我们只需要在LiquidCrystal595 lcd()中给出数据引脚、锁存引脚和时钟引脚作为参数;其余代码与我们之前所做的相同。

这样,您刚刚通过使用移位寄存器保存了 3 个引脚的 NodeMCU。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • lcd
    lcd
    +关注

    关注

    34

    文章

    4278

    浏览量

    164252
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1348

    浏览量

    120900
  • NODEMCU
    +关注

    关注

    13

    文章

    289

    浏览量

    21031
收藏 人收藏

    评论

    相关推荐

    在树莓派上装LCD 16x2显示屏

    16x2 液晶显示屏,它有16个数据引脚,但是我们只用6个就可以了。市面上的LCD 16x2 液晶显示屏基本都是基于Hitachi HD44780
    发表于 01-15 10:53

    I2C通信问题

    91//定义从机读控制字节typedef unsigned char uint8;uint8 date;***it SDA=P2^0;//定义I2C通信的数据线***it SCL=P2
    发表于 10-05 17:35

    16x2 LCD PIONEER套件屏蔽

    使用单独的电压调节器,16X2液晶模块使用HD44 7805V控制器,缺少光,跳线选择几种连接电源的方式。屏蔽可以被配置为使用面包板或线缠绕端子。我在LCD问题上没有问题,如CY8CKIT-042
    发表于 01-16 15:09

    如何驱动I2C总线?

    大家好,我使用的是KC705 Kintex主板。 Iwantto仅在不使用处理器的情况下HDMI用于FPGA。我知道我必须通过I2C写入ADV7511。我有一些代码用于示例屏幕,除了
    发表于 09-20 07:25

    什么情况下发生I2C设备进入死锁

    I2C总线电平:SCL为高,SDA一直为低。软件层一直返回BUS_BUSY。什么情况下发生?正常mcu上电后检测RTC,之后每秒读一次时间,在做实验的时候使mcu的电压刚好在临界区间,致使mcu在
    发表于 10-29 08:06

    I2C接口LCD何在STM32环境的调试?

    I2C接口LCD何在STM32环境的调试?
    发表于 02-14 06:51

    串行显示LCD 16x2监视器

    描述串行显示 LCD 16x2 监视器这是一个小项目,我需要能够通过串行将简单文本显示到便宜的 LCD 显示器 16 字符 x
    发表于 08-19 06:16

    NodeMCU多个i2c不工作是怎么回事?

    )和 16x2 液晶显示器。我想一起跑步。我可以在 arduino 中做,但我不能在 nodemcu 中做。问题是我如何一起运行 i2c 模块。有时一个模块工作而其他模块不工作。我的代码;/* SD 卡读/写
    发表于 02-24 07:40

    NodeMCU中的I2C接口是否可以高速运行?

    。但 NodeMCU I2C 模块仅支持 i2c.SLOW 速度 然后我通过 I2C HMC5983 直接
    发表于 04-27 08:24

    在带gps的NodeMCU ESP8266和带i2clcd中使用什么电池?

    我是硬件方面的初学者,我想在锂离子电池 lgdbhg21865 18650 上运行带有 gps 模块的 NodeMCU 和带有 i2cLCD 16x2 作为独立设备,我可以就该怎
    发表于 05-22 09:50

    何在不使用FAT系统的情况下字节直接保存到microSD扇区?

    我目前正在做这个项目:连接到microsd卡的NodeMCU。 我已经成功地在 microSD 中保存和读取文件。现在我想在不使用 FAT 系统的情况下
    发表于 05-25 14:23

    NodeMCU 16X2 LCD代码问题如何解决?

    SCL D3 #define SDA D4 LiquidCrystal_I2C lcd(0x27, 16, 2); void setup
    发表于 06-09 08:00

    带Arduino Uno的I2C 16x2 LCD接口(仅4线)

    电子发烧友网站提供《带Arduino Uno的I2C 16x2 LCD接口(仅4线).zip》资料免费下载
    发表于 10-18 09:47 0次下载
    带Arduino Uno的<b class='flag-5'>I2C</b> <b class='flag-5'>16x2</b> <b class='flag-5'>LCD</b>接口(仅4线)

    连接一个16x2字符LCD

    电子发烧友网站提供《连接一个16x2字符LCD.zip》资料免费下载
    发表于 11-17 09:31 0次下载
    <b class='flag-5'>连接</b>一个<b class='flag-5'>16x2</b>字符<b class='flag-5'>LCD</b>

    如何连接和使用16x2 I2C LCD的教程

    电子发烧友网站提供《如何连接和使用16x2 I2C LCD的教程.zip》资料免费下载
    发表于 11-22 14:36 0次下载
    如何<b class='flag-5'>连接</b>和使用<b class='flag-5'>16x2</b> <b class='flag-5'>I2C</b> <b class='flag-5'>LCD</b>的教程