当前位置: 首页 > ds >正文

Arduino LCD 1602液晶显示器2(I2C总线)

LCD 1602液晶显示器2(I2C总线)
上一小节中我们学习了LCD1602的标准连接,但因为线太多,在实际的工作中会占用太多的Arduino的针脚,所以不是很实用。为了解决这个问题,下面我们介绍一种总线控制IIC(I2C),我们需要一块带有I2C协议的转接板的LCD1602,见下下图。
在这里插入图片描述
使用I2C协议的转换板的好处是,除了VCC和GND外,
只需要两根信号线SDA和SCL,布线比较方便简洁。
SDA(Serial Data Line): 串行数据线
SCL(Serial Clock Line):串行时钟线
读者若有兴趣,可查看一些书籍关于I2C协议的资料,
它可以让多个Arduino开发板之间进行通信。
可以将一个Arduino开发板作为主设备,通过I2C总
线与其他Arduino从设备相连接, 接线非常简单,如下图下表
在这里插入图片描述
在这里插入图片描述
接好线后,请把下面的程序上传至Arduino UNO。
#include <Wire.h>
#include <LiquidCrystal_I2C.h> / /引用I2C库

//设置LCD1602设备地址,这里的地址是0x3F,一般是0x20,或者0x27,具体看模块手册
LiquidCrystal_I2C lcd(0x27,16,2);

void setup()
{
lcd.init(); // 初始化LCD
lcd.backlight(); //设置LCD背景等亮
lcd.setCursor(0,0); //设置显示指针在左上角,即列0,行0
lcd.print(“LCD is beginning”); //输出字符“LCD is beginning”到LCD1602上
lcd.setCursor(0,1); //设置显示指针在左上角,即列0,行1
lcd.print(“Wait for…”); //输出字符“Wait for…”到LCD1602上
delay(4000); //延时4秒
lcd.clear(); // LCD 清屏,光标移至屏幕左上角
}

void loop()
{
lcd.setCursor(0,0); //设置显示指针在左上角,即列0,行0
lcd.print(“LCD1602 I2C Test”); //输出字符“LCD1602 I2C Test”到LCD1602上
lcd.setCursor(0,1); //设置显示指针在左上角,即列0,行1
lcd.print(" by Johnson"); //输出字符“ by Johnson”到LCD1602上
delay(1000); //延时1秒
}

如果LCD上没有任何的显示,请不要灰心,在I2C的连接板后面有一个蓝色的旋钮,可以调节屏幕的对比度,直到屏幕上显示出字符为止。
http://www.xdnf.cn/news/9999.html

相关文章:

  • ubuntu 22.04 编译安装nignx 报错 openssl 问题
  • 【VMware Workstation 17 Pro许可证密钥】
  • 如何站在指标体系之巅看智能数据建模产品(GAI)
  • 使用k8s服务进行端口代理
  • 3D拟合测量水杯半径
  • C++ 模板参数包展开方式
  • 微服务架构设计规范
  • 详解GPU
  • 湖北理元理律师事务所观察:债务优化如何成为民生安全网
  • APM32微控制器键盘PCB设计实战教程
  • Docker 本地化部署FireCrawl
  • 《Pytorch深度学习实践》ch1-线性模型
  • Axure RP11安装、激活、汉化
  • ubuntu24.04与ubuntu22.04比,有什么新特性?
  • 增删改常用的元素
  • 欧盟MID认证,助力全球新能源高效计量与管理
  • leetcode hot100刷题日记——26.环形链表
  • 第七届下一代数据驱动网络国际学术会议(NGDN 2025)
  • JAVA重症监护系统源码 ICU重症监护系统源码 智慧医院重症监护系统源码
  • DMBOK对比知识点对比(2)
  • 【数据结构】栈和队列(下)
  • python打卡day39@浙大疏锦行
  • vite配置一个css插件
  • MySQL字段为什么要求定义为not null ?
  • 约瑟夫问题
  • insightface==0.7.3 编译失败
  • 从时钟精度看晶振频率稳定度的重要性
  • 12-后端Web实战(登录认证)
  • 实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.4 R语言解题
  • Linux文件操作、文件夹操作