基于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” ——《头号玩家》
在这里插入图片描述

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

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

(0)
上一篇 2026年2月16日 下午2:43
下一篇 2026年2月16日 下午3:15


相关推荐

  • 分析了10万条B站UP主数据后,我知道了成为百万粉丝UP主的一些秘密「建议收藏」

    分析了10万条B站UP主数据后,我知道了成为百万粉丝UP主的一些秘密「建议收藏」前几天一位好朋友入了B站,问我如何才能成为一名百万粉丝的up主。这不,于是我做了这篇的一些分析,知道了成为百万粉丝up主的一些小秘密。还做了一个昵称生成器,给其昵称起名提供建议。这是她的b站视频截图:关于昵称起名我的想法是这样,是我们把B站这些百万粉丝大佬的昵称分析一下成分构成,根据相关性随机起个名,是不是就有百万粉丝up主昵称的那味了?上面截图是她改名前的昵称,是否会改名,改名后叫什么咱们拭目以待。咱们现在就开始爬取整整:B站up主信息爬取直接通过b站首页去爬是很不方便的,这里我找到了两个第

    2022年6月12日
    51
  • java打印数组_Java中打印数组内容的方式有哪些?

    java打印数组_Java中打印数组内容的方式有哪些?下面是几种常见的打印方式。方法一:使用循环打印。publicclassDemo{publicstaticvoidmain(String[]args){String[]infos=newString[]{“Java”,”Android”,”C/C++”,”Kotlin”};StringBufferstrBuffer=newStringBuffer();for(…

    2022年5月2日
    49
  • python和java哪个更值得学 知乎_学完python再学java

    python和java哪个更值得学 知乎_学完python再学java​在编程界经常会引发一个讨论,就是python和Java哪个更值得学,Java语言具有跨平台的特性,在应用范围上有许多选择的余地,而Python在这几年的火热程度丝毫没有减退。个人观点,看学习的目的

    2025年6月19日
    3
  • Fedora linux 3322动态域名解析设置

    Fedora linux 3322动态域名解析设置br nbsp step1 安装 lynxbr nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp yum yinstalllynx step2 修改 etc sysconfig network scripts ifup pppbr nbsp nbsp nbsp nbsp nbsp nbsp nbsp vi etc sysconfig network scripts ifup pppbr 找到 br checkthatxDS if TYPE xDSL th

    2026年3月20日
    2
  • Linux之shell编程的shell工具

    Linux之shell编程的shell工具一 shell 工具 Linux 在其内部集成了大量的工具 其中有四个工具对于 shell 编程具有很大的帮助 他们分别是 1 cut 工具 2 sed 工具 3 awk 工具 4 sort 工具 二 cut 工具 cut 工具是从文件的每一行剪切字节 字符和字段并将这些输出 cut 选项参数 filename 选项参数 1 f 列号 提取第几列 2 d 分隔符 按照指定分隔符分割列 3 c 指定具体的字符三 sed 工具 ed 是一种流编辑器 它一次处理一行内容 处理时 把当前处理的行存储在临时缓冲区中 称

    2026年3月17日
    1
  • 重磅!张予彤出任月之暗面总裁

    重磅!张予彤出任月之暗面总裁

    2026年3月12日
    2

发表回复

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

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