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


相关推荐

  • javascript 匿名函数_匿名函数lambda

    javascript 匿名函数_匿名函数lambda你必须知道的JavaScript匿名函数以及多种匿名函数的写法,本文还将详解为什么匿名函数会自动执行,这也是Jquery库的原理哦~~~

    2022年10月3日
    0
  • Eclipse_配置_00_资源帖

    Eclipse_配置_00_资源帖

    2022年3月7日
    29
  • Python标识符的命名规则,下列哪些是对的?_python标识符不能使用关键字

    Python标识符的命名规则,下列哪些是对的?_python标识符不能使用关键字[快速理解]Python标识符是指变量、函数、类、模块等的名称。例如:a=10中的a是标识符反例:foriin[1,2,3]中的for和in不是标识符,是保留字,i是标识符。Python保留字有特殊的语法功能。选择题以下选项中都可以作为Python标识符的是:选项:A_py99pyBcueba_intCandChinaDstr1else问题解析Python标识符的命名规则:1.标识符的第一个字符必须是字母、下划线,其后的字符可以是字…

    2022年9月9日
    0
  • jar和war的区别

    jar和war的区别Jar、war在文件结构上,二者并没有什么不同,它们都采用zip或jar档案文件压缩格式。但是它们的使用目的有所区别:jar1.Jar文件(扩展名为.Jar,JavaApplicationArchive)包含Java类的普通库、资源(resources)、辅助文件(auxiliaryfiles)等。2.jar包是java打的包,一般只是包括一些编译后class文件和一些部署文件,在声…

    2022年5月24日
    41
  • html echarts饼状图_echarts环形图

    html echarts饼状图_echarts环形图ECharts旭日图旭日图(Sunburst)由多层的环形图组成,在数据结构上,内圈是外圈的父节点。因此,它既能像饼图一样表现局部和整体的占比,又能像矩形树图一样表现层级关系。ECharts创建旭日图很简单,只需要在series配置项中声明类型为sunburst即可,data数据结构以树形结构声明,看下一个简单的实例:实例varoption={series:{type:’s…

    2022年9月26日
    0
  • linux下连接mysql数据库命令,linux连接mysql命令[通俗易懂]

    linux下连接mysql数据库命令,linux连接mysql命令[通俗易懂]linux连接mysql是最基本的操作之一,对于初学者来说我们可以通过命令来连接mysql,下面由学习啦小编为大家整理了linux下连接mysql命令的相关知识,希望对大家有所帮助!linux连接MYSQL命令格式:mysql-h主机地址-u用户名-p用户密码linux连接mysql命令实例1、连接到本机上的MYSQL找到mysql的安装目录,一般可以直接键入命令mysql-uroot…

    2022年9月2日
    3

发表回复

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

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