Strona 1 z 2
Wirtualne GPIO
: śr lip 25, 2018 7:39 pm
autor: Duch__
Witam.
Czy istnieje możliwość stworzenia wersji softwaru pod Arduino która obsługiwała by wirtualne wyjścia / wejścia, reprezenowane tylko w formie stanów 0 i 1, mogą to być w formie bitów, bajtów etc. Myślę o urządzeniu wielowyjściowym / wielowejściowym gdzie rzeczywiste przekaźniki i stan wejść sterowane by były przez magistralę RS485 / I2C. Coś w stylu jeden ESP8266 i zestaw np. modułów opartych na PCF8574
https://pl.aliexpress.com/item/PCF8574- ... 04744.html
Re: Wirtualne GPIO
: czw lip 26, 2018 7:19 am
autor: pzygmunt
Kod: Zaznacz cały
int supla_DigitalRead(int channelNumber, uint8_t pin) {
if (pin > 100) {
// I2C
return 0;
}
return digitalRead(pin);
}
void supla_DigitalWrite(int channelNumber, uint8_t pin, uint8_t val) {
if (pin > 100) {
// I2C
return;
}
digitalWrite(pin, val);
}
void setup() {
SuplaDevice.setDigitalReadFuncImpl(&supla_DigitalRead);
SuplaDevice.setDigitalWriteFuncImpl(&supla_DigitalWrite);
}
Re: Wirtualne GPIO
: czw lip 26, 2018 5:08 pm
autor: Duch__
Nie za bardzo rozumiem jak tego użyć w ESP.
Re: Wirtualne GPIO
: czw wrz 20, 2018 10:28 pm
autor: shimano73
Udało mi się rozszerzyć ilość gpio w esp12 nawet do 32 przy pomocy pcf8574 i gdy ustawie je jako przekaźniki czy sterowanie roletami to działa super. Problem mam z przyciskami lokalnym bo nie mam pojęcia jak „przerobić” funkcje natywna aby sterować lokalnie roletami
Re: Wirtualne GPIO
: pt wrz 21, 2018 6:01 am
autor: Espablo
Nie wiem jak jest w arduino ale w supla esspressif przyciski lokalne działają na przerwaniach. Miałem podobny problem z GPIO16 w moim inCan bo ten pin jako jedyny nie obsługuje przerwań. @pzygmunt doradził mi, żeby zrobić odczyt na timerach i tak też zrobiłem. Sprawdzam sobie ten pin co jakiś czas. Może tutaj też tak powinieneś
Re: Wirtualne GPIO
: pt wrz 21, 2018 7:06 am
autor: pzygmunt
shimano73 pisze: ↑czw wrz 20, 2018 10:28 pm
Udało mi się rozszerzyć ilość gpio w esp12 nawet do 32 przy pomocy pcf8574 i gdy ustawie je jako przekaźniki czy sterowanie roletami to działa super. Problem mam z przyciskami lokalnym bo nie mam pojęcia jak „przerobić” funkcje natywna aby sterować lokalnie roletami
Albo sprawdzasz co jakiś czas, albo musisz włączyć obsługę przerwań.
Re: Wirtualne GPIO
: pt wrz 21, 2018 8:49 pm
autor: Duch__
shimano73 pisze: ↑czw wrz 20, 2018 10:28 pm
Udało mi się rozszerzyć ilość gpio w esp12 nawet do 32 przy pomocy pcf8574 i gdy ustawie je jako przekaźniki czy sterowanie roletami to działa super. Problem mam z przyciskami lokalnym bo nie mam pojęcia jak „przerobić” funkcje natywna aby sterować lokalnie roletami
Może kolega podzielić się kodem?
Re: Wirtualne GPIO
: sob wrz 22, 2018 6:21 am
autor: shimano73
Jak tylko dokonam przelewu schematu z komórek mózgowych do bitowych pochwale się w osobnym wątku moim projektem
Re: Wirtualne GPIO
: pt lip 26, 2019 8:38 am
autor: MMarcin
Mam taki problem.
Program pisany w arduino.
Dodałem sobie sensor NO na pinie 4 w wemos D1 mini.
Wszystko działa prawidłowo.
Ale chciałbym aby ten czujnik był na pinie wirtualnym np. 20 i zmieniać jego stan programowo.
Zmieniłem więc pin 4 na 20:
SuplaDevice.addSensorNO(20);
digitalWrite(20, LOW); nie działa.
Jakim poleceniem zmieniać ten pin wirtualny?
Re: Wirtualne GPIO
: pt lip 26, 2019 11:58 am
autor: vajera
DigitalWrite nie zadziała z nieistniejącym pinem.
Musisz wykorzystać funkcje setDigitalWriteFuncImpl/setDigitalReadFuncImpl do zapisu/odczytu stanu wirtualnego przekaźnika i sterowania przy jego pomocy fizycznym pinem.