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