I2C - 使用LCD并在LCD上显示资料
材料准备
- Ameba x 1
- Funduino I2C 2×16 LCD
范例说明
一般LCD有许多pin脚, 以手上这片LCD为例有16个pin
直接控制LCD的话会用掉许多pin, 在资料处理上也很麻烦, 所以一般LCD会有额外的控制晶片帮忙处理, 并且使用I2C介面控制这块控制晶片。
直接控制LCD的话会用掉许多pin, 在资料处理上也很麻烦, 所以一般LCD会有额外的控制晶片帮忙处理, 并且使用I2C介面控制这块控制晶片。
在Ameba RTL8195上使用I2C控制LCD的接法:
在Ameba RTL8710上使用I2C控制LCD的接法:
打开范例, “File” -> “Examples” -> “AmebaWire” -> “LcdHelloWorld”, 编译并上传到Ameba, 完成后按Reset按钮。
范例里, LCD第一行出现“Hello World”, 第二行出现“Ameba”:
等8秒之后出现提示可以从Serial Monitor输入要显示的字串:
在Serial Monitor 输入“123456789” 之后按下“Send”, 显示在LCD上:
程式码说明
每款LCD的I2C控制板需要设定的内容都不一样,
范例里使用的constructor:
范例里使用的constructor:
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlighPol pol);
设定的内容如下:
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
其中I2C的address是0x27, 后面八个参数代表1个byte里, 每个bit代表的意义, 其中En为Bit 2, Rw为Bit 1, Rs为Bit 0, d4为bit 4, 以此类推
每款LCD需要设定的内容可能不一样, 要参考datasheet做设定。
呼叫 backlight()
, 打开背光使萤幕亮起,
呼叫 setCursor(0, 0)
指定游标的位置, 第一个参数是行, 第二个参数是列
LCD 继承了Print class, 所以可以使用 lcd.print()
来输出要显示的字串。
Copyrights ©瑞晟微电子(苏州)有限公司 2021. All rights reserved. 使用条款