Arduino中国 | Flamingo EDA

Nov/09

29

电子积木 串行液晶显示屏 字符型 1602 LCD

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”结束,两者之间是相应的命令和参数,不同的命令具有不同的参数。

  1. GO 光标移动
  2. PRINT 在当前光标位置上显示字符串
  3. CLEAR 清屏
  4. HOME 将光标移回到屏幕左上角的初始位置
  5. CURSOR 设置光标效果,第一个参数为是否显示光标(1和0),第二个参数为是否闪烁(1和0)

当Arduino检测到按钮按下时,会向连接在串口上的串行液晶显示屏发送相应的控制命令,效果如下图所示:

No tags

3 comments

  • 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

Leave a Reply

使用新浪微博登录

<<

>>

Theme Design by devolux.nh2.me