项目简介
本项目是一个用于Arduino的开源库,借助I2C接口对共享端口扩展器(如PCF8574、PCF8575、MCP23017等)进行控制。这些端口扩展器通过I2C总线与Arduino相连,能提供额外的数字I/O引脚,进而释放Arduino的数字引脚以用于其他用途。
项目的主要特性和功能
- 支持多种I2C端口扩展器,涵盖PCF8574、PCF8575、MCP23017等。
- 允许多个设备共享同一组I2C端口,减少代码冗余与冲突。
- 具备桥接功能,可让现有的Arduino库(如Keypad、LiquidCrystal等)使用I2C端口扩展器的引脚。
- 提供非阻塞定时器功能,用于重复脉冲单个引脚。
- 包含示例代码,展示如何使用这些库来控制键盘、LCD显示器和闪烁引脚。
安装使用步骤
假设用户已经下载了本项目的源码文件,按以下步骤操作:
1. 导入库:将下载的库文件解压到Arduino的库文件夹中(通常位于Arduino/libraries
目录下)。
2. 编写代码:在Arduino IDE中编写代码,使用提供的库函数来初始化和操作I2C端口扩展器。示例代码如下:
```cpp
include
include
include
include
include
define I2CADDR 0x24 // MCP23017
TwoWire * jwire; // 用于测试传递到备用I2C端口的引用(例如MKR ZERO) shrMC17 prt( I2CADDR, MCP23017, jwire ); // 创建shrPort对象,使用MCP扩展器 Keypad_exp kpd( &prt, makeKeymap(keys), rowPins, colPins, ROWS, COLS); // 初始化键盘 flashPin_exp pin7( &prt, 7, LOW, 250); // 创建flashPin LiquidCrystal_exp lcd( &prt, 16, 2 ); // 初始化LiquidCrystal_exp,16列,2行
void setup() {
Serial.begin( 9600 );
while( !Serial ){ / 等待 / }
jwire->begin( );
prt.begin( );
kpd.begin( );
for( byte ix=0; ix < 8; ix++ ) { // LCD假设其端口设置为输出
prt.pin_mode( ix, OUTPUT );
}
lcd.init( ); // LCD启动
lcd.begin( 16, 2 );
lcd.print( "Hi Joe exp" ); // LCD操作
lcd.setCursor( 0, 1 );
lcd.backlight( );
}
```
3. 上传代码:将代码上传到Arduino板。
4. 测试功能:通过测试代码来验证I2C端口扩展器的功能。
通过以上步骤,即可在Arduino项目中使用I2C端口扩展器,并实现复杂的I/O控制功能。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】