Arduino UNO通过PCF8574串行IIC接口驱动LCD1602/LCD2004液晶屏

news2024/11/19 1:29:48

LCD1602/2004液晶屏简介

LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。可以显示2行每行16个字符,总共32个字符。字符型液晶显示模块是一种专门用于显示字母、数字和符号等的点阵式LCD,常用16×1,16×2,20×2和40×2等的模块。不同厂家生产的LCD1602驱动控制芯片可能有所不同,但使用方法都是一样的,能够显示英文字母、阿拉伯数字、日文片假名和一般性符号。部分颜色的LCD在背光灯引脚A、K不接电源也可以在一定光照下可以看见显示出的字符。如黄绿屏的LCD1602/2004。
LCD2004可以显示4行每行20个字符,总共80个字符,比LCD1602(2*16=32个字符)显示的更多。其引脚功能顺序与LCD1602兼容。
在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/69435b4236ed489eae30828551553a0f.png#pic_center在这里插入图片描述

PCF8574 IO扩展模块简介

它通过两条双向总线(I2C)可使大多数 MCU 实现远程 I/O 口扩展。该器件包含一个 8 位准双向口和一个 I2C 总线接口。PCF8574 电流消耗很低,且口输出锁存具有大电流驱动能力,可直接驱动 LED。它还带有一条中断接线(INT)可与 MCU 的中断逻辑相连。通过 INT 发送中断信号,远端 I/O 口不必经过 I2C 总线通信就可通知 MCU 是否有数据从端口输入。
带背光电源控制,可以通过跳线帽设置是否连接背光电源,插上跳线帽为连接背光电源,拔掉跳线帽为断开背光电源。
对比度可调节,旋转蓝色电位器,顺时针增强。
IIC总线上可以挂载八个PCF8574,即可连接八个LCD2004屏幕。
通过短路模块上的A0/A1/A2焊盘修改设备地址,默认不短接,此时A0/A1/A2都为1,短路时为0。PCF8574T的IIC器件地址为0100A2A1A0,PCF8574AT的器件地址为0111A2A1A0,本实验采用的是PCF8574AT,默认器件地址为0x3F。

在这里插入图片描述

Arduino UNO与模块接线

Arduino UNOFCF8574
A4SDA
A5SCL
5VVCC
GNDGND

LCD1602接线
在这里插入图片描述
LCD2004接线
在这里插入图片描述

测试代码

在Arduino IDE库管理器搜索PCF8574,并安装如图示所例程库
在这里插入图片描述

打开Hello_World.ino例程,并按如下程序修改例程
LCD2004驱动程序

LCD_I2C lcd(0x3F, 20, 4); // Default address of most PCF8574 modules, change according

void setup()
{
    lcd.begin(); // If you are using more I2C devices using the Wire library use lcd.begin(false)
                 // this stop the library(LCD_I2C) from calling Wire.begin()
    lcd.backlight();

    lcd.clear();
}

void loop()
{
    lcd.setCursor(3, 0); 
    lcd.print("Hello! LCD2004"); // You can make spaces using well... spaces
    lcd.setCursor(2, 2); // Or setting the cursor in the desired position.
    lcd.print("YouXin Electronic");
}

LCD1602驱动程序

LCD_I2C lcd(0x3F, 16, 2); // Default address of most PCF8574 modules, change according

void setup()
{
    lcd.begin(); // If you are using more I2C devices using the Wire library use lcd.begin(false)
                 // this stop the library(LCD_I2C) from calling Wire.begin()
    lcd.backlight();

    lcd.clear();
}

void loop()
{
    lcd.setCursor(1, 0); 
    lcd.print("Hello! LCD1602"); // You can make spaces using well... spaces
    lcd.setCursor(0, 1); // Or setting the cursor in the desired position.
    lcd.print("YouXinElectronic");
}

实验结果

