(Arduino) LCD1602模块使用方法(IIC模式)

news/2025/1/20 6:59:26/

topic

    • 介绍
      • 引脚说明
      • 接线方法
    • 代码示例1:
    • 问题解疑
    • 寻找IIC设备地址的代码

参考:https://lastminuteengineers.com/arduino-1602-character-lcd-tutorial/

介绍

1602液晶显示器(1602 Liquid Crystal Display,此后简称1602 LCD)是一种常见的字符液晶显示器,因其能显示16*2个字符而得名。
在这里插入图片描述

我们使用IIC LCD1602模块集成了IIC I/O扩展芯片,通过两线制的IIC总线(串行时钟线SCL,串行数据线SDA),可使Arduino实现控制LCD 1602显示的目的。

通过设置跳线还可以设置地址: 0x20-0x27。模块背面可以看到一块蓝色的电位器,旋转它可以调节1602液晶显示器的对比度。
背后的接线引脚分别为GND;VCC;SDA;SCL(SDA和SCL分别为iic通讯的数据线和时钟线)

获取此库可点击:项目-加载库-管理库,在搜索框内搜索liquidCrystal可找到若干关于驱动液晶的库文件,在下面就有LiquidCrystal_I2C相关的库文件,点击安装即可。
也可以去GitHub下载LCD1602_I2C的库,下载地址是 https://github.com/marcoschwartz/LiquidCrystal_I2C

引脚说明

GND ------ 地线
VCC ------ 电源(5V or 3.3v 电源不同显示效果有点差别)
SDA ------ I2C 数据线
SCL ------ I2C 时钟线

接线方法

LCD1602 i2c模块 Ardunio Uno
GND <------> GND接地线
VCC <------> 5V 接电源
SDA <------> A4
SCL <------> A5

代码示例1:

//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);  
}  

问题解疑

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

  2. 无法正常显示?
    刚上电的时候,老是显示一个个方块,如图
    在这里插入图片描述

这情况一般是地址错误,

寻找IIC设备地址的代码

一个寻找设备地址的代码 (来源:Arduino驱动IIC/I2C LCD1602模块显示(4根线解决连接))
官方地址:i2c_scanner(http://playground.arduino.cc/Main/I2cScanner)

#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");elseSerial.println("done\n");delay(5000); // wait 5 seconds for next scan
}

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


http://www.ppmy.cn/news/534888.html

相关文章

arduino串口监视器显示nan_使用Arduino开发板制作摩尔斯电码生成器

摩尔斯电码是一种通信系统,用于在两个不同持续时间的信号中编码任何字符,称为点和虚线。摩尔斯电码由Samuel F.B开发。并进一步用于电报传输秘密信息。它在第二次世界大战时最常用。摩尔斯电码可以通过点击、闪烁灯或写入来执行。摩尔斯电码有两种版本,原始和国际摩尔斯电码…

使用Arduino、RTC和LCD显示屏的基于RFID的考勤系统

在本篇文章中&#xff0c;我们将介绍如何使用Arduino设计一款基于RFID的考勤系统。 EM-18 RFID读卡器是一个非常简单但有效的模块。它是一个RFID模块&#xff0c;用于扫描RFID卡。它是一项新技术&#xff0c;并且每天都在扩展。如今&#xff0c;它已被广泛用于办公室&#xff0…

将手机作为电脑硬件监视器

将手机作为电脑硬件监视器 无意间看到有人利用闲置的手机做了一个显示电脑性能情况的小显示器&#xff0c;觉得有点意思于是自己也做了一个。 首先我们需要三个软件应用 分别是 AIDA 64 , RemotePanelSetup(电脑端手机端) 准备 安装好三个软件/应用后&#xff0c;我们需要用…

Arduino开发实例-DS3231实时时钟+LCD显示

DS3231实时时钟+LCD显示 1、DS3231介绍 DS3231是低成本、高精度I2C实时时钟(RTC),具有集成的温补晶振(TCXO)和晶体。该器件包含电池输入端,断开主电源时仍可保持精确的计时。集成晶振提高了器件的长期精确度,并减少了生产线的元件数量。DS3231提供商用级和工业级温度范围,…

TFT-LCD的主要特点以及市场分析

TFT-LCD即薄膜场效应晶体管LCD&#xff0c;是有源矩阵类型液晶显示屏(AM-LCD)中的一种。 TFT-LCD&#xff0c;是目前唯一在亮度、对比度、功耗、寿命、体积和重量等综合性能上全面赶上和超过CRT的显示屏件&#xff0c;它的性能优良、大规模生产特性好&#xff0c;自动化程度高…

Arduino与LCD1602(I2C)搭配使用攻略

文章目录 1.连线2.安装库3.查找串口地址4.正式烧录5.效果展示 1.连线 我使用的是Arduino&#xff08;UNO&#xff09;开发板和LCD1602带拓展板I2C。具体连线比较简单。 GND ------ 地线 VCC ------ 电源5V SDA ------ I2C 数据线 SCL ------ I2C 时钟线 2.安装库 arduinoIDE…

Arduino 和LCD1602液晶屏 I2C接口实验

LCD1602液晶屏 带I2C接口 为什么使用I2C接口&#xff1f;因为省IO口啊&#xff0c;只需要4条线&#xff0c;可以看看之前发的实验&#xff0c;接线多复杂呀&#xff0c;对吧。 &#xff08;传送门&#xff1a;Arduino携手LCD1602 向世界问好“hello World&#xff01;”&#…

LCD设备驱动

一、LCD硬件原理 利用液晶制成的显示器LCD&#xff0c;依据驱动方式可分为静态驱动、简单矩阵驱动以及主动矩阵驱动3中。其中&#xff0c;简单矩阵型又可再区分扭转向列型&#xff08;TN&#xff09;和超扭转式向列型&#xff08;STN&#xff09;两种&#xff0c;而主动矩阵型则…