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
Krawiec