在LCD2004上第一行和第三行显示出程序所输入的字符
在这里插入图片描述
拔掉跳线帽,关闭背光灯时,也可看见字符显示,这样可以省电
在这里插入图片描述
在LCD1602上第一行和第二行显示出程序所输入的字符
在这里插入图片描述
拔掉跳线帽,关闭背光灯时,也可看见字符显示,这样可以省电
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/62958.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go编程项目实战教程

Go编程项目实战教程 在这个面向初学者的 Go 编程语言课程中,您将通过构建 11 个项目来提高您的 Go 编程技能 课程英文名:Learn Go Programming by Building 11 Projects – Full Course 此视频教程共21.0小时,中英双语字幕,画质…

数据之道读书笔记-07打造“数字孪生”的数据全量感知能力

数据之道读书笔记-07打造“数字孪生”的数据全量感知能力 在信息化时代构建的IT系统,基本上是功能化、烟囱化、封闭式的,只能给企业内部经过培训的专业人员使用,所有的决策数据和我们信任的IT系统基本都是靠人来录入数据。但是,人…

Android移动开发基础——实训项目:个人财务软件

目录 步骤 1. 项目计划 需求分析 程序流程图 2. 实现功能模块 2.1 登录模块 前提 软件:Android Studio开发工具、JDK1.8以上版本 目标:编写个人财务软件 步骤 (1)根据设计题目要求的指标,通过查阅有关资料…

某学生宿舍楼设计

目 录 1.建筑设计部分 1 1.1工程概况 1 1.2设计依据 2 1.3标高及建筑细部作法 2 1.4平面设计 2 1.4.1建筑方案设计 2 1.4.2建筑做法 4 1.4.3 建筑设计成果 6 2.结构设计部分 7 2.1结构平面设计 7 2.2构件截面尺寸的初步确定 8 2.3荷载统计 10 2.3.1楼屋面及卫生间恒活计算 10 2…

热加载技术:修改Python代码并实时查看结果 ⛵

💡 作者:韩信子ShowMeAI 📘 Python3◉技能提升系列:https://www.showmeai.tech/tutorials/56 📘 本文地址:https://www.showmeai.tech/article-detail/406 📢 声明:版权所有&#xf…

基于MindSpore框架的道路场景语义分割方法研究

概述 本文以华为最新国产深度学习框架Mindspore为基础,将城市道路下的实况图片解析作为任务背景,以复杂城市道路进行高精度的语义分割为任务目标,对上述难处进行探究并提出相应方案,成功地在Cityscapes数据集上完成了语义分割任务…

vue3+ts做echarts做一个简单的折线渐变图

vue3做echarts做一个简单的折线渐变图 效果 代码&#xff1a; </template> <div><div class"date-change"><el-date-picker size"small" v-model"dateValue" value-format"YYYY-MM-DD" type"daterange&qu…

Leetcode 72. 编辑距离

最近在写dp问题的时候&#xff0c;写到这个经典题&#xff0c;对于里面三个转换方程没太懂&#xff0c;偶然在评论区找到一个非常非常清楚的解释&#xff0c;顺便就把这道题记录一下&#xff0c;加上自己的理解&#xff0c;方便日后查看! 对于这一类的dp习惯性的都初始化dp的大…

好用的数据恢复软件EasyRecovery2023最新版

实用的数据恢复软件有什么&#xff1f;电脑中的数据文件对很多的小伙伴来说都是非常重要的&#xff0c;在下载安装新的软件设备时都需要非常谨慎&#xff0c;一旦碰到一些病毒就可能会导致文件丢失&#xff0c;想要恢复这些文件并不是很容易&#xff0c;需要使用专业的数据恢复…

proxy

