Вопрос по управлению выводами с помощью расширения ввода-вывода PCA9534PW

Имеется расширитель ввода-вывода PCA9534PW, Arduino UNO. Я не очень понимаю, как я могу управлять этим расширителем, используя UNO через I2C.

Я нашел пример, но вот режим чтения.

Что мне нужно: Установите вывод IO0 в режим выхода, установите уровень HIGH/LOW на IO0.

В даташите я только что понял, что для входа в режим настроек - нужно написать Wire.write(0x03). Как мне это сделать?

, 👍0

Обсуждение

Подсказка: более или менее всегда есть кто-то, кто сделал это до вас и поделился этим. См., например, https://github.com/alotaiba/PCA9534., @Mikael Patel

Ответ: Запишите в регистр конфигурации, чтобы установить режим вывода. См. https://github.com/alotaiba/PCA9534/blob/master/src/PCA9534.cpp#L14., @Mikael Patel


1 ответ


Лучший ответ:

2

Вы устанавливаете режим вывода, настраивая регистр конфигурации.

Wire.beginTransmission(0x20);
Wire.write(0x03);                   // Регистр конфигурации
Wire.write(0xfe);                   // Вход IO7-IO1, выход IO0
Wire.endTransmission();

Затем запишите в регистр выходного порта значения HIGH и LOW.

Wire.beginTransmission(0x20);
Wire.write(0x01);                   // Регистр выходного порта
Wire.write(0x01);                   // IO0 ВЫСОКИЙ
Wire.endTransmission();
delay(500);
Wire.beginTransmission(0x20);
Wire.write(0x01);                   // Регистр выходного порта
Wire.write(0x00);                   // IO0 НИЗКИЙ
Wire.endTransmission();

Но использовать библиотеку гораздо проще. См., например, https://github.com/alotaiba/PCA9534.

,

Большое спасибо за пример! Я видел эту библиотеку, но она не компилируется под Arduino. https://github.com/alotaiba/PCA9534/issues/1, @Delta

Портировать из Particle должно быть очень легко. Пробовали ли вы закомментировать эту строку https://github.com/alotaiba/PCA9534/blob/master/src/PCA9534.h#L14 или просто создать пустой файл с именем «Particle.h»., @Mikael Patel