Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
KC868-A16 V1.5 I2C PCF8574 address updated
#1
some of KC868-A16 V1.5 hardware version, PCF8574 address is changed. (if you have seen PCB is V1.5 and have GREEN label, you need to use new address value)
before is :

Relay_IIC_address 0x24
Relay_IIC_address 0x25

Input_IIC_address 0x21
Input_IIC_address 0x22


new is :

Relay_IIC_address 0x3C
Relay_IIC_address 0x3D

Input_IIC_address 0x39
Input_IIC_address 0x3A

   

if you don't know your PCF8574 address, you can use this "I2C scan" arduino IDE source code to scan address, it will print value by serial port.

here is source code: 
.zip   i2c-scan-a16.zip (Size: 645 bytes / Downloads: 450)
Reply
#2
FYI, one address was different for my board (hardware rev 1.5) thus failing to initialize: 3B, instead of 3A.
Code:
I2C scanner. Scanning ...
Found address: 57 (0x39)
Found address: 59 (0x3B)
Found address: 60 (0x3C)
Found address: 61 (0x3D)
Found 4 device(s).
Reply
#3
it's normal, some times different chip have different I2C address.
Reply
#4
I success read address ifof I2C 0x24, 25  0x21 0x22

This is my log:
Found address: 33 (0x21)
Found address: 34 (0x22)
Found address: 36 (0x24)
Found address: 37 (0x25)


but when try to do
pcf8574.begin() -> it is failed? waht can be the problem?


My code : 
// Set i2c address
PCF8574 pcf8574_1(0x24,4,5);
PCF8574 pcf8574_2(0x25,4,5);

  if (pcf8574_1.begin())
{
        Serial.println("PCF8574_1_OK");
    }
else
{
        Serial.println("PCF8574_1_KO");
    }


Serial.print("Init pcf8574_2...");
  if (pcf8574_2.begin()){
    Serial.println("PCF8574_2_OK");
  }else{
    Serial.println("PCF8574_2_KO");
  }

What cvan be the problem?
PCF8574 pcf8574_1(0x24);PCF8574 pcf8574_1(0x24);Serial.print("Init pcf8574_2...");
  if (pcf8574_2.begin()){
    Serial.println("PCF8574_2_OK");
rfrrr  }else{

w
    Serial.println("PCF8574_2_KO");
  }

  if (pcf8574_1.begin())
{
        Serial.println("PCF8574_1_OK");
    }
else
{
        Serial.println("PCF8574_1_KO");
    }
PCF8574 pcf8574_2(0x25);

PCF8574 pcf8574_2(0x25);PCF8574 pcf8574_1(0x24);
PCF8574 pcf8574_2(0x25);

pcf8574_1.begin() pcf8574_1.begin()pcf8574_1.begin()pcf8574_1.begin()
Reply
#5
your TEXT is very very small, can't see the words.
i think you have not define the i2c bus SDA and SCL pin in arduino code.
Reply


Forum Jump:


Users browsing this thread:
1 Guest(s)