let obj new Proxy({},{get: function(target,propKey,receiver) {console.log(获取的时候会被拦截)console.log(target,propKey,receiver)return Reflect.get(target,propKey,receiver)},set: function(target,propKey,value,receiver) {console.log(设置时被拦截);console.l…

Java开发:JVM篇-类加载内存分析

一、类加载器 A、类加载器的作用 将class文件字节码内容加载到内存中&#xff0c;并将这些静态数据结构转换成方法区的运行时数据结构&#xff0c;然后在堆中生成一个代表这个类的java.lang.Class对象&#xff0c;作为方法区中类数据的访问入口。 B、类缓存 标准的JavaSE类…

收到公安部门的致谢信,顶象业务安全“反诈”再接再厉

12月1日&#xff0c;《反电信网络诈骗法》正式施行&#xff0c;为反电信网络诈骗工作提供有力法律支撑。自2021年以来&#xff0c;顶象业务安全情报通过多渠道的风险数据以及多维度深度挖掘与分析&#xff0c;助力对电信诈骗分子的精准防控&#xff0c;已为多个监管机构的反电信…

小程序开发--- 03组件

小程序中组件的分类主要有以下9类&#xff1a; 常用的视图容器类是组件有&#xff1a; 1.view : 这是普通的视图区域&#xff0c;类似于HTML中的div&#xff0c;是一个块级元素&#xff0c;常用来实现页面的布局效果 2. scroll-view: 是一个可以上下或者左右滚动的区域&#x…

数据结构—set集合

文章目录一、HashSet集合1.HashSet集合的特点2.HashSet常用方法二、LinkedHashSet集合LinkedHashSet集合的特点三、TreeSet集合1.TreeSet集合的特点2.TreeSet的基本使用四、HashSet、LinkedHashSet、TreeSet的使用场景HashSet:LinkedHashSet&#xff1a;TreeSet:五、list和set集…

flutter 自定义加载中间页 loading 菊花组件的封装

flutter 自定义加载中间页前言LoadingStateWidget 封装思路总结前言 在日常移动开发中&#xff0c;很多时候需要我们添加一个加载中间页&#xff0c;即加载中&#xff0c;加载失败&#xff0c;加载重试&#xff0c;加载完成等功能&#xff0c;这样可以避免在无网或者弱网情况下…

《痞子衡嵌入式半月刊》 第 64 期

痞子衡嵌入式半月刊&#xff1a; 第 64 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻&#xff0c;农历年分二十四节气&#xff0c;希望在每个交节之日准时发布一期。 本期刊是开源项目&#xff08;GitHub: JayHeng/pzh-mcu-bi-weekly&#xff09;&#xff0c;欢…

【GD32F427开发板试用】IAR 环境移植freertos

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;andeyqi freertos移植适配 社区之前已经有同学移植适配freertos&#xff0c;在GD32F427上跑了起来&#xff0c;之前的帖子是在MDK环境下适配的…

FITC-PEG-FA,Folic acid-PEG-Fluorescein,叶酸PEG荧光素

●外观以及性质&#xff1a; FITC-PEG-FA是一种绿色荧光叶酸-PEG衍生物&#xff0c;其激发/发射波长为~490 nm/~520 nm。荧光素标记的PEG叶酸是一种线性分子&#xff0c;叶酸连接到PEG链的一端&#xff0c;荧光素染料连接到另一个PEG端。叶酸也被称为维生素M、维生素B9或叶酸。…

什么?Coolbpf 不仅可以远程编译,还可以发现网络抖动!

近日&#xff0c;在 2022 云栖大会龙蜥峰会 eBPF & Linux 稳定性专场上&#xff0c;来自 eBPF 技术探索 SIG Maintainer 的毛文安分享了《Coolbpf 的应用实践》技术演讲&#xff0c;以下为本次演讲内容&#xff1a; 一、为什么要支持可移植&#xff1f; 随着 BPF 技术的发…

EL表达式 过滤器 监听器

这里写目录标题1 EL 表达式1.1 EL 表达式介绍1.2 EL 表达式快速入门1.3 EL 表达式获取数据1.4 EL 表达式注意事项1.5 EL表达式运算符1.6 EL 表达式使用细节1.7 EL 表达式隐式对象2 JSTL2.1 JSTL 介绍2.2 JSTL 核心标签库2.3 JSTL基本使用3 Filter3.1 过滤器介绍3.2 Filter 介绍…