1602字符型液晶显示屏是电子制作中经常用到的一个模拟,它可以用来显示两排字符,每排16个字符:

不过,要控制这样一个常用的模块,其实也不是那么容易。首先,我们要按照其4线或者8线的工作模式,占用相应的Arduino引脚,但这样其实占用了较多的数字I/O引脚,特别是8线的连接方式。再次,虽然有相应的库可以支持,但要将其调试通过,并在Arduino上成功运行起来,相应也会遇到不少的问题。最后,控制液晶的代码需要占用相应的存储空间,这对于本来就不富裕的16K存储空间的Arduino来讲,无疑就是雪上加霜。
为了解决这些问题,我们设计了这款基于1602字符型LCD的串行液晶显示屏,与之前的做法相比,优点是很明显的:
- 采用串口进行控制,硬件连线降到最少;
- 不占用Arduino的存储空间;
- 成功验证的代码,将调试时间降到最低。

与传感器扩展板和专用连接线配合,可以非常容易地与Arduino连接上:

为了演示其功能,我在传感器扩展板上还接了一个按钮模块,当按钮按下时,Arduino会通过串口向液晶屏发送相应的命令进行控制。该模块上电时的效果如图所示

在Arduino里运行的代码为:
int switchPin = 7; int value = 0; void setup() { Serial.begin(9600); pinMode(switchPin, INPUT); } void loop() { if (HIGH == digitalRead(switchPin)){ Serial.print("$CLEAR\r\n"); Serial.print("$GO 1 1\r\n"); Serial.print("$PRINT Flamingo EDA\r\n"); Serial.print("$GO 2 4\r\n"); Serial.print("$PRINT Hello World!\r\n"); Serial.print("$CURSOR 1 1\r\n"); } }
对照代码你可以看出,所有对该液晶屏进行控制的串口命令都以字符”$”开始,以回车按行”\r\n”结束,两者之间是相应的命令和参数,不同的命令具有不同的参数。
- GO 光标移动
- PRINT 在当前光标位置上显示字符串
- CLEAR 清屏
- HOME 将光标移回到屏幕左上角的初始位置
- CURSOR 设置光标效果,第一个参数为是否显示光标(1和0),第二个参数为是否闪烁(1和0)
当Arduino检测到按钮按下时,会向连接在串口上的串行液晶显示屏发送相应的控制命令,效果如下图所示:

No tags

ss · 2009/12/10 at 11:22 AM
好东东哦^_^
又激起了我做互动的兴趣,
CouldHll’s Blog » Blog Archive » 我的Arduino装备 · 2010/01/07 at 2:53 PM
[...] 串行液晶显示屏 字符型 1602 LCD:http://blog.flamingoeda.com/2009/11/29/%e7%94%b5%e5%ad%90%e7%a7%af%e6%9c%a8-%e4%b8%b2%e8%a1%8c%e6%b6… [...]
Andreas · 2011/07/28 at 10:10 PM
Hello,
i bought the Serial LCD V3.0 with 4 Dip-Switches and a tc7660 I2C-chip on the controller. Can I switch the display to I2C-Bus? And how can I do this?
Thank You
Andreas