pin6网址:Arduino操控1602 LCD液晶屏

Arduino操控1602 LCD液晶屏

参考网址:https://lastminuteengineers.com/arduino-1602-character-lcd-tutorial/
ARDUINO项目

原文地址:https://circuitdigest.com/microcontroller-projects/arduino-lcd-interfacing-tutorial

16×2 LCD在此必须理解,每个字符中都有5x10 = 50像素,因此要显示一个字符,所有50像素必须一起工作。但是我们不必担心,因为还有另一个控制器(HD44780)负责控制像素。(您可以在LCD单元中看到它,它是背面的黑眼圈)。

在本教程中,我们将使用ARDUINO UNO连接16x2 LCD。将LCD连接到ARDUINO的过程非常简单。在这里,我们不必担心数据发送和接收。我们只需要定义引脚号,它就可以在LCD上显示数据了。

所需组件

硬件:ARDUINO UNO,电源(5v),JHD_162ALCD(16x2LCD),100uF电容器。

软体:Arduino IDE。

电路图和说明

在16x2 LCD中,如果有背光,则全部有16个引脚,如果没有背光,则有14个引脚。

可以给背光灯插针供电或断开。在14个引脚中,有8个数据引脚(7-14或D0-D7),2个电源引脚(1&2VSS&VDDGND&+ 5v),第三个用于对比度控制的引脚(VEE控制字符的粗细)如图所示)和3个控制引脚(RS&RW&E)。

在电路中,可以观察到我只接了两个控制引脚。对比度位和READ / WRITE并不经常使用,因此它们可以接地。这使LCD处于最高对比度和写模式。我们只需要控制ENABLE和RS引脚即可相应地发送字符和数据。

LCD的连接如下所示:

引脚连接
PIN1或VSS接地
PIN2或VDD或VCC+ 5v电源
PIN3或VEE或V0对比度调整,接地(为初学者提供最大对比度),接正极时对比度最弱
PIN4或RS(寄存器选择)ARDUINO UNO的PIN0,1数据寄存器(DR),0指令寄存器(IR)
PIN5或RW(读/写)RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。接地(将LCD置于读模式可简化用户的通信)
PIN6或E(启用)ARDUINO UNO的PIN1 ,高电平读取信息,负跳变时执行指令
PIN11 or D4PIN8 of ARDUINO UNO
PIN12 or D5PIN9 of ARDUINO UNO
PIN13 or D6PIN10 of ARDUINO UNO
PIN14 or D7PIN11 of ARDUINO UNO
PIN15 或 BLA 或A背光正极,可选,可以直接接3.3V或接5V添加10KΩ电阻
PIN16或BLK 或K背光负极,可选

ARDUINO IDE允许用户以4位模式使用LCD。这种通信类型使用户能够减少ARDUINO上的引脚使用,这与其他ARDUINO无需单独编程以在4 it模式下使用有关,因为默认情况下ARDUINO设置为以4位模式进行通信。在电路中,您可以看到我们使用了4位通信(D4-D7)。

因此,仅从上表的观察,我们就将LCD的6个引脚连接到控制器,其中4个引脚是数据引脚,另外2个是控制引脚。
在这里插入图片描述
上图显示了连接到ARDUINO UNO的16x2 LCD的电路图

代码解析

要将LCD连接到ARDUINO UNO,我们需要了解一些事情。

#include <LiquidCrystal.h>lcd.begin(16,2);LiquidCrystal LCD(0,1,8,9,10,11);lcd.print(“ hello,world!”);

如上表所示,我们只需要查看这四行即可在ARDUINO和LCD之间建立通信。

  • 我们需要启用头文件(#include <LiquidCrystal.h>),该头文件中写入了指令,这使用户能够以4位模式将LCD连接到UNO,而不会产生任何绒毛。使用此头文件,我们不必将数据一点一点地发送到LCD,这一切都将得到解决,我们也不必编写用于向LCD发送数据或命令的程序。

  • 我们需要告诉主板我们在这里使用哪种类型的LCD。由于我们有许多不同类型的LCD(例如20x4、16x2、16x1等)。在这里,我们将16x2 LCD连接到UNO,因此得到 lcd.begin(16,2);。对于16x1,我们得到lcd.begin(16,1);。

  • 在此说明中,我们将告诉主板我们引脚的连接位置。连接的引脚需要按“ RS,En,D4,D5,D6,D7”的顺序表示。这些引脚应正确表示。由于我们已将RS连接到PIN0等,如电路图所示,我们将板上的引脚号表示为LiquidCrystal lcd(0,1,8,9,10,11);。需要在LCD中显示的数据应写为 cd.print(“ hello,world!”);。使用此命令,LCD会显示“ hello,world!”。

  • 如您所见,我们不必担心任何其他事情,我们只需要初始化即可,UNO将准备显示数据。我们不必在此处编写程序循环来通过BYTE发送数据BYTE。

    LCD和UNO之间的通信方式在下面给出的C代码中逐步说明:

    代码

    #include <LiquidCrystal.h>// initialize the library with the numbers of the interface pinsLiquidCrystal lcd(0, 1, 8, 9, 10, 11); /// REGISTER SELECT PIN,ENABLE PIN,D4 PIN,D5 PIN, D6 PIN, D7 PINvoid setup(){ // set up the LCD's number of columns and rows: lcd.begin(16, 2);}void loop(){ // set the cursor to column 0, line 1 lcd.print(" CIRCUIT DIGEST");//print name lcd.setCursor(0, 1); // set the cursor to column 0, line 2 lcd.print("www.circuitdigest.com");//print name delay(750);//delay of 0.75sec lcd.scrollDisplayLeft();//shifting data on LCD lcd.setCursor(0, 0);// set the cursor to column 0, line1}

    相关推荐

    相关文章