码迷,mamicode.com
首页 > 其他好文 > 详细

多片PCF8574扩展树莓派IO

时间:2014-06-10 08:46:13      阅读:315      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

这里选择了使用3片PCF8574扩展,可以拓展出24个双向IO口。

如果有不了解,可参考我前边的几篇文章:

树莓派i2c配置

树莓派安装WiringPi库

PCF8574扩展树莓派io口 

 

正面接线图:

bubuko.com,布布扣

 

反面焊点图:      

bubuko.com,布布扣

 

(注意:PCF8574芯片的A0 A1 A2引脚电平状态,这里的接法三片PCF8574的地址分别为 0x20 0x21 0x22 ,实际可根据自己的需要进行调整。)

 

连接好芯片后,用 i2cdetect  工具查看芯片识别状态

bubuko.com,布布扣
sudo i2cdetect -y 1
bubuko.com,布布扣

如果按我的地址选择方案,正常情况下会显示如下:

bubuko.com,布布扣
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 21 22 -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
bubuko.com,布布扣

 

既然识别了,那接下来就进行IO操作

(这里使用了wiringPi库,好处自己体会。)

bubuko.com,布布扣
//pcf8574.c
#include <stdio.h> #include <wiringPi.h> #include <pcf8574.h> #define EXTEND_BASE 100 int main (void) { // wiringPi初始化 wiringPiSetup( ); // pcf8574初始化 pcf8574Setup( EXTEND_BASE, 0x20 ); pcf8574Setup( EXTEND_BASE+8, 0x21 ); pcf8574Setup( EXTEND_BASE+16, 0x22 ); int i; //设置为输出状态 for ( i = 0 ; i < 24 ; i++ ) { pinMode( EXTEND_BASE + i, OUTPUT ); } //流水灯 for (;;) { for( i = 0 ; i < 24; i++) { digitalWrite ( EXTEND_BASE + i, HIGH); delay (10); digitalWrite ( EXTEND_BASE + i, LOW); delay (10); } } return 0 ; }
bubuko.com,布布扣

多片PCF8574扩展树莓派IO,布布扣,bubuko.com

多片PCF8574扩展树莓派IO

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/wjne/p/3778588.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!