• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Przesłuchy na pinach wejściowych mimo braku takiej możliwości
#1
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ź Smile
 
Odpowiedź
#2
Robisz podstawowy błąd, jeżeli czytasz stan wysoki to rezystor 10kOhm pin-GND podciągnij go do masy.... Jeżeli czytasz stan niski to podciągnij wewnętrznym " INPUT_PULLUP" choć z tego co kojarzę esp32 nie ma wewnętrznych...

Pin wolny będzie bzdury czytał zakłócenia....
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#3
(15-03-2020, 21:48)Jarewa0606 napisał(a): Robisz podstawowy błąd,  jeżeli czytasz stan wysoki to rezystor 10kOhm pin-GND podciągnij go do masy.... Jeżeli czytasz stan niski to podciągnij wewnętrznym  " INPUT_PULLUP" choć z tego co kojarzę esp32 nie ma wewnętrznych...

Pin wolny będzie bzdury czytał zakłócenia....

Mogłby Pan dokładniej wytłumaczyć o co chodzi  z podpięciem rezystora pin-GND? Gdyż niestety nie bardzo rozumiem, a nie chciałbym eksperymentować, żeby niczego nie spalić. Mogę na szybko narysować schemat mojego aktualnego połączenia.
 
Odpowiedź
#4
Narysowałem proste schematy. Jeden przedstawia to co mam aktualnie, a drugi to co wywnioskowałem z Pana odpowiedzi. Czy tak powinno być, czy coś źle zrozumiałem?

       

Druga sprawa jest taka, że mam 4 takie obwody. Każdy z nich podłączyć do tego samego GND? (Głupie pytanie bo GND jest tylko jedno) Ale czy nie będą się zakłócały i czy prąd nie będzie między nimi przechodził?
 
Odpowiedź
#5
tak drugi rysunek, i tak kazdy osobno czyli każdy przycisk swój rezystor i może byś wspólna masa "gnd"
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#6
(15-03-2020, 22:34)Jarewa0606 napisał(a): tak drugi rysunek, i tak kazdy osobno czyli każdy swój rezystor i może byś wspólna masa "gnd"

Dziękuję bardzo za poświęcony czas. Od jutra się za to zabieram! No najpierw będę musiał wygrzebać jakieś rezystory 10kOhm Big Grin
 
Odpowiedź
#7
10kOhm to taki standardowy się daje wcale nie musi być taki Wink do testów może być z przedziału 5-10 bo to tylko 3v3 napiecia.... I chodzi o natężenie jaki musi przyjąć włącznik jako "zwarcie"

Co innego gdybyś miał "wyjscie" to wtedy wskazany 10kOhm by jak najmniej obciążyć mikro kontroler..


No i o ile drugi rysunek zgodny bo 3v3 to gdybyś czasem podłączał do 5V przełączniki to musisz użyć dzielnika napięć..
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości