Puzzle - Serial LCD 串口LCD

来自Duinopeak_COM
跳转至: 导航搜索

简介

Puzzle - Serial LCD V1.0版本是我们的串行lcd的新版本。嵌入在LCD电路板上的是一个16x2 LCD和基于PIC HD44780嵌入式芯片。板载PIC以TTL串行输入和打印接收的字符到LCD。LCD的库还允许一些特别命令,你可以清除屏幕,调节背光灯亮度,打开/关闭显示,和更多其他的操作。
这种液晶作为一个广泛使用的器件,因为它可用于许多不同的项目

SerialLCDback.jpgSerialLCDfront.jpg

特性

  • 16 x 2 LCD
  • 一个模块复位按键
  • 一个可调电阻R4,调节LCD屏幕的对比度
  • 使用电子积木接口,非常简单的使用.
  • 默认波特率:9600
  • 应用接口被设计成类似于Arduino LiquidCrystal库.
  • 附带了一组丰富的演示应用程序.
  • 背光控制以节约电源.

应用场合

  • LCD可以作为Arduino或者其他的主控板的显示信息面板.
  • 作为RTC时钟模块或温度计模块的显示.
  • 加速度计的显示.
  • 作为一个电子罗盘的方向显示.
  • PC机CPU的重要状态显示: 用一个UART串口模块连接到PC机.

特性

项目 最小 典型 最大 单元
操作电压 4.7 5 5.5 V
通信协议 UART -
背光控制 -
工作电流 背光开 70 75 80 mA
背光关 15 20 25 mA

硬件安装

我们这里提供的4针的电子积木接口,你只要使用电子积木扩展板,然后用电子积木线将Serial LCD和Arduino连接起来,就能够让Arduino主控板和LCD进行通信了。 根据程序里面的定义,我们使用了模拟的UART通信

SoftwareSerial lcd(2, 3);

这里我们配置数字端口2和3号为Arduino的TX和RX口,但是我们这里仅仅是将Arduino主控板的数据发送给Serial LCD,并没有从Serial LCD接受返回的信息,所以这里我们只用到了4针的其中3根:

Serial LCD Kit     	Arduino
     5V	                  5V
     GND	          GND
     RX	                  D3


Arduino-hookup.PNG

Puzzle Serial LCD Kit connetction1.jpg

Puzzle Serial LCD Kit connetction2.jpg


串口显示字符程序

这里我们提供一个简单的测试代码,将代码拷贝到ArduinoIDE上面,然后上传到Arduino主控板上面,然后,打开IDE串口监视器,试试往Arduino主控板发送一些字符,观察一下Serial LCD的屏幕,看看是不是你刚刚发送的字符,被显示出来了。

#include <SoftwareSerial.h>

SoftwareSerial lcd(2, 3);

void setup()
{
  Serial.begin(9600);  // start serial monitor serial
  lcd.begin(9600);  // start lcd serial
}

void loop()
{
  while(Serial.available())  // If serial data is available do this
    lcd.print((char) Serial.read());
}

时钟显示程序

在上面的使用串口显示字符的程序中,也许聪明的你很快发现了问题,字符只能一直依次写入LCD,而不能清屏!但是你不要认为我们这个串口LCD就真的不能清屏,其实我们可以通过向串口LCD发送命令,控制背光,波特率,和各种各样的显示功能,如清除屏幕。 命令分为三组:背光,波特率,特别命令。每个命令要求你至少两个字节发送到显示。例如设置背光,首先必须把背光控制字节(0x80或十进制128),后跟一个字节的值从0到255。发送0会完全关掉背光,255打开所有背光,127将背光设置约50%,等等。背光设置存储在串行LCD设备的EEPROM里面,自动保存上一次的配置信息,不会因为掉电上电而丢失。

接下来你可以下载下面资源中的Puzzle Serial LCD Kit Clock程序文件,像之前一样编译,上传这个程序,你可以得到如下图的显示:


Puzzle Serial LCD Kit clock connetction1.jpg

Puzzle Serial LCD Kit clock connetction2.jpg

接下来我们研究一下时钟显示程序,在主程序中可以看到,当我们调用清屏指令void clearDisplay()时,我们首先发送以0xFE(或十进制254)告诉显示进入特殊命令模式,接着发送第二个字节0x01;这样的话我们的串口LCD接收到Arduino主控发送过来的clearDisplay()命令,解析正确后,就会执行清屏命令。
Puzzle Serial LCD Kit clock Arduino compiler1.png

为什么发送命令时执行这样格式呢?这是和我们出厂时烧录到串口LCD中的固件有关,你可以下载下面资源中的串口LCD固件,然后用Arduino编译器打开,进行具体分析;


还有其他命令如:设置LCD背光命令,设置字符显示位置命令,都是采用发送字节数据来响应的,依次类推;你可以下载下面的Serial LCD 串口LCD命令表,根据这个时钟程序的格式,编写其他命令。

资源


Serial LCD 串口LCD原理图: 文件:SerialLCDdriverV1.0B.zip

Serial LCD 串口LCD应用例子程序: 文件:Puzzle SerialLCDKitExamples.zip

Serial LCD 串口LCD时钟显示程序: 文件:Puzzle Serial LCD Kit Clock.zip

Serial LCD 串口LCD命令表: 文件:SerialLcdKitCommandList.pdf

Serial LCD 串口LCD固件程序: 文件:Puzzle SerialLCDKitFirmware.zip

如何购买

Duinopeak 官方淘宝商城
Serial LCD 串口LCD购买链接

支持

如果你有什么建议或者好的点子, 你可以来我们的DuinoPeak论坛参与讨论.

外部链接

链接到外部网页将会给你提供更多应用创意,文档/数据表或软件库

视频