基于arduino的lcd1602显示_LCD1602接口类型

基于arduino的lcd1602显示_LCD1602接口类型Arduino小实验LCD1602A_I2C液晶显示魔法传送门Arduino小实验LCD1602A_I2C液晶显示准备元件LCD1602A原理图接线部分Arduino代码常见bug汇总及解决方法准备元件准备元件:1.Arduino主板(UNO)//Arduino主板(Mega)崭新出厂2.LCD1602A液晶显示屏3.LCD1602A的驱动—PCF8574驱动板LCD1602A原理图接线部分ArduinoMega:ArduinoUNO实物图Arduino代码常见bug汇总

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在这里插入图片描述

准备元件

准备元件:
1.Arduino主板(UNO)//Arduino主板(Mega)崭新出厂
2.LCD1602A液晶显示屏
3.LCD1602A的驱动—PCF8574驱动板

LCD1602A原理图

在这里插入图片描述
引脚说明
GND——GND
VCC——5V/3.3v
SDA—— I2C
SC——I2C

接线部分

接线说明
PCF8574驱动——Arduino
GND——————GND
VCC—————— 5V
SDA——————A4
SCL—————— A5

Arduino Mega:
在这里插入图片描述
Arduino UNO
在这里插入图片描述
实物图

在这里插入图片描述
这里是Arduino UNO的SCL与SDA接口:
在这里插入图片描述

Arduino代码

Arduino 代码部分在使用了PCF8574驱动板简练方便了不少

安装库文件

这里我们需要“LiquidCrystal_I2C”,我自己在IDE的库管理里没有找到
在这里插入图片描述
LiquidCrystal倒是有…
在这里插入图片描述
这边有资源:
CSDN免费下载:https://download.csdn.net/download/weixin_50679163/15934285
百度网盘:https://pan.baidu.com/s/1oCU4VdWZrfV0sEQNE8DThA
提取码:6666

代码部分:

#include <Wire.h> //调用wire库
#include <LiquidCrystal_I2C.h> //调用LiquidCrystal_I2C库

LiquidCrystal_I2C lcd(0x27,16,2); //设置LCD1_602A设备地址 
 
void setup()
{ 
   
  lcd.init();                  // 初始化LCD_1602A
  lcd.backlight();             //设置LCD背景等亮
}
 
void loop()
{ 
   
  lcd.setCursor(0,0);            //第一行显示
  lcd.print("Hello&Wellcome");     	//输出字符
  lcd.setCursor(0,1);			//第二行显示
  lcd.print("LiquidCrystal");
}

编译上传—OK(*´゚∀゚`)ノ

在这里插入图片描述

常见bug汇总及解决方法

1.为什么屏幕一直常亮没有字符显示?

答:对比度过高/低,LCD_1602A这块屏幕是需要调节对比度的(拿个小螺丝刀拧拧?
在这里插入图片描述

2.为什么显示方块字体?

答:设备地址不匹配,LCD1602设备地址有0x3F,0x20,0x27(常见为0x27)
(很遗憾,截止发布时,我改代码0x27,0x20,0x3F都不会出现方块字了…)

LCD_1602A地址查询方法

在正确与arduino连接下,运行如下代码:
此方法转载Arduino驱动IIC/I2C LCD1602模块显示(4根线解决连接)
(Thanks and salute!)

#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
}

效果图:
在这里插入图片描述

3.为什么只显示一行或两行首字符?

答:修改库文件
进入目录:C:\Users\XXX\Documents\Arduino\libraries
在这里插入图片描述
打开LiquidCrystal_I2C.cpp修改这里:
将return 0;改为return 1;
eg:
inline size_t LiquidCrystal_I2C::write(uint8_t value) {

send(value, Rs);
return 1;
}
在这里插入图片描述

补充:为什么编译上传成功后显示没有更新?

答:上传两次…(反复更新上传
(在烧录程序时,我时常遇到编译上传一次LCD这里刷新屏幕却没有更新文本,一般刷新两次会出现,暂时不知道是什么问题)

最后,各位武运昌盛

“Thank you for playing my game” ——《头号玩家》
在这里插入图片描述

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/190660.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • vue 加载页面时触发时间_Vue 刷新页面时会触发事件吗「建议收藏」

    vue 加载页面时触发时间_Vue 刷新页面时会触发事件吗「建议收藏」使用localstorage做本地存储,然后我想在刷新页面或者离开页面的调用localstorage方法1、页面刷新使用localstorage,也就是当vue被实例化之后有如下几个可以供你使用:exportdefault{beforecreate(){//创建前状态}created(){//创建完毕状态}beforeMount(){//挂载前状态}mounted(){//…

  • jdbc事物描述_事物包括哪些

    jdbc事物描述_事物包括哪些数据库事务数据一旦提交,就不可回滚那些操作会导致数据的自动提交?DDL操作一旦执行,都会自动提交-. set autocommit = false不起作用DML默认情况下,一旦执行就会自动提交-. 可以设置set autocommit = false关闭连接的时候会自动提交 Connection connection = DriverManager.getConnection(url, user, password); connection.setAutoCommit

  • jvmxmx和xms参数分析(设定优化校准)

    XmnXmsXmxXss有什么区别Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果。-Xms堆内存的最小大小,默认为物理内存的1/64-Xmx堆内存的最大大小,默认为物理内存的1/4-Xmn堆内新生代的大小。通过这个值也可以得到老生代的大小:-Xmx减去-Xmn-Xss设置每个线程可使用的内存大小,即…

  • vs2015安装失败,必需的组件失败_博图显示下位组件错误

    vs2015安装失败,必需的组件失败_博图显示下位组件错误VS2008安装失败,组件安装失败的解决办法之前安装过VS2008,二次安装时,提示组件安装失败![在这里插入图片描述](https://img-blog.csdnimg.cn/20210324112031241.png?x-oss-process=image/w解决办法:win10系统,设置》应用,卸载所有跟VS2008相关的组件,组件就是上面报错的左边那些,卸载完成后重新安装就可以了。其他问题,点装载VS2008的ISO的时候报错:文件正在使用,装载失败解决办法:检查SQLserver

  • mac idea2021激活码永久【最新永久激活】

    (mac idea2021激活码永久)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1STL…

  • linux 中 tar.xz 的解压命令

    linux 中 tar.xz 的解压命令对于tar.xz结尾的压缩文件,解压有两种方式:可以先将外层用xz解压方式解压,,然后里层用tar解压方式解压:$xz-d*****.tar.xz$tar-xvf*****.tar2.直接使用如下命令解压:$tarxvJf***.tar.xz…

发表回复

您的电子邮箱地址不会被公开。

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