i2c pcf8575 расширитель портов 16шт gpio port-expander

pcf8575-mod

PCF8575 IIC I2C I O Extension Shield Module 16 bit SMBus I O ports For Arduino

модуль расширитель портов pcf8575 i2c позволит по шине из двух проводов, управлять 16 устройствами, как на вход так и на выход

Подробнее

При покупке этого товара вы можете получить до 11 бонусных баллов. Сумма вашей покупки составит 11 баллов которые можно обменять на купон в 1,10 грн.


115,00 грн

Описание

Arduino i2c pcf8575 расширитель портов 16шт gpio port-expander ардуино

для работы в openwrt подключить модуль kmod-pcf857x


пример кода для ардуино

#include <Wire.h>
//this code turns every PCF8575 pin into an input (without interrupt)
//datasheet - http://www.ti.com/general/docs/lit/getliterature.tsp?genericPartNumber=pcf8575&fileType=pdf
//i2c code adapted from i2c_dio_pcf8575c.cpp - Arduino class library for TI PCF8575C 16-bit I2C I/O expander

//address is |0100|A0|A1|A2|
int address = 0x20; //0100000 (7bit)  
uint16_t dataReceive; //16bit data received
uint16_t dataSend;  //16bit data sent

void setup(){
  Wire.begin();
  Serial.begin(9600);
  //turn pins to input in setup
  //if bit = 0, pin functions as input or an output that is off
  //if bit = 1, pin functions as an output that is on
  dataSend = word(B00000000,B00000000); //turn every pin to input
  pcf8575_write(dataSend); //turn the pcf8575 pins to input
}

void loop(){
  dataReceive = pcf8575_read(); //read the pcf8575 pins
  Serial.print("Read, ");
  Serial.println(~dataReceive,BIN); //~ inverses the results, this removes the ambiguity of leading zero
  /*
  Read, 1111111111111101 - p1 pressed
  Read, 1111111111111011 - p2 pressed
  Read, 1111111111110111 - p3 pressed
  */
  Serial.println("----------------------");
  delay(300);
}


//custom functions -----------------------------

//I2C/TWI success (transaction was successful).
static const uint8_t ku8TWISuccess                   = 0;
//I2C/TWI device not present (address sent, NACK received).
static const uint8_t ku8TWIDeviceNACK                = 2;
//I2C/TWI data not received (data sent, NACK received).
static const uint8_t ku8TWIDataNACK                  = 3;
//I2C/TWI other error.
static const uint8_t ku8TWIError                     = 4;

uint8_t error;
void pcf8575_write(uint16_t dt){
  Wire.beginTransmission(address);
  Wire.send(lowByte(dt));
  Wire.send(highByte(dt));
  error = Wire.endTransmission();
  if(error == ku8TWISuccess){ //okay!
 
  }
  else{ //we have an error
    //do something here if you like
  }
}
uint8_t hi,lo;
uint16_t pcf8575_read(){
  Wire.beginTransmission(address);
  error = Wire.endTransmission();
  if(error == ku8TWISuccess){ //okay!
    Wire.requestFrom(address,2);
    if(Wire.available()){
      lo = Wire.receive();
      hi = Wire.receive();
      return(word(hi,lo)); //joing bytes
    }
    else{//error
      //do something here if you like  
    }
  }
  else{ //error
    //do something here if you like  
  }
}




Сопутствующие товары



30 других товаров в этой категории:

Покупатели этого товара так же приобрели: