电子说
字符型LCD是电子项目中常用的显示设备,在Arduino项目里,它能快速显示项目状态信息。Adafruit售卖多种字符型LCD,像“标准”蓝白16x2、RGB 16x2、“标准”蓝白20x4和RGB 20x4等。这些LCD采用低功耗LED背光,工作电压为+5V,仅需6个数据引脚就能通信,且引脚可任意选择。不过要注意,本教程仅适用于Adafruit售卖的LCD,其他LCD可能不适用。
文件下载:198.pdf
LCD种类繁多,本教程聚焦于字符型LCD。字符型LCD适合显示文本,也能显示小图标,但图标尺寸通常只有5x7像素左右。例如16字符x2行的字符型LCD,仔细观察能看到显示字符的小矩形,每个矩形是像素网格。而图形LCD有一个大的像素网格(如128x64),虽能显示文本,但更擅长显示图像。图形LCD通常更大、更贵、使用更复杂,且因复杂度高需要更多引脚。
字符型LCD虽只能显示文本,但形状多样,有20x4蓝底白字、16x4绿底黑字、16x2蓝底白字和16x1灰底黑字等。好消息是这些显示器可互换,项目中更换不同尺寸的LCD时,虽然代码可能需调整,但布线相同。教程中主要使用单排16引脚的LCD,还有双排8引脚的,但这种在面包板上布线较难,可参考此页面获取帮助。
有了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库可简化引脚设置。具体布线如下:
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内存配置的问题,目前尚无完美解决方案,编写长行内容时需注意字符数量,避免溢出。
Adafruit有多种RGB背光LCD,其工作原理与普通字符型LCD相同,但背光有红、绿、蓝三个LED,可生成任意颜色。布线并测试LCD后,将LED连接到Arduino的PWM模拟输出引脚以精确设置颜色,使用剩余的三个PWM引脚,将红色LED(LCD 16号引脚)连接到数字3,绿色LED(LCD 17号引脚)连接到数字5,蓝色LED(LCD 18号引脚)连接到数字6,LCD已内置电阻,无需额外添加。上传特定代码可使LCD背景光循环变色。
使用Adafruit CircuitPython CharLCD模块,可轻松用CircuitPython或Python控制字符型LCD(单背光或RGB背光)。可在任何CircuitPython微控制器板或有GPIO和Python的计算机上使用。
按照Arduino的布线方式将字符型LCD连接到板上。单颜色背光LCD的布线示例:
RGB背光LCD的布线示例:除上述连接外,还需将板D3、D5、D6分别连接到LCD 16(红色背光)、17(绿色背光)、18(蓝色背光)号引脚,且每个颜色通道需连接到板上支持PWM的输出引脚。
以树莓派为例,单颜色背光LCD的布线:
RGB背光LCD的布线:除上述连接外,还需将树莓派GPIO21、GPIO12、GPIO18分别连接到LCD 16(红色背光)、17(绿色背光)、18(蓝色背光)号引脚,且每个颜色通道需连接到计算机上支持PWM的输出引脚。
需在CircuitPython板上安装Adafruit CircuitPython CharLCD库。先确保运行最新版本的Adafruit CircuitPython,再从Adafruit的CircuitPython库捆绑包中安装必要的库,非Express板(如Trinket M0或Gemma M0)需手动安装相关库,安装完成后连接到板的串行REPL。
需安装Adafruit_Blinka库以在Python中支持CircuitPython,可能还需在平台上启用I2C并确保运行Python 3,然后从命令行运行sudo pip3 install adafruit-circuitpython-charlcd(默认Python为3版本时可使用pip)。
使用Python代码初始化并显示文本。导入digitalio模块并定义连接到LCD的引脚,根据不同的布线方式调整引脚分配。定义LCD的列数和行数,导入字符LCD模块并创建相应的实例(单颜色背光使用Character_LCD_Mono,RGB背光使用Character_LCD_RGB)。通过message属性打印消息,可使用cursor属性控制光标开关,clear函数清除显示内容,blink属性控制光标闪烁,move_left和move_right函数移动显示内容。对于RGB背光LCD,可使用color函数设置背光颜色。
文档提供了Metro M0/M4和树莓派的简单测试示例代码,可参考代码实现基本的显示功能。
可参考Python文档获取更多信息。若需要特殊字符,可使用createChar命令,此网站可帮助生成自定义字符。
你在使用字符型LCD的过程中遇到过哪些有趣的问题呢?欢迎在评论区分享你的经验和想法。
全部0条评论
快来发表一下你的评论吧 !