Arduino 和LCD1602液晶屏 I2C接口实验「建议收藏」

LCD1602液晶屏带I2C接口为什么使用I2C接口?因为省IO口啊,只需要4条线,可以看看之前发的实验,接线多复杂呀,对吧。(传送门:Arduino携手LCD1602向世界问好“helloWorld!”)还有背光灯,和可调节对比度(就是背面蓝色那块可以旋转的调)具体怎么实现解决问题,请往下看引脚说明GND——地线VC…

大家好,又见面了,我是你们的朋友全栈君。

Arduino 和LCD1602液晶屏 I2C接口实验「建议收藏」

 

 

LCD1602液晶屏 带I2C接口

Arduino 和LCD1602液晶屏 I2C接口实验「建议收藏」

为什么使用I2C接口?因为省IO口啊,只需要4条线,可以看看之前发的实验,接线多复杂呀,对吧。

(传送门:Arduino携手LCD1602 向世界问好“hello World!”

还有背光灯,和可调节对比度(就是背面蓝色那块可以旋转的调)

 

具体怎么实现解决问题,请往下看

 

引脚说明

GND —— 地线 

VCC —— 电源(5V or 3.3v 电源不同显示效果有点差别)

SDA —— I2C 数据线

SCL —— I2C 时钟线

 

接线方法

LCD1602 i2c模块                         Ardunio Uno

 

GND                           <——>        GND接地线

VCC                           <——>         5V 接电源

SDA                            <——>         A4

SCL                            <——>         A5

 

程序实现

需要用到LCD1602 I2C的库,下载地址是 https://github.com/marcoschwartz/LiquidCrystal_I2C

把下载的库放到Arduino的库里(PS:不懂库是啥?请点击这里

程序和库打包下载:https://u16460183.ctfile.com/fs/16460183-295783929

文件夹说明:
LiquidCrystal_I2C-master     ——LCD1602 I2C库(库需要复制在arduino的库目录里)
LS_LCD1602                       ——主程序

 

//LingShun lab
#include <Wire.h> 
#include <LiquidCrystal_I2C.h> //引用I2C库

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

void setup()
{
  lcd.init();                  // 初始化LCD
  lcd.backlight();             //设置LCD背景等亮
}

void loop()
{
  lcd.setCursor(0,0);                //设置显示指针
  lcd.print("LCD1602 iic Test");     //输出字符到LCD1602上
  lcd.setCursor(0,1);
  lcd.print("         by L.L.");
  delay(1000);
}

 

 

 

 

实例效果

Arduino 和LCD1602液晶屏 I2C接口实验「建议收藏」

 

问题解疑

是一个模块还是两个模块?

这模块是通过LCD1602屏 LCD1602 I2C 模块 焊接结合的,可以直接买焊接好的,也可以分开买,不过就需要点动手能力。

 

无法正常显示?

刚上电的时候,老是显示一个个方块,如图

Arduino 和LCD1602液晶屏 I2C接口实验「建议收藏」

这情况一般是地址错误,我根据说明上写的地址0x20,0x27 都试了个遍还是无法正常显示

后来通过一网友的帖子把这问题给解决了,

贴出了一个寻找设备地址的代码 (来源:Arduino驱动IIC/I2C LCD1602模块显示(4根线解决连接)

 

 

#include <Wire.h>
 
void setup(){
  Wire.begin();
  Serial.begin(9600);
  Serial.println("\nI2C Scanner");
}
void loop(){
  byte error, address;
  int nDevices;
  Serial.println("Scanning...");
  nDevices = 0;
  for (address = 1; address < 127; address++ ){
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    if (error == 0){
      Serial.print("I2C device found at address 0x");
      if (address < 16)
        Serial.print("0");
      Serial.print(address, HEX);
      Serial.println(" !");
      nDevices++;
    }else if (error == 4){
      Serial.print("Unknow error at address 0x");
      if (address < 16)
        Serial.print("0");
      Serial.println(address, HEX);
    }
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");
  delay(5000); // wait 5 seconds for next scan
}

把模块按接线方法接好,上传这段代码后,打开端口监视器,就能找到在I2C上的设备地址,大家可以试试哦

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129543.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springboot 指定logback.xml文件的位置(springboot接收参数)

    学习了下psring的日志管理,具体的xml配置文件记录如下,方便以后参考。&amp;amp;amp;lt;?xmlversion=&amp;amp;quot;1.0&amp;amp;quot;encoding=&amp;amp;quot;UTF-8&amp;amp;quot;?&amp;amp;amp;gt;&amp;amp;amp;lt;!–configuration根节点属性说明:scan:配置文件改

    2022年4月11日
    40
  • 微信聊天记录迁移(Android到IOS)「建议收藏」

    微信聊天记录迁移1.原设备登录微信我的–>设置–>通用–>聊天记录备份与迁移选择“迁移聊天记录到另一台设备”选择“迁移全部聊天记录”,会生成一个二维码用新的设备登录该微信号并扫描此二维码,即可迁移数据…

    2022年4月15日
    214
  • python多维list去重「建议收藏」

    python多维list去重「建议收藏」一维的list去重可以用set(list),但是二维的list转set就会报错unhashabletype:‘list’原因是set传进来的是不可哈希的变量Python中那么哪些是可哈希元素?哪些是不可哈希元素?可哈希的元素有:int、float、str、tuple不可哈希的元素有:list、set、dict为什么list是不可哈希的,而tuple是可哈希的(1)因为l…

    2022年5月26日
    56
  • Idea激活码最新教程2022.2.5版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2022.2.5版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2022 2 5 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2022 2 5 成功激活

    2025年5月26日
    1
  • Linux系统定时任务「建议收藏」

    Linux系统定时任务定时任务CrondCrond是linux系统中用来定期执行命令/脚本或指定程序任务的一种服务或软件,一般情况下,我们安装完Centos5/6linux操作系统之后,默认便会启动Crond任务调度服务。Crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作,如果有,便会根据其预先设定的定时任务规则自动执行该定时任务工作,这个crond定…

    2022年4月16日
    46
  • visio 2013安装教程

    visio 2013安装教程最近学习过程中要用到绘图工具 想来还是 visio 好用 以前用的是 2007 版本太低了 不好用 网上找了 2013 安装教程 这里分享给大家 百度网盘链接 https pan baidu com s 1U KaQ87cEfODzM 密码 r5u2 里边有安装教程 版本是 visio 位的

    2025年10月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号