您的位置 首页 > 数码极客

【串口显示器】用Arduino开发板做一个IIC地址检测器

使用装有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以及编程知识,请持续关注我们。您的每一次点赞,或者转发。都支撑着我们前行。谢谢!

关于作者: admin

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