Elektroda.pl
Elektroda.pl
X

Search our partners

Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Solved] Przesłuchy na pinach wejściowych ESP32. Jak zapobiegać?

Askabius 15 Mar 2020 20:48 354 8
  • #1
    Askabius
    Level 4  
    Dzień dobry,

    Używam płytki ESP32 DevKit V1, podczas odczytywania napięcia wejściowego z pinów analogowych (GPI: 34,35,36,39), występują jakieś przesłuchy i mimo iż przewód "wisi w powietrzu" albo jest wpięty w płytkę prototypową to ni stąd ni z owąd pojawia się napięcie na tyle długie, że 'digitalRead()' odbiera je jako wysokie, oraz utrzymuje powyżej 100ms, wiem to, ponieważ dodałem dodatkową instrukcję sprawdzającą stan po upływie 100ms. Problem pojawia się mimo wlutowania rezystora 1 kOhm. Nie wiem jak to rozwiązać. Ktoś wie może jak to naprawić?



    Dodam jeszcze, że pinMode ustawiony na INPUT, ponieważ INPUT_PULLUP dawał jeszcze gorsze rezultaty i napięcie pojawiało się częściej. Wcześniej (bez rezystora) wystarczyło, że trzymałem w jednej ręce przewód podłączony do wejścia, a w drugiej ręce przewód 3.3V, a napięcie już było na tyle duże. żeby program odczytał je jako stan wysoki.

    Byłbym zapomniał... z moich obserwacji wynikało, że gdy np. przez 5 min mam w obwód wpięty miernik ( minus miernika do jakiegokolwiek GND, a plus w dowolnym miejscu układu - np. przy nóżce rezystora) to przesłuchy w ogóle się nie pojawiają. Natomiast wystarczy, że na chwilę odepnę miernik, już występują. Czy to może sugerować, że opór miernika "zabija" te przesłuchy i wystarczy wpiąć większy rezystor?


    Bardzo dziękują za czas poświęcony na przeczytanie i mam nadzieję, na szybką odpowiedź :)
  • #2
    TvWidget
    Level 36  
    Askabius wrote:
    Problem pojawia się mimo wlutowania rezystora 1 kOhm.

    Gdzie podłączyłeś ten rezystor ?
  • #3
    Askabius
    Level 4  
    Przesłuchy na pinach wejściowych ESP32. Jak zapobiegać?
    TvWidget wrote:
    Askabius wrote:
    Problem pojawia się mimo wlutowania rezystora 1 kOhm.

    Gdzie podłączyłeś ten rezystor ?


    Dodano po 3 [minuty]:

    Trafiłem też na informację, że powinno być coś takiego:
    Przesłuchy na pinach wejściowych ESP32. Jak zapobiegać?

    Jednak nie jestem pewien czy dobrze to zrozumiałem :/
  • Helpful post
    #4
    TvWidget
    Level 36  
    Ten drugi sposób jest prawidłowy.
    Jeśli przewody nie są bardzo długie to możesz zrezygnować z rezystora. W takim przypadku wejście powinieneś skonfigurować jako PULL_DOWN.
  • Helpful post
    #5
    khoam
    Level 41  
    Askabius wrote:
    podczas odczytywania napięcia wejściowego z pinów analogowych (GPI: 34,35,36,39)

    Te GPIO nie mają wbudowanych wewnętrznych rezystorów pull-up czy pull-down, więc mogą pracować tylko w trybie INPUT. Jeżeli chcesz podłączać do tych wejść przyciski, to muszą być one wstępnie spolaryzowane przez użycie zewnętrznych rezystorów pull-up do 3V3 lub pull-down do masy.
    https://randomnerdtutorials.com/esp32-pinout-reference-gpios/

    Askabius wrote:
    Ktoś wie może jak to naprawić?

    Zastosować jeden z układów poniżej (R = 10k)

    Przesłuchy na pinach wejściowych ESP32. Jak zapobiegać?

    Otwartą kwestią pozostaje eliminacja drgań styków przełącznika:
    http://mikrokontrolery.blogspot.com/2011/04/przycisk-drgania-stykow-debouncing.html
  • #6
    Askabius
    Level 4  
    Dziękuję bardzo za pomoc, zrobię wszystko według schematu. Rozumiem, że MCU oznacza masę, tak?

    EDIT: Sprawdziłem, że MCU oznacza mikrokontroler. W takim razie masa jest "na dole schematu", w sensie w tym przypadku, gdy VCC jest na górze schematu?
  • Helpful post
    #7
    khoam
    Level 41  
    Askabius wrote:
    Rozumiem, że MCU oznacza masę, tak?

    MCU oznacza wejście do procesora. Masa oznaczona jest jako odwrócony trójkąt.
  • #8
    Askabius
    Level 4  
    khoam wrote:
    Askabius wrote:
    Rozumiem, że MCU oznacza masę, tak?

    MCU oznacza wejście do procesora. Masa oznaczona jest jako odwrócony trójkąt.


    Okej, dziękuję. Temat uważam, za zamknięty
  • #9
    Askabius
    Level 4  
    khoam wrote:
    Askabius wrote:
    Rozumiem, że MCU oznacza masę, tak?

    MCU oznacza wejście do procesora. Masa oznaczona jest jako odwrócony trójkąt.


    Okej, dziękuję. Temat uważam, za zamknięty

    Dodano po 1 [minuty]:

    Odpowiedzią jest schemat wysłany przez użytkownika.