完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
简介
MCP23017能将16位并行I/O数据和IIC串行数据相互转换;设备IIC通信频率可达1.7MHz;IIC总线上可连接8个器件共128个I/O;两个中断输出引脚,可配置为高/低/开漏有效中断输出;带有外部输入复位引脚,低有效。 MCP23017模块 模块A2、A1、A0接到GND都为0,默认为0100000x,GPIOA、GPIOB默认为输入模式。 Arduino UNO与MCP23017接线 [tr]AArduino UNOMCP23017[/tr]
测试程序 打开Arduino IDE的库管理器搜索MCP23017例程库并安装,打开toggle例程 #include #include "Adafruit_MCP23017.h" // Basic pin reading and pullup test for the MCP23017 I/O expander // public domain! // Connect pin #12 of the expander to Analog 5 (i2c clock) // Connect pin #13 of the expander to Analog 4 (i2c data) // Connect pins #15, 16 and 17 of the expander to ground (address selection) // Connect pin #9 of the expander to 5V (power) // Connect pin #10 of the expander to ground (common ground) // Connect pin #18 through a ~10kohm resistor to 5V (reset pin, active low) // Output #0 is on pin 21 so connect an LED or whatever from that to ground Adafruit_MCP23017 mcp; void setup() { mcp.begin(); // use default address 0 mcp.pinMode(0, OUTPUT); mcp.pinMode(1, OUTPUT); mcp.pinMode(2, OUTPUT); } // flip the pin #0 up and down void loop() { delay(100); mcp.digitalWrite(0, HIGH); delay(100); mcp.digitalWrite(0, LOW); delay(100); mcp.digitalWrite(1, HIGH); delay(100); mcp.digitalWrite(1, LOW); delay(100); mcp.digitalWrite(2, HIGH); delay(100); mcp.digitalWrite(2, LOW); } 总结 在MCU的IO引脚不够用时,选择MCP23017扩展更多的IO引脚与更多的设备实现连接交换数据。 |
|
|
|
只有小组成员才能发言,加入小组>>
3311 浏览 9 评论
2994 浏览 16 评论
3493 浏览 1 评论
9058 浏览 16 评论
4087 浏览 18 评论
1176浏览 3评论
604浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
598浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2334浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1895浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 20:52 , Processed in 1.211197 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号