自造星球-创客空间  - 讨论区

标题:使用I2C协议驱动的1602液晶显示屏

2015年08月21日 星期五 10:19

1602液晶显示屏的“1602”的意思就是每行能够显示16个英文字符,总共可以显示两行。

传统的1602 LCD至少需要占用6个IO引脚才能驱动,在一些较为复杂的应用中,会造成IO引脚不够用的情况。

现在有厂商开发了一种I2C协议的转换板,并将其集成到1602显示屏上,这样我们就可以使用I2C协议来驱动1602显示屏了,I2C协议只需要占用两个IO引脚。

Arduino与显示屏I2C接口的连接关系如下:

显示屏的VCC连接Arduino的5V。

显示屏的GND连接Arduino的GND。

显示屏的SDA连接Arduino的A4。

显示屏的SCL连接Arduino的A5。

然后我们需要下载安装专用的Library,地址如下:

https://github.com/vanluynm/LiquidCrystal_I2C

我使用Arduino Nano和I2C显示屏做了一个简单的电压表,使用A1作为模拟输入,使用4.7K和220K的电阻作为分压电路,使用Arduino内部的1.1V基准电压,这样我的电压表的测量范围大概是0-52V。

程序代码如下:

经过一些测试,我发现这个电压表的精确度还是有问题的,目测误差有3%左右。

我的实验室电源的电压表是比较准确的,我已经使用万用表确认。分压电阻用的都是误差1%的金属膜电阻。所以我认为误差的来源应该是内部基准电压的误差。

有国外网友分析的文章可以参考,并建议使用专用的外部基准电压源。我手头没有这样的元器件,稍后再做进一步测试。

参考资料:

http://playground.arduino.cc/Code/LCDi2c

https://www.arduino.cc/en/Reference/LiquidCrystal

http://www.skillbank.co.uk/arduino/measure.htm

https://www.arduino.cc/en/Reference/AnalogReference

I2C转换芯片PCF8574的数据手册

 

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号