字符型LCD使用指南:从入门到实践

电子说

1.4w人已加入

描述

字符型LCD使用指南:从入门到实践

一、概述

字符型LCD是电子项目中常用的显示设备,在Arduino项目里,它能快速显示项目状态信息。Adafruit售卖多种字符型LCD,像“标准”蓝白16x2、RGB 16x2、“标准”蓝白20x4和RGB 20x4等。这些LCD采用低功耗LED背光,工作电压为+5V,仅需6个数据引脚就能通信,且引脚可任意选择。不过要注意,本教程仅适用于Adafruit售卖的LCD,其他LCD可能不适用。

文件下载:198.pdf

二、字符型LCD与图形LCD的区别

LCD种类繁多,本教程聚焦于字符型LCD。字符型LCD适合显示文本,也能显示小图标,但图标尺寸通常只有5x7像素左右。例如16字符x2行的字符型LCD,仔细观察能看到显示字符的小矩形,每个矩形是像素网格。而图形LCD有一个大的像素网格(如128x64),虽能显示文本,但更擅长显示图像。图形LCD通常更大、更贵、使用更复杂,且因复杂度高需要更多引脚。

三、LCD的不同类型

字符型LCD虽只能显示文本,但形状多样,有20x4蓝底白字、16x4绿底黑字、16x2蓝底白字和16x1灰底黑字等。好消息是这些显示器可互换,项目中更换不同尺寸的LCD时,虽然代码可能需调整,但布线相同。教程中主要使用单排16引脚的LCD,还有双排8引脚的,但这种在面包板上布线较难,可参考此页面获取帮助。

四、字符型LCD的布线

(一)安装引脚

有了LCD后,还需一个10K电位器来调节对比度,以及16针0.1英寸的引脚。若引脚过长可剪短,然后将引脚焊接到LCD上,不能简单压接,焊接时要注意避免过热损坏面包板,可先焊1号和16号引脚,再取下完成其余焊点,将引脚插入面包板,把LCD放在上面焊接可保持稳定。

(二)供电与背光

将LCD插入面包板,给面包板供电,将+5V连接到红色轨道,接地连接到蓝色轨道。连接LCD的背光,将16号引脚接地,15号引脚接+5V。大多数LCD(包括Adafruit的)已内置LED背光的串联电阻,若没有则需添加,根据数据手册计算电阻值,若找不到数据手册,使用220欧姆电阻较安全,但可能使背光较暗。连接Arduino电源后,背光应亮起,部分低价LCD可能无背光。

(三)对比度电路

将对比度电位器放在靠近1号引脚的一侧,将电位器一侧接+5V,另一侧接地,中间引脚(滑动端)连接到LCD的3号引脚。打开Arduino,若有背光会亮起,旋转电位器可看到第一行矩形出现,这表明逻辑、背光和对比度都已调好。

(四)总线布线

LCD有11条总线线路:D0 - D7(8条数据线)、RS、EN和RW。其中RW在仅向显示器写入数据时可不连接,可将其接地;也可使用4条数据线而非8条,节省引脚。我们只需6个引脚(RS、EN、D7、D6、D5、D4)与LCD通信,使用LiquidCrystal库可简化引脚设置。具体布线如下:

  • RW引脚(5号)接地。
  • RS引脚(4号)用棕色线连接到Arduino数字引脚7。
  • EN引脚(6号)用白色线连接到Arduino数字引脚8。
  • DB7(14号引脚)用橙色线连接到Arduino 12号引脚。
  • DB6(13号引脚,黄色)、DB5(12号引脚,绿色)和DB4(11号引脚,蓝色)分别连接到Arduino 11、10和9号引脚。

五、Arduino代码

Arduino已内置LiquidCrystal库,只需加载示例并根据使用的引脚修改代码。例如,将LiquidCrystal lcd(12, 11, 5, 4, 3, 2);改为LiquidCrystal lcd(7, 8, 9, 10, 11, 12);以匹配引脚表。编译并上传代码,必要时调整对比度。不同尺寸和颜色的LCD都可使用,如20x4 LCD或绿底黑字的LCD,部分绿底黑字LCD可能无背光。

(一)多行显示问题

