Arduino Uno 点亮LCD1602
目录
实验效果
点亮LCD1602
凌顺实验室(lingshunlab.com分享的本例程使用的是简易接线的方法,占用d4, d5, d6, d7 ,IO口比较少(看着视频接线,已经是风中凌乱了),往后将继续更新I2C的接线方法,只用4条线就能实现对LCD屏幕的控制。
元件说明
LCD(Liquid Crystal Display)显示器的集成极大地促进了您正在开发的项目的交互性,使用户可以直接读取一些输出参数。这些值可以是传感器读取的简单文本或数值,例如温度或压力等。
LCD屏幕可以显示16个字符x2行,也就是LCD1602的意思,每个字符都是由5x8的像素网格组成。
当然大小还有2004,1604等等其他规格。 颜色方面由蓝底白字,绿底黑字等等。
当电流施加到这种特殊类型的晶体上时,它变成不透明,从而挡住了位于屏幕后面的背光。结果,与其他区域相比,特定区域将变暗。这就是在屏幕上显示字符的方式。
所有这些不同大小的LCD都是 "可替换 "的, 如果你用其中一个显示器来构建你的项目,你可以直接拔掉它,然后使用你选择的另一个尺寸/颜色的LCD。您的代码可能需要调整以适应更大的尺寸,但至少接线是一样的。
引脚说明
1602采用标准的16脚接口,其中:
引脚 | 符号 | 功能说明 |
---|---|---|
1 | VSS | 电源地,一般接地 |
2 | VDD | 接电源(+5V) |
3 | V0 | 液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 |
4 | RS | RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 |
5 | R/W | R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 |
6 | E | E(或EN)端为使能(enable)端,写操作时,下降沿使能。 |
读操作时,E高电平有效 |
| 7 | DB0 | 低4位三态、 双向数据总线 0位(最低位) |
| 8 | DB1 | 低4位三态、 双向数据总线 1位 |
| 9 | DB2 | 低4位三态、 双向数据总线 2位 |
| 10 | DB3 | 低4位三态、 双向数据总线 3位 |
| 11 | DB4 | 高4位三态、 双向数据总线 4位 |
| 12 | DB5 | 高4位三态、 双向数据总线 5位 |
| 13 | DB6 | 高4位三态、 双向数据总线 6位 |
| 14 | DB7 | 高4位三态、 双向数据总线 7位(最高位)(也是busy flag) |
| 15 | BLA | 背光电源正极 |
| 16 | BLK | 背光 电源负极 |
BOM表
名称 | 数量 |
---|---|
Arduino Uno | x1 |
LCD1602液晶屏 | x1 |
面包板 | x1 |
跳线(杜邦线) | 若干 |
接线方式
Arduino Uno 引脚 | <-> | LCD1602 引脚 |
---|---|---|
GND | <-> | VSS |
5V | <-> | VDD |
Pin 6 | <-> | V0 |
Pin 12 | <-> | RS |
GND | <-> | RW |
Pin 11 | <-> | EN |
Pin 5 | <-> | D4 |
Pin 4 | <-> | D5 |
Pin 3 | <-> | D6 |
Pin 2 | <-> | D7 |
3.3V | <-> | BLA(A) |
GND | <-> | BLK(K) |
程序提点
函数LiquidCrystal() 概要:
创建一个LiquidCrystal的实例(构造函数).可使用4线或8线方式作为数据线(请注意,还需要指令线).若采用四线方式,将d0-d3悬空不连接.RW引脚可接地而不用接在Arduino的某个引脚上;如果这样接,省略在函数中的rw参数.
语法:
LiquidCrystal(rs, enable, d4, d5, d6, d7) //本例程使用的是这种
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)
LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7)
参数说明:
rs: rs连接的Arduino的引脚编号
rw: rw连接的Arduino的引脚编号
enable:enable连接的Arduino的引脚编号
d0, d1, d2, d3, d4, d5, d6, d7: 连接的Arduino的引脚编号
程序代码
// by LingShunLAB.com
#include <LiquidCrystal.h> // 加载LCD1602的库
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; // 定义引脚
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); // 根据引脚,创建一个 lcd 实例
int contrast = 6 // 定义对比度控制引脚,这里需要选择有PWM功能的引脚
void setup() {
pinMode(contrast, OUTPUT); // 配置 引脚模式为输出模式
analogWrite(contrast,130); // 该引脚一个固定频率的PWM信号,例如130
lcd.begin(16, 2); // 初始化lcd ,并定义LCD1602的规格
lcd.setCursor(0,0); // 设置指针 在x=0,y=0的位置
lcd.print("^_^"); // lcd 显示字符串
lcd.setCursor(0,1); // 设置指针 在x=0,y=1的位置
lcd.print("Hello World!"); // lcd 显示字符串
}
void loop() {
}