logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] Jak wysterować zewnętrznym sygnałem dwa wejścia (GPIO23 i GPIO22) w ESP32?

krawietz 29 Cze 2022 08:15 3786 9
  • #1 20080064
    krawietz
    Poziom 16  
    Posty: 273
    Pomógł: 10
    Ocena: 45
    Potrzebuje wysterować zewnętrznym sygnałem dwa wejścia w ESP32 (konkretnie założyłem użycie GPIO23 i GPIO22), a że są to dwa pływaki utopione w zbiornikach z wodą to stwierdziłem, że zastosuję separację galwaniczną przy pomocy modułu dwukanałowego z optoizolatorami PC817. Generalnie na "krótko" niby działa. W celach testowych na wejście modułu optoizolatora podaję napięcie (3,7V) z aku 18650 (docelowo ma być 5V przez te pływaki - działają jak zwora w zależności od położenia) a wyjście podłączone bezpośrednio do GPIO w ESP32 i oczywiście do masy ESP. Generalnie działa.... do czasu aż nie poskładałem tego do kupy na płytce prototypowej, okablowałem, dodałem złącza itp... Wtedy okazało się, że jedno GPIO działa poprawnie (zasilamy transoptor - zmienia się stan) o tyle drugie wyzwala oba... Czyli podanie zasilania na drugi transoptor powoduje że oba GPIO zmieniają stan... To samo dzieje się bez transoptora jeśli zwieram bezpośrednio GPIO do masy (na krótko jeśli zwieramy do masy tylko piny na samym ESP tak się nie dzieje). Dołożyłem rezystory pull-up 10k między GPIO a 3,3V i GPIO zwarte do masy działają poprawnie, zmienia się stan tylko wtedy kiedy dane GPIO zwieramy do masy. Problem w tym, że przestały reagować jeśli podamy sygnał przez transoptor. Podanie zasilania na wejście transoptora zupełnie nic nie zmienia w kwestii stanu wejścia GPIO. Co zrobiłem źle?

    Krawiec
  • Pomocny post
    #2 20080146
    Konto nie istnieje
    Poziom 1  
  • #3 20080235
    mpier
    Poziom 29  
    Posty: 817
    Pomógł: 153
    Ocena: 141
    Witam,
    Jeden problem to brak jakiegokolwiek schematu.
    krawietz napisał:
    To samo dzieje się bez transoptora jeśli zwieram bezpośrednio GPIO do masy (na krótko jeśli zwieramy do masy tylko piny na samym ESP tak się nie dzieje).

    To zdanie to też problem na pierwszy rzut oka.

    Pozdrawiam.
  • #4 20080663
    krawietz
    Poziom 16  
    Posty: 273
    Pomógł: 10
    Ocena: 45
    Schemat docelowy poniżej. Faktycznie sprawdzę zasilanie, bo docelowo ma być 5V.
    Jak wysterować zewnętrznym sygnałem dwa wejścia (GPIO23 i GPIO22) w ESP32?
    Oczywiście żółte zworki zdjęte tak aby masa po stronie wejścia była odseparowana od masy ESP.

    W układzie dostępne mam też 24V AC, niby jakaś tam dokumentacja do modułu mówi, że można na wejście podać 3,3 - 24V - jest tam szeregowo połączony rezystor 3k i LED sygnalizacyjny. Miedzy wyjściami V1 i V2 a kolektorem też jest szeregowo rezystor 3k.
    Inna sprawa, że możliwość zastosowania 24V AC uprościło by cały układ i wyeliminowało dodatkowy zasilacz.

    Krawietz

    Dodano po 10 [minuty]:

    mpier napisał:
    krawietz napisał:
    To samo dzieje się bez transoptora jeśli zwieram bezpośrednio GPIO do masy (na krótko jeśli zwieramy do masy tylko piny na samym ESP tak się nie dzieje).

    To zdanie to też problem na pierwszy rzut oka.


    To mnie niepokoi trochę...
    Całość zmontowałem na płytce prototypowej... o tego typu...
    Jak wysterować zewnętrznym sygnałem dwa wejścia (GPIO23 i GPIO22) w ESP32?
    W płytkę wlutowane gniazda pod goldpin tak aby można było ewentualnie wyjąć ESP...
    Do tego jeszcze złącza do okablowania o tego typu:
    Jak wysterować zewnętrznym sygnałem dwa wejścia (GPIO23 i GPIO22) w ESP32?
    Całość misternie połączona kabelkami jednodrutowymi...

    I tu robi się ciekawie... Omomierz np. na sąsiednich pinach czy to gniazda goldpin czy tych do kabli czasami pokazuje jakąś dziwną rezystancje... kilkanaście kilo ohm... kilkaset... Same pola w płytce stykowej nie pokazują takich cudów... złącza kablowe też nie... A po zlutowaniu jakieś dziwne historie... W sumie nie wiem czy te chińskie płytki nasiąkają resztkami topnika z cyny i robi się rezystor czy mi omomierz wariuje...

    Krawietz
  • #5 20080699
    Konto nie istnieje
    Poziom 1  
  • #6 20081104
    Konto nie istnieje
    Poziom 1  
  • #7 20081122
    Konto nie istnieje
    Poziom 1  
  • #8 20081311
    starob
    Poziom 29  
    Posty: 1088
    Pomógł: 128
    Ocena: 137
    krawietz napisał:
    Miedzy wyjściami V1 i V2 a kolektorem też jest szeregowo rezystor 3k.


    Wylutuj je i piny zewrzyj, psują całą robotę. 10k pullup (+ pullup wewnętrzny procaka?) może powodować, że napięcie na wyjściu może być za wysokie. Mierzyłeś napięcia na GPIO ? - to może być wskazówka.
  • #9 20082012
    krawietz
    Poziom 16  
    Posty: 273
    Pomógł: 10
    Ocena: 45
    starob napisał:
    krawietz napisał:
    Miedzy wyjściami V1 i V2 a kolektorem też jest szeregowo rezystor 3k.


    Wylutuj je i piny zewrzyj, psują całą robotę. 10k pullup (+ pullup wewnętrzny procaka?) może powodować, że napięcie na wyjściu może być za wysokie. Mierzyłeś napięcia na GPIO ? - to może być wskazówka.


    Napięcia ok, 3,1V na GPIO...
    Jednak aku 3,7V to za mało aby optoizolator działał poprawnie w tej konfiguracji.
    Po podaniu 5V wszystko działa poprawnie.

    Krawietz
  • #10 20082017
    krawietz
    Poziom 16  
    Posty: 273
    Pomógł: 10
    Ocena: 45
    starob napisał:
    krawietz napisał:
    Miedzy wyjściami V1 i V2 a kolektorem też jest szeregowo rezystor 3k.


    Wylutuj je i piny zewrzyj, psują całą robotę. 10k pullup (+ pullup wewnętrzny procaka?) może powodować, że napięcie na wyjściu może być za wysokie. Mierzyłeś napięcia na GPIO ? - to może być wskazówka.


    Napięcia ok, 3,1V na GPIO...
    Jednak aku 3,7V to za mało aby optoizolator działał poprawnie w tej konfiguracji.

    Po podaniu 5V na wejście optoizolatora z zasilacza układ działa poprawnie.

    Krawietz

Podsumowanie tematu

✨ Użytkownik poszukuje sposobu na wysterowanie dwóch wejść GPIO (GPIO23 i GPIO22) w ESP32 za pomocą zewnętrznego sygnału, wykorzystując optoizolatory PC817 dla separacji galwanicznej. Po wstępnym testowaniu na prototypowej płytce, zauważył, że jedno GPIO działa poprawnie, podczas gdy drugie wyzwala oba. Użytkownicy sugerują sprawdzenie napięcia na kolektorze fototranzystora oraz rozważenie zastosowania innych transoptorów, takich jak 6N13x, które lepiej nadają się do tego typu aplikacji. Ostatecznie, po podaniu 5V na wejście optoizolatora, układ działa poprawnie, co wskazuje na niewystarczające napięcie z akumulatora 3,7V.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA