Supla::Control::Button(BUTTON_CFG_RELAY_GPIO, true, true);

zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

Jak ktoś będzie czytał kod to będzie wiedział co i jak. W tym przypadku myląca trochę jest podpowiedź w IDE.
.
button.png
Ta kwestia przewijała się na forum ale faktycznie dla kogoś przy pierwszym zetknięciu się z tym może troszkę mylić.
Więc kończąc @SOYER Twoje zapytanie w tej kwestii to warto jasno napisać dla potomnych no i dla Ciebie skoro pytałeś.
drugi parametr ustawiamy true żeby był pullup i wtedy trzeci czyli InvertLogic zawsze true. InvertLogic ustawione true oznacza że robimy wyzwalanie podając "-" na GPIO. Jak ktoś potrzebuje wyzwalać stanem dodatnim, co w większości przypadków występuje np w przypadku przycisków dotykowych (domyślnie po dotknięciu podają stan wysoki) wtedy ustawiamy false, false.
Jeśli kogoś zastanawia po co w takim razie ten pullup skoro przy InvertLogic true i tak zawsze ma być pullup to wyglada to następująco. Nie koniecznie GPIO musi być przyciskiem. I jesśi mamy 100% pewności że podłączony np inny moduł ma już na tym połączeniu włączony pullup albo mamy np. zewnętrzny rezystor podciągający to tego pullupa nie musimy a nawet nie powinniśmy włączać.
You do not have the required permissions to view the files attached to this post.
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Przepraszam, ale nadal nie rozumiem co tu jest nieczytelne i mylące.
Czy możecie napisać co tam widzicie i w jaki sposób to odczytujecie, że wydaje się to nieintuicyjne?

Jak będę widział o co chodzi, to może znajdziemy jakieś lepsze nazwy czy parametry, aby to było czytelniejsze
Najlepsze suple dla Twojego domu :mrgreen:
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

klew wrote: Sun Feb 18, 2024 11:24 am Przepraszam, ale nadal nie rozumiem co tu jest nieczytelne i mylące.
Czy możecie napisać co tam widzicie i w jaki sposób to odczytujecie, że wydaje się to nieintuicyjne?

Jak będę widział o co chodzi, to może znajdziemy jakieś lepsze nazwy czy parametry, aby to było czytelniejsze
Nic się nie dzieje... Wypłynęła wątpliwość i chyba zostało wyjaśnione. Ale jeśli inni by chcieli coś zmieniać niech się wypowiedzą.
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

Nie bardzo zgodzę się, niech mnie ktoś poprawi z kolegą zzrr, w sprawie invertlogic.
Generalnie moje pytanie wzięło się stąd, że mam do pinu buttonConfig podpiętą krańcówkę z drugiej strony podpiętą do "-". W inicjalizacji miałem true, true. Bez przyłożenia magnesu moduł ciągle siedział w config, a po zwarciu krańcówki działało ok. Doszedłem do tego, że to któryś z argumentów trzeba zmienić na false. Zmieniłem trzeci argument na false i teraz działa dobrze.
Ja to rozumiem tak, że jeśli drugim argumentem ustawiamy true i robimy pullup, to trzeci invert musi być false, wtedy nie ma odwróconej logiki i stan zmieniamy "-" bo mamy pullupa. Jeśli pullup mamy true, a invert też true, to stan buttona zmieniamy "+".
TAK?
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

SOYER wrote: Sun Feb 18, 2024 1:02 pm Nie bardzo zgodzę się, niech mnie ktoś poprawi z kolegą zzrr, w sprawie invertlogic.
Generalnie moje pytanie wzięło się stąd, że mam do pinu buttonConfig podpiętą krańcówkę z drugiej strony podpiętą do "-". W inicjalizacji miałem true, true. Bez przyłożenia magnesu moduł ciągle siedział w config, a po zwarciu krańcówki działało ok. Doszedłem do tego, że to któryś z argumentów trzeba zmienić na false. Zmieniłem trzeci argument na false i teraz działa dobrze.
Ja to rozumiem tak, że jeśli drugim argumentem ustawiamy true i robimy pullup, to trzeci invert musi być false, wtedy nie ma odwróconej logiki i stan zmieniamy "-" bo mamy pullupa. Jeśli pullup mamy true, a invert też true, to stan buttona zmieniamy "+".
TAK?
Nie... jak mamy true, true to stan zmieniamy minusem. Twój moduł ciągle siedział w configu bo już na starcie dawałeś mu wyzwalanie minusem z krańcówki. Jak drugi dasz true to trzeciego nie możesz dawać false. Bo to tak jak byś nakazał... zrób pullup czyli 3.3V i wyzwalaj też 3.3V. jak ustawiłeś true, false to minus z Twojej krańcówki zwierał cały czas podniesiony pullup do masy co jest nie właściwe a faktycznie ustawiony trzeci parametr na false powodował że zadziałało wyzwolenie jak się pokazał plus.
Jak masz minus na krańcówce a wyzwalasz plusem to powinieneś mieć ustawione false, false
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

Tylko, że jak miałem true, true, to siedział w configu bez zwartej krańcówki, jak zwarłem to wychodził z configa, jak rozwarłem to znów wchodził. Dlatego było mi dziwne, to zachowanie i zadałem pytanie.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

@klew po co jest ten invertLogic?
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

SOYER wrote: Sun Feb 18, 2024 1:35 pm @klew po co jest ten invertLogic?
No było przecież... InvertLogic true znaczy że odwrócona logika włączona czyli wyzwalanie minusem. W configu mógł siedzieć również z innych powodów ale to nie koniecznie musiało być związane z tymi ustawieniami
Last edited by zzrr on Sun Feb 18, 2024 1:46 pm, edited 1 time in total.
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

SOYER wrote: Sun Feb 18, 2024 1:35 pm @klew po co jest ten invertLogic?
Domyślną "logika" jest taka, że stan niski na GPIO to false, 0.
Stan wysoki to true, 1.

Jeśli mówimy o przycisku, to stan false, niski, 0 odpowiada zwolnionemu przyciskowi.
Stan wysoki, true, 1, to wciśnięcie przycisku.

Invert logic odwraca ta logikę.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

OK,
czyli żeby zrobić wyzwalać niskim to musi być true, true.
Mój problem się chyba wział z tego, że użyłem pinu 35, a ten nie ma możliwości włączenia wew. pullupa. Ot i zonk :D
Ktoś wie czy pomoże na tym pinie zewnętrzy rezystor pullup?
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79

Return to “Pomoc”