PCA9555 считыване состояния входов

Тема в разделе "Arduino & Shields", создана пользователем PIW2004, 27 ноя 2013.

  1. PIW2004

    PIW2004 Нуб

    Как использовать PCA9555 в качестве расширителя Выходов вроде разобрался, код работает:
    Код (Text):

    #include <Wire.h>
    #define A_Klap 0x20
    #define A_Klav 0x24

    #define K_CONFIG0 6
    #define K_CONFIG1 7
    #define K_OUTPUT0 2
    #define K_OUTPUT1 3
    #define K_INPUT0 0
    #define K_INPUT1 1

    void setup()
    {
      Wire.begin();
      Wire.beginTransmission(A_Klap);
      Wire.write(K_CONFIG0);
      Wire.write(K_OUTPUT0);
      Wire.write(K_OUTPUT1);
      Wire.endTransmission();
      delay (30);
    }
    void loop()
    {
      Wire.beginTransmission(A_Klap);
      Wire.write(K_OUTPUT0);
      Wire.write(K_DZL+K_DZP);
      Wire.write(K_OFF);
      Wire.endTransmission();
      delay(30);
      Wire.beginTransmission(A_Klap);
      Wire.write(K_OUTPUT0);
      Wire.write(K_OFF);
      Wire.write(K_OFF);
      Wire.endTransmission();
      delay(30);
      Wire.beginTransmission(A_Klap);
      Wire.write(K_OUTPUT0);
      Wire.write(K_DZL+K_DZP);
      Wire.write(K_OFF);
      Wire.endTransmission();
      delay(30);
    }
    А вот использовать её как расширитель Входов, никак не могу осилить, может кто сталкивался?
    Код (Text):

    #include <Wire.h>
    #define A_Klap 0x20
    #define A_Klav 0x24

    #define K_CONFIG0 6
    #define K_CONFIG1 7
    #define K_OUTPUT0 2
    #define K_OUTPUT1 3
    #define K_INPUT0 0
    #define K_INPUT1 1

    void setup()
    {
    Wire.begin();

    Wire.beginTransmission(A_Klav);
    Wire.write(K_CONFIG0);
    Wire.write(K_INPUT0);
    Wire.write(K_INPUT0);
    Wire.endTransmission();
    delay (30);
    }
    void loop()
    {

    Wire.beginTransmission(A_Klav);
    Wire.write(K_INPUT0);
    Wire.write(K_INPUT1);
    Wire.endTransmission();
    Wire.requestFrom(A_Klav, 2);
    while(!Wire.available()) delay(30);
    byte _data = Wire.read();
    Serial.println(_data);
    }
    Подаю на входы 5V через самодельную клавиатуру, никакова эффекта, _data никак не меняется.
     
  2. lerik2703

    lerik2703 Гик

  3. PIW2004

    PIW2004 Нуб

    Это я уже смотрел, там всё в куче, а мне бы примерчик, как использовать её Только для чтения вводов.
    До этого использовал PCF8574, там всё просто, 8 портов, всё укладывается в 1 бит, считал в переменную и используеш, но приходилось 2 микросхемки юзать, вот и решил, перейти на 16 портов.
    А тут надо считать сразу 2 бита получается, и как их потом обработать, не пойму...