Skocz do zawartości

Przerwania, a ponowne sprawdzenie stanu przycisku.


Pomocna odpowiedź

Tyle, że program chyba stoi i na nic nie reaguje. Nie chce mi się w niedzielę wędrować z kompem do bramy i lustrowac Seriala.

To co zmieniłem pokazałem wcześniej.

Wywaliłem tego timera, dałem przerwanie od przycisku jak było plus dodatkowe sprawdzanie digitalRead po 100ms, widać poprawę, ale nadal mam czasem fałszywe wywołania, choć rzadziej.

Fałszywe wywołania zdają się pochodzić od wewnętrznego RFID, bo są tylko po jego odczycie. Więc to raczej nie od głośnika.

Udało mi się odrobinę odsunąć przewody tego czytnika od sygnałowych przewodów dotykowych. Jest poprawa. Potestujemy furtkę przez kilka dni i zobaczymy.

 

3 minuty temu, SOYER napisał:

ale nadal mam czasem fałszywe wywołania, choć rzadziej.

Jeśli używasz dotykowych pinów z ESP to jak zapewne wiesz zwracana jest jakaś liczba po naciśnięciu, może tutaj pokombinuj z wartosciami..a co do timera to ja bym Ci proponował odpuszczenie sobie libsa skoro już na początku jest problem, a użycie go z poziomu funkcji dostarczonych przez IDE...bardzo prosta obsługa (nie czytałem całego wątku, więc może się z czymś zakręciłem)

(edytowany)
11 minut temu, ethanak napisał:

Z ciekawości: pokie go ch... jeszcze jakiś odczyt? Rozumiem że nie ufasz moim kodom, ale chcesz je poprawiać? 

Jeśli to do mnie to zawsze ufałem twoim kodom i nigdy ich nie poprawiałem, bo to by tylko wyszło na gorsze 😉 chodzi mi o odczyt z touch'a który jest zakresem jakiejś liczby (wciśnięty/puszczony) i może tu węsząc dało by się wyeliminować te samoistne wciśnięcia 

Ps...z tego co widzę to tu czytany jest stan a mi chodzi o coś w stylu...

 int wcisniety = 20; 
 
value = touchRead(pin); 

if (value < wcisniety) { 
   //wykonaj cos tam
}

Może te fałszywe odczyty nie przesuwają się od skrajnych pozycji i można je "skalibrować"

Edytowano przez farmaceuta
31 minut temu, farmaceuta napisał:

Jeśli używasz dotykowych pinów z ESP to jak zapewne wiesz zwracana jest jakaś liczba po naciśnięciu, może tutaj pokombinuj z wartosciami..a co do timera to ja bym Ci proponował odpuszczenie sobie libsa skoro już na początku jest problem, a użycie go z poziomu funkcji dostarczonych przez IDE...bardzo prosta obsługa (nie czytałem całego wątku, więc może się z czymś zakręciłem

aż sprawdziłem z ciekawości...

używam pinów 32, 33, 4

faktycznie to piny "dotykowe"

czyli można je inaczej czytać niż digitalRead?

(edytowany)
2 minuty temu, ethanak napisał:

@farmaceuta drobiazg: kolega używa zewnętrznych czujników z wyjścirm cyfrowym  - ale taki mało ważny drobiazg mógł ujść Twej uwadze...

Dokładnie tych

https://allegro.pl/oferta/pojemnosciowy-czujnik-sensor-dotyku-switch-ttp223-11997844103?utm_feed=aa34192d-eee2-4419-9a9a-de66b9dfae24&utm_term=test&utm_source=google&utm_medium=cpc&utm_campaign=_elktrk_rtvagd_pla_pmax&ev_campaign_id=17966335829&gclid=CjwKCAjwo7iiBhAEEiwAsIxQETutx9W7nY0ojlOfdyNR2I702rOp9m4rhuIZ4_kVPV7_hGX4HbUuwBoCLRIQAvD_BwE

Choć nie od tego sprzedawcy...

Edytowano przez SOYER
(edytowany)

Teraz mam przerwanie od RAISING przycisku, potem czekam 100ms i sprawdzam digitalRead-em ten sam przycisk.

Edytowano przez SOYER
(edytowany)
6 minut temu, SOYER napisał:

aż sprawdziłem z ciekawości...

używam pinów 32, 33, 4

faktycznie to piny "dotykowe"

czyli można je inaczej czytać niż digitalRead?

Tak...czytasz wartości liczbowe, coś jak analogRead...dokładnie tak jak powyżej wkleiłem kod..najpierw musisz sobie sprawdzić jakie wartości Ci wychodzą,a później ustawić min. Wartość dla piny wciśniętego.. 

Tu do poczytania... https://randomnerdtutorials.com/esp32-touch-pins-arduino-ide/ 

Aha...ale musisz z nich bezpośrednio korzystać jak z dotykowych...a nie że podepniesz zewnętrzny touch cyfrowy, bo wtedy to działa jak zwykły guzik 

Edytowano przez farmaceuta
9 minut temu, ethanak napisał:

@farmaceuta drobiazg: kolega używa zewnętrznych czujników z wyjścirm cyfrowym  - ale taki mało ważny drobiazg mógł ujść Twej uwadze...

I uszedł bo przysiągł bym że gdzieś przewinęło się o pinach dotykowych z ESP😜 no ale już się wyjaśniło, przepraszam za zamęt 🙂

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...