Arduino与Proteus仿真实例-PCF8574接口扩展驱动仿真

PCF8574接口扩展驱动仿真

PCF8574/74A 通过两线双向 I2C 总线(串行时钟 (SCL)、串行数据 (SDA))提供通用远程 I/O 扩展。

PCF8574/74A包括八个准双向端口、100 kHz I2C 总线接口、三个硬件地址输入和中断输出在 2.5 V 和 6 V 之间运行。准双向端口可以独立指定为输入以监控中断状态或键盘,或作为输出以激活 LED 等指示设备。 系统主机可以通过单个寄存器从输入端口读取或写入输出端口。

PCF8574/74A具有2.5 uA(典型值,静态)的低电流消耗非常适合移动应用,并且锁存输出端口可直接驱动 LED。

在前面的实例中,对PCF8574已经做了详细的描述,请参考:

1、仿真电路原理图

在这里插入图片描述

2、仿真代码实现

本次实例使用开源库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "PCF8574.h"

// Set i2c address
PCF8574 pcf8574(0x20);
uint8\_t pcf8574Pins[] = {P0,P1,P2,P3,P4,P5,P6,P7};
void setup()
{
Serial.begin(115200);
delay(1000);

// Set pinMode to OUTPUT
for(uint8\_t i = 0;i < 8;i++){
pcf8574.pinMode(pcf8574Pins[i], OUTPUT);
}

Serial.print("Init pcf8574...");
if (pcf8574.begin()){
Serial.println("OK");
}else{
Serial.println("KO");
}
}

void loop()
{
for(int i = 0; i < 8;i++){
pcf8574.digitalWrite(pcf8574Pins[i], HIGH);
delay(100);
}

for(int i = 0; i < 8;i++){
pcf8574.digitalWrite(pcf8574Pins[i], LOW);
delay(100);
}
}

3、仿真结果

在这里插入图片描述

文章来源: https://iotsmart.blog.csdn.net/article/details/121092766