基于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汇总


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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 详解Cisco ACS AAA认证

    详解Cisco ACS AAA认证详解CiscoACSAAA认证近来,有些同学会问到关于AAA认证的问题,以及ciscoACS如何使用,那么今天我们就主要来讲一下关于这方面的知识。AAA代表Authentication、Authorization、Accounting,意为认证、授权、记帐,其主要目的是管理哪些用户可以访问服务器,具有访问权的用户可以得到哪些服务,如何…

    2022年5月10日
  • set_time_limit(0)是什么意思?

    set_time_limit(0)是什么意思?

    2021年10月18日
  • linux load average,Linux 平均负载 Load Average 详解[通俗易懂]

    linux load average,Linux 平均负载 Load Average 详解[通俗易懂]一、什么是LoadAverage?系统负载(SystemLoad)是系统CPU繁忙程度的度量,即有多少进程在等待被CPU调度(进程等待队列的长度)。平均负载(LoadAverage)是一段时间内系统的平均负载,这个一段时间一般取1分钟、5分钟、15分钟。二、如何查看LoadAverage?top命令,w命令,uptime等命令都可以查看系统负载;三、LoadAverage的3个数值各是什…

    2022年7月17日
  • windows elk搭建_windows搭建ftp系统

    windows elk搭建_windows搭建ftp系统前提条件,已有如下红色线中安装包:资源路径:https://download.csdn.net/download/lijiaheng525/10789382(无下载的积分的留言,可以私下发你)第一步:下载nodejs并安装,然后在安装的目录下执行如下命令,安装grunt(head插件需要用到grunt命令):第二步:切换到head插件的解压目录,安装pathomj…

    2022年10月8日
  • 笛卡尔心形函数表达式_笛卡尔心形曲线[通俗易懂]

    笛卡尔心形函数表达式_笛卡尔心形曲线[通俗易懂]1650年,斯德哥尔摩的街头,52岁的笛卡尔邂逅了18岁的瑞典公主克里斯汀。那时,落魄、一文不名的笛卡尔过着乞讨的生活,全部的财产只有身上穿的破破烂烂的衣服和随身所带的几本数学书籍。生性清高的笛卡尔从来不开口请求路人施舍,他只是默默地低头在纸上写写画画,潜心于他的数学世界。一个宁静的午后,笛卡尔照例坐在街头,沐浴在阳光中研究数学问题。他如此沉溺于数学世界,身边过往的人群,喧闹的车马队伍。都无法对他…

    2022年10月17日
  • Microsoft Office 2007正式版序列号,可通过正版验证[通俗易懂]

    Microsoft Office 2007正式版序列号,可通过正版验证[通俗易懂]MicrosoftOffice2007AppKey:RYX9X-2WR37-XTBXD-CGGCJ-FQ8BJFWVFQ-P23PG-PQC4W-X299G-D44MJFJYC4-Y8JTR-T8RKY-4GBD4-TQK38J8TVY-RW6CH-K4K92-JW4T8-B4THWMJJHT-2G2B3-GTWVP-BHX3C-WKCVWMJCXB-73MGC-GY37D-Y…

    2022年7月19日

发表回复

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

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