Czy można użyć tylko kondensatora do zadeklarowania przycisku?


19

Zastanawiam się: dlaczego nie możesz po prostu podłączyć kondensatora do przycisku, aby go ogłosić? Zastanawiam się, jak ograniczyć pracę, którą musi wykonać mój mikroprocesor, ale mam bardzo ograniczoną przestrzeń na projektowanej przeze mnie płytce drukowanej, więc nie chcę tworzyć pełnego obwodu odbijającego, który komplikowałby projekt.


schematyczny

symulacja tego obwodu - Schemat utworzony za pomocą CircuitLab


To przykładowy obwód; przepraszam za jakiekolwiek błędy (nie jestem dobry w projektowaniu obwodów z kondensatorami). Czy to w ogóle zadziała? W przypadku przełącznika tack nie mogłem znaleźć takiego, który pasuje do tego, co jest w prawdziwym życiu, ale działa w tej sytuacji. Przycisk jest taki jak tutaj . D10oznacza Digital Pin 10, ale to nie ma znaczenia; oznacza to tylko wejście Arduino. Nie wiem też, jak duży kondensator byłbym potrzebny, więc jeśli ten obwód działa, jakiego rozmiaru potrzebuję?


Ponownie staram się to uprościć, aby ułatwić kompilację bez konieczności ogłaszania oprogramowania. Patrząc na to, jak działają kondensatory, wydaje się, że to zadziałałoby, ale może również spowodować dłuższe naciśnięcie przycisku / opóźnienie go, jeśli pojemność jest zbyt duża. Są one powszechnie używane do „wygładzania” szumów w zasilaczach, więc czy to nie jest podobne, gdy „wygładza” odbijające się? Docenione zostaną również wszelkie modyfikacje obwodu, aby działało (w razie potrzeby).


1
Oto, o czym już rozmawialiśmy: electronics.stackexchange.com/questions/6884/…
Andy aka

5
Czy zdajesz sobie sprawę, że możesz ogłosić dane wejściowe po prostu odpytając je w odstępie co najmniej 50 ms? Mniej pracy do zrobienia dla Twojego aduino :)
Wouter van Ooijen

1
Zrobiłoby to 50 milisekund - dobra uwaga Mr O
Andy alias

1
Nie, mam na myśli odpytywanie w odstępie co najmniej 50 ms i rób wszystko, co musisz zrobić zgodnie z wykrytym poziomem.
Wouter van Ooijen,

1
@AnnonomusPerson - opóźnienie () w środowisku jednowątkowym oznacza, że ​​nic innego się nie stanie. Chociaż jest to jedna opcja, drugą jest wykonywanie innej użytecznej pracy, aż nadejdzie czas, aby sprawdzić ponownie.
Chris Stratton,

Odpowiedzi:


12

Zależy to od domyślnego stanu przełącznika. Kondensator ładuje się tylko wtedy, gdy poda się dodatnie napięcie. Zwykle w środowisku osadzonym używamy pull-up, aby nadać pinowi domyślny stan wysoki i połączyć przełącznik z masą. Dodanie kondensatora nie pomoże tutaj, ponieważ nie „zapamiętuje” stanu podstawowego.

Możesz jednak użyć rozwijanego menu. Oznaczałoby to, że pin jest domyślnie niski. Podniesienie go przez naciśnięcie przełącznika spowoduje naładowanie kondensatora. Po zwolnieniu kondensator przez pewien czas utrzyma pin wysoko, więc tak, to zadziała. Nie jestem pewien, czy 1uF wystarczy, za mało, czy za dużo, polecam spojrzeć z lunetą i wypróbować ją trochę.


Więc jeśli zmieniłem +i -to by działało?
Anonimowy pingwin

@AnnonomusPerson to zależy. Jaki jest domyślny stan przełącznika?

Masz na myśli, kiedy nie zostanie naciśnięty, czy przewodzi prąd? Jeśli to masz na myśli, mogę to zrobić w obu kierunkach ze względu na charakter przełącznika, którego używam. Patrząc na link w moim pytaniu, gdy nie jest wciśnięty, przycisk przewodzi od top left to the bottom lefti the top right to the bottom right. Po naciśnięciu przewodzi z top left to the bottom righti top right to the bottom left.
Anonimowy pingwin

W porządku. Oznacza to, że domyślnie chcesz, aby pin był niski. Przełącznik powinien nawiązać kontakt z +, aby kondensator został naładowany przed zwolnieniem przycisku.

3
@AnnonomusPerson Nie, przełącznik powinien nawiązać kontakt z +. To rodzaj żargonu, do którego włącza się przełącznik po naciśnięciu . Kondensator znajduje się we właściwym miejscu. Rezystor byłby lepiej podłączony bezpośrednio z ziemi do pinu IO.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.