使用装有IIC模块的1602液晶的同学们。写程序的时候,程序开头有以下短语:
LiquidCrystal_I2C液晶屏(0x27,16,2);//要显示16位和2行,请将液晶屏地址设置为0x27
也许有学习好的同学会。
地址为什么是0x27。这里,我们用Arduino开发板来写一段程序就可以告诉你答案。本程序理论上面应该可以检测所有IIC设备的地址。但是我没有验证过,请感兴趣的网友帮忙验证一下。今天,我们就以带IIC模块的1602液晶为例来验证。IIC的地址定义
上面的黑色模块就是IIC模块 芯片采用PCF8574
硬件联接方式:
程序功能:读出1602液晶的IIC初始地址
硬件联接:IIC-1602 Arduino Uno R3
GND GND
VCC 5V
SDA A4
SCL A5
代码如下:
#include <Wire.h> //IIC的库函数
void setup(){
Wire.begin();
Serial.begin(9600);
Serial.println("\nIIC 开始扫描");
}
void loop()
{
byte error, address;
int nDevices;
Serial.println("扫描中...");
nDevices = 0;
for (address = 1; address < 127; address++ )
{ //用地址挨个挨个验证
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print("IIC 设备找到地址为 0x");
if (address < 16)
Serial.print('0');
Serial.print(address, HEX);
Serial.println('!');
nDevices++;
}
else if (error == 4)
{
Serial.print("地址未知错误 0x");
if (address < 16)
Serial.print('0');
Serial.println(address, HEX);
}
}
if (nDevices == 0)
Serial.println("找不到任何IIC设备");
else Serial.println("完成");
delay(5000); // wait 5 seconds for next scan
}
软件界面
实物效果
将程序下载进Arduino,液晶屏只是背光亮了。无任何显示。打开Arduino的串口监视器。
实物效果 这个实验不用看显示效果 所以显示是没有意义的
程序下载后,打开串口监视器
设备找到地址为0x27
如果此时,我们拔掉接在开发板 A4 和 A5 两个脚上面的液晶的两根线。这个时候,串口显示器,里面就找不到地址了。如下图:
找不到设备的显示效果
想学习更多关于Arduino以及编程知识,请持续关注我们。您的每一次点赞,或者转发。都支撑着我们前行。谢谢!