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 устройствами, как на вход так и на выход

Подробнее

БЕСПЛАТНАЯ ДОСТАВКА НОВОЙ ПОЧТОЙ(отделение-отделение)
В ЗАКАЗАХ от 1000 грн,
при оплате на карту банка с 01 по 31 декабря 2018г. В случае доставки наложенным платежом, доставка оплачивается только до покупателя, расходы по доставке средств, покупатель оплачивает самостоятельно.

При покупке этого товара вы можете получить до 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 других товаров в этой категории:

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