Расширитель портов pcf8574 и датчик расхода воды YF-S201

Здравствуйте
Существует ли возможность подключить датчик расхода воды YF-S201 через расширитель портов pcf8574?
как в функции

pcf8574.pinMode(P0, INPUT); // ЖелтыйПроводСенсора первого YF-S201
pcf8574.pinMode(P1, INPUT); // ЖелтыйПроводСенсора вторго YF-S201

attachInterrupt(digitalPinToInterrupt(ЖелтыйПроводСенсора1), flow1, RISING);
attachInterrupt(digitalPinToInterrupt(ЖелтыйПроводСенсора2), flow2, RISING);

void flow1(){ прерывания_датчика1++}
void flow2(){ прерывания_датчика2++}

ЖелтыйПроводСенсора 1 и ЖелтыйПроводСенсора 2 указать если они подключены к pcf8574?

У неё только один пин (INT) можно использовать для прерывания, на сколько я знаю.

а тебе сколько надо? там жеж по I2C состояние портов обрабатывается

Мне? Нисколько )))
Я так понял ТС нужно ДВА…

В принципе меня это устроит т.к. у меня 2 pcf8574
Как раз хватит на два датчика
В файле PCF8574.h есть конструктор типа:
PCF8574(0x20, uint8_t interruptPin, void (*interruptFunction)() );
PCF8574(0x21, uint8_t interruptPin, void (*interruptFunction)() );
И есть функция void attachInterrupt();
В конструкторе испотзуется uint8_t interruptPin
Если на контроллере только один такой пин то зачем и главное как его указать при создании объекта.
flowsensor =interruptPin;
//Как в настройках пина указать сам пин INT?
//P0-P7 я так и указывал например PCF_20.pinMode(P0, INPUT);
//Чему равно flowsensor lля INT?
PCF_20.pinMode(flowsensor, INPUT);
PCF_20.digitalWrite(flowsensor, HIGH);
PCF_21.pinMode(flowsensor, INPUT);
PCF_21.digitalWrite(flowsensor, HIGH);

Это ВЫХОДНОЙ пин прерывания для контроллера, а не для датчиков. Он действует на все входы.

Надо два датчика YF-S201 зацепить через расширитель портов pcf8574 ну или через два расширителя
Собственно надо два датчика подключить к Wemos D1R1 но из свободных пинов остались только аналоговые и D0 (он же Rx он же GPIO3) еще есть 2шт pcf8574
на одном pcf8574 висит клавиатура 4*4 какраз INT не занят на втором pcf8574 висит два реле. Пины Wemos D1R1 заняты под экран ST7735 CD карту и pcf8574
Очень не хочется менять Wemos D1R1, потому что я под него уже сделал распаечную плату.

Так получается что датчики потока типа YF-S201 через pcf8574 никак не получится подключить?

До 200х импульсов в секунду, с учетом того, что rtos работает на частоте 100 тиков, плюс софтварный i2c на 8266. Такой себе фарш получится.
Как всегда, мода экономить 50 рублей на железе выливается в 50 часов геморроя.

1 лайк

получится

В общем придется мне под другой контроллер распаечную платку запилить.
Но так для справки если все же кто-то захочет вдруг
как код в кучу собрать
PCF8574(0x20, uint8_t interruptPin, void (*interruptFunction)() );
что указывать в параметре interruptPin
PCF_20.pinMode(flowsensor, INPUT);
PCF_20.digitalWrite(flowsensor, HIGH);
что указывать в параметре flowsensor
и если

Это ВЫХОДНОЙ пин прерывания для контроллера, а не для датчиков. Он действует на все входы.

то получается что одновременно будут либо YF-S201 либо например клавиатура
interruptFunction будет вызываться всякий раз когда клавиша нажимается и отпускается и чтоб как-то более мнение работало придется под YF-S201 всю плату отдать? и желтый провод датчика без разницы к какому P0-P7 подключать, а
PCF_20.pinMode(flowsensor, INPUT);
PCF_20.digitalWrite(flowsensor, HIGH);
для всех P0-P7?

Прерывание будет срабатывать от любого входа, а дальше уже вам нужно будет смотреть, какой вход его вызвал. В принципе все так же как pcint на контроллере.
Подробнее не могу, я в дороге.