LCD处理长消息和多行显示时,16x2 LCD会截断超过16个字符的内容,20x4 LCD会将第一行内容换行到第三行(第二行到第四行),这是LCD内存配置的问题,目前尚无完美解决方案,编写长行内容时需注意字符数量,避免溢出。

六、RGB背光LCD

Adafruit有多种RGB背光LCD,其工作原理与普通字符型LCD相同,但背光有红、绿、蓝三个LED,可生成任意颜色。布线并测试LCD后,将LED连接到Arduino的PWM模拟输出引脚以精确设置颜色,使用剩余的三个PWM引脚,将红色LED(LCD 16号引脚)连接到数字3,绿色LED(LCD 17号引脚)连接到数字5,蓝色LED(LCD 18号引脚)连接到数字6,LCD已内置电阻,无需额外添加。上传特定代码可使LCD背景光循环变色。

七、Python与CircuitPython

使用Adafruit CircuitPython CharLCD模块,可轻松用CircuitPython或Python控制字符型LCD(单背光或RGB背光)。可在任何CircuitPython微控制器板或有GPIO和Python的计算机上使用。

(一)CircuitPython微控制器布线

按照Arduino的布线方式将字符型LCD连接到板上。单颜色背光LCD的布线示例:

  • 板5V连接到LCD 2号引脚和电位器一侧。
  • 板GND连接到LCD 1、5、16号引脚和电位器另一侧。
  • 电位器输出(中间引脚)连接到LCD 3号引脚。
  • 板D7 - D14分别连接到LCD 4、6、11 - 14号引脚。
  • 板D13连接到LCD 15号引脚。

RGB背光LCD的布线示例:除上述连接外,还需将板D3、D5、D6分别连接到LCD 16(红色背光)、17(绿色背光)、18(蓝色背光)号引脚,且每个颜色通道需连接到板上支持PWM的输出引脚。

(二)Python计算机布线

以树莓派为例,单颜色背光LCD的布线:

  • 树莓派5V连接到LCD 2、15号引脚和电位器一侧。
  • 树莓派GND连接到LCD 1、5、16号引脚和电位器另一侧。
  • 电位器输出(中间引脚)连接到LCD 3号引脚。
  • 树莓派GPIO26 - GPIO27分别连接到LCD 4、6、11 - 14号引脚。

RGB背光LCD的布线:除上述连接外,还需将树莓派GPIO21、GPIO12、GPIO18分别连接到LCD 16(红色背光)、17(绿色背光)、18(蓝色背光)号引脚,且每个颜色通道需连接到计算机上支持PWM的输出引脚。

(三)CircuitPython安装CharLCD库

需在CircuitPython板上安装Adafruit CircuitPython CharLCD库。先确保运行最新版本的Adafruit CircuitPython,再从Adafruit的CircuitPython库捆绑包中安装必要的库,非Express板(如Trinket M0或Gemma M0)需手动安装相关库,安装完成后连接到板的串行REPL。

(四)Python安装CharLCD库

需安装Adafruit_Blinka库以在Python中支持CircuitPython,可能还需在平台上启用I2C并确保运行Python 3,然后从命令行运行sudo pip3 install adafruit-circuitpython-charlcd(默认Python为3版本时可使用pip)。

(五)Python与CircuitPython使用

使用Python代码初始化并显示文本。导入digitalio模块并定义连接到LCD的引脚,根据不同的布线方式调整引脚分配。定义LCD的列数和行数,导入字符LCD模块并创建相应的实例(单颜色背光使用Character_LCD_Mono,RGB背光使用Character_LCD_RGB)。通过message属性打印消息,可使用cursor属性控制光标开关,clear函数清除显示内容,blink属性控制光标闪烁,move_leftmove_right函数移动显示内容。对于RGB背光LCD,可使用color函数设置背光颜色。

(六)完整示例代码

文档提供了Metro M0/M4和树莓派的简单测试示例代码,可参考代码实现基本的显示功能。

八、Python文档与自定义字符

可参考Python文档获取更多信息。若需要特殊字符,可使用createChar命令,此网站可帮助生成自定义字符。

你在使用字符型LCD的过程中遇到过哪些有趣的问题呢?欢迎在评论区分享你的经验和想法。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分