Arduino问答实验室

ArduinoUNO+PCF8575 16位数位扩展口 实验1条评论

作者:学长   发布于:2013年7月18日 16:00:22 周四    分类: Arduino    7841 人浏览

Arduino Uno + PCF8575 I2C 模块实验

PCF8575 较少见故拿来做实验


I2C 注意事项

1. I2C bus 需要的电阻为 1.8K 4.7K 10K 三选一 ,但在这个范围内应该都可以

2. 电源 5v

3. 原理请参考 http://www.robot-electronics.co.uk/acatalog/I2C_Tutorial.html


PCF8575 注意事项

1. 16位扩展口双向。74HC595N 为单向输出。

2. 设置及写入皆为双位元,第一个byte 对应 P7-P0 ,第二个byte 对应 P17-P10。

3. 上电後,由 mater 传来的第一个位元,视为设置P7-P0 ,第二个位元设置 P17-P10 。

4. 设置时 1 为 Input , 0 为 Output

#include <Wire.h>
int i=0;


byte statea[]={0b11111110, 0b11111101,0b11111011,0b11110111,0b11101111,0b11011111,0b10111111,0b01111111,0b10111111,0b11011111,0b11101111,0b11110111,0b11111011,0b11111101,0b11111110};
byte stateb[]={0b01111111,0b10111111,0b11011111,0b11101111,0b11110111,0b11111011,0b11111101,0b11111110, 0b11111101,0b11111011,0b11110111,0b11101111,0b11011111,0b10111111,0b01111111};
void setup()
{
  Serial.begin(9600);
  Wire.begin(); // join i2c bus (address optional for master)
  SetOutput(32);
  pinMode(2,INPUT);

}

byte x = 0; 

void loop()
{
  for(i=0;i<8;i++)
  {
    Wire.beginTransmission(32); // transmit to device #4
    Wire.write(statea[i]);        // sends five bytes
    Wire.write(stateb[i]);              // sends one byte  
    Wire.endTransmission();    // stop transmitting
    Serial.print(statea[i],BIN);
    Serial.print("  ");
    Serial.print(stateb[i],BIN);
    Serial.print("  ");
    Serial.println(digitalRead(2));
    delay(300);
  } 
}

void SetOutput(int addr){
  Wire.beginTransmission(addr);
  Wire.write(0b00000000);  // First byte refer to P7-P0
  Wire.write(0b00000000);  // Second byte refer to P17-P10
  Wire.endTransmission();
} 
void SetInput(int addr){
  Wire.beginTransmission(addr);
  Wire.write(0b11111111);  // First byte refer to P7-P0
  Wire.write(0b11111111);  // Second byte refer to P17-P10
  Wire.endTransmission();
} 



以下为接线图 因无 pcf8475 的 Fritzing 元件,故以 pcf 8574 代替

pcf8574接线图.png



以下为 pcf8575 实体接线图

pcf8575接线-01.jpgpcf8575接线-02.jpg



Arduino问答实验室- 本站版权
1、本主题由文章作者发表,文章作者与Arduino问答实验室享有文章相关版权
2、转载或引用本文时请同时征得文章作者和Arduino问答实验室的同意
3、本站部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站即时予与以处理
5、原文链接:www.985z.com/?post=7
二维码
继续查看有关 arduino 8574 uno 8575 wire I2C TWI 的文章

1访客评论

  • 行业研究
    博客文章写的很不错  感觉很好  赞一个

    2013-08-13 16:43 回复

我来说说

*

*