krycha88 pisze: ↑czw wrz 17, 2020 10:07 amRozwiązanie @elmaya jest oparte na nowej bibliotece a ten projekt Primary_GUI jest oparty na starej bibliotece SuplaDevice.kosa24 pisze: ↑czw wrz 17, 2020 9:37 am Witam. Mam pytanie, czy byłby duży kłopot z dołożeniem możliwości obsługi expandera mcp23017? Próbowałem samemu, dołączyłem bibioteki:Później wg rozwiązania @elmaya, poza setup:Kod: Zaznacz cały
#include <io.h> #include <Adafruit_MCP23017.h> #include <SPI.h> #include <FS.h>
i w setup():Kod: Zaznacz cały
Adafruit_MCP23017 mcp; class MyMcp23017 : public Supla::Io { public: void customDigitalWrite(int channelNumber, uint8_t pin, uint8_t val) { if ((pin >= 100)&& (pin <= 115)){ mcp.digitalWrite(pin - 100, val); return; } if (pin <= 99) { return ::digitalWrite(pin,val); } } int customDigitalRead(int channelNumber, uint8_t pin) { if ((pin >= 100)&& (pin <= 115)){ return mcp.digitalRead(pin - 100); } if (pin <= 99){ return ::digitalRead(pin); } } }MyMcp23017;
I w sumie expander działa, np:Kod: Zaznacz cały
mcp.begin(); mcp.pinMode(0, OUTPUT); mcp.pinMode(1, OUTPUT); mcp.pinMode(2, OUTPUT); mcp.pinMode(3, OUTPUT); mcp.pinMode(4, OUTPUT); mcp.pinMode(5, OUTPUT); mcp.pinMode(6, OUTPUT); mcp.pinMode(7, OUTPUT); mcp.pinMode(8, OUTPUT); mcp.pinMode(9, OUTPUT); mcp.pinMode(10, OUTPUT); mcp.pinMode(11, OUTPUT); mcp.pinMode(12, OUTPUT); mcp.pinMode(13, OUTPUT); mcp.pinMode(14, OUTPUT); mcp.pinMode(15, OUTPUT);
załącza przekaźnik na starcie, ale nie wiem dlaczego nie działa przypisanie pinów 100-115 do pinów mcp. Nie mogę np dodać:Kod: Zaznacz cały
mcp.digitalWrite(1, HIGH);
Kompiluje się, ale brak reakcji na zmianę stanu, w logu też. Co robię nie tak? Może jest jakiś inny sposób przypisania tych pinów?Kod: Zaznacz cały
add_Relay_Invert(101);
Musisz zbudować projekt na nowej wersji:
https://github.com/krycha88/Primary_GUI_nexo
Na nexo tym sposobem działa, ale tylko OUTPUT, relay działa na każdym pinie, coś nie mogę uruchomić INPUT, próbuję różnymi sposobami, ale mi nie działa. Szkoda. Nexo i nowe biblioteki działają super. Dla tych co chcą się przesiąść z Primary GUI v2- na wemosie mini- trzeba kompilować na nowej wersji płytki ESP8266 i na Generic ESP8266 Module, na LELIN(WEMOS) D1 nie działa zapis ustawień, może to komuś oszczędzić sporo czasu