Skocz do zawartości

Przyciski same się wciskają


Pomocna odpowiedź

Napisano

Mam wielki problem..

Napisałem program w BASCOMie który po naciśnięciu guzika ma zmienić stan diod, wszystko niby jest OK oprócz tego że wystarczy że zbliżę palec do guziki a wszystko zaczyna już reagować jak bym nacisną. Nie mam pojęcia co jest nie tak.. i odtego mrygają jak bym kilkanaście razy je nacisną

Jak guziki podłączę bezpośrednio z diodami pomijając µC (ATtiny 2313) to wszystko działa

Nie wiem, może robię jakiś prosty błąd....

Jest to obrazek poglądowy - przyciski są podłączone do innych wejść

Oporniki na obrazku to 2*48Ω czyli 96Ω

Jeszcze namalowałem tylko 4 diody a tak naprawdę jest ich 8


   $regfile = "attiny2313.dat"                             'najpierw określamy typ proca
   $crystal = 1000000                                      'definiujemy z jakim taktowaniem będzie pracował


   Config Portd = Input                                    'port d  jako wejścia
          Portd = &B0000000                                'wszędzie stan spoczynkowy-0
   Config Portb = Output                                   'pprt b jako wyjścia
          Portb = &B1011010


    Do                                                     'pętla nieskończona

      If Pind.1 = 1 Then                                   'przyciski 1 wciśnięty
      Waitms 50
      Toggle Portb.3
      Toggle Portb.6
      Toggle Portb.2
      Toggle Portb.7
      End If

      If Pind.2 = 1 Then                                   'przyciski 2 wciśnięty
      Waitms 50
      Toggle Portb.1
      Toggle Portb.3
      Toggle Portb.7
      Toggle Portb.6
      End If

      If Pind.5 = 1 Then                                   'przyciski 3 wciśnięty
      Waitms 50
      Toggle Portb.1
      Toggle Portb.4
      Toggle Portb.2
      Toggle Portb.7
      End If



    Loop                                                   'koniec pętli

   End                                                     'koniec programu

Według tego co narysowałeś, to w programie masz ZU-PEŁ-NIE pomieszane piny, do których masz podpięte przycciski 🙂 Wg schematu masz podpięte do PD0, PA0, PD4, a wg kodu masz do PD1, PD2, PD5. Ponadto, sugerowałbym podpięcie przycisków do masy, nie do vcc, a do gnd i włączyć wewnętrzne rezystory podciągające (po ustawieniu portu jako wejście, ustawiasz piny, gdzie masz przyciski, tak jak bys miał dać na nie vcc (config blabla = input |następna linijka| blabla = 1)). Aha, nie podoba mi sie do końca też zasilanie - 3,66V. Powinno niby działac, ale dobre nawyki zawsze sie przydają. No i kondensator 100nF do nóżek scalak również powinien być.

  • Pomogłeś! 1

Znaczy jaka jest różnica czy podpina guziki do VCC czy do GND

odruchowo podłączyłem do + możliwe że to przez to?

To prawda, że najlepiej podłączyć przyciski do gnd. Jednak ten układ też jest do uratowania.

Wystarczy dodać rezystory między gnd a wejścia procesora.

Jeśli podłączysz przyciski do gnd, rezystory nie będą konieczne. W procesorze można włączyć pullup-y, czyli wbudowane rezystory podłączone między vcc, a wejścia.

  • Lubię! 1

Już wszystko działa wystarczyło zmienić jak pisaliście z vcc na gnd

wielkie dzięki 😅

Mi wydawało się oczywiste że guziki blokują napięcie przed procesorem tam samo jak przełączniki prąd od światła (230V)..

czyli podsumowując wszystko (silniki, czujniki etc) co podłączam pod µC ma być do gnd a prąd ma iść z procesora?

Nie do końca. Przyciski podłącza się zwykle do gnd, aby wykorzystać wewnętrzne pull-upy. Wygodne to jest też przy czujnikach typu sharp 340k, tsop, które po wykryciu wiązki dają gnd na wyjście. Aby ustabilizować pomiar w stanie niewykrywania również podłącza się tego pull-upa. A, no i swoją drogą, lepiej jest gdy prąd wpływa do uC, niż miałby z niego wypływać (ograniczona wydajność prądowa wyjść). Dlatego jeśli diod jest więcej niż kilka, dobrze jest podpiąć je odwrotnie, tzn vcc - dioda + opornik - gpio.

  • Pomogłeś! 1

A to mam jeszcze jedno pytanie

Mam silnik i żeby go podłączyć do procesora to muszę użyć jakiegoś tranzystora czy mogę podpiąć od razu do procesora? Jak zmierzyłem amperomierzem to natężenie dla silnika wynosiło 0,2A, przy obciążeniu nawet 1A

Ile amper możne max płynąć przez 1 pin w attiny2313

znalazłem jakiś tranzystor jest na nim napisane WHE D 8050S

Jakiś PDF coś takiego znalazłem wygląda tak samo możecie mi powiedzieć czy on jest dobry.. znaczy silnik pobiera około 0,3A a natężenie prądu wynosi 3,66V

natężenie prądu wynosi 3,66V

Napięcie. Jest to całkowita różnica, poczytaj o tym 🙂 No i ten tranzystor się nada tylko, jeżeli silnik będzie pobierał max 700mA, a twój pobiera ponad 1A przy obciążeniu :]. Aha, i pamiętaj, że mając tylko klucz tranzystorowy będziesz w stanie regulować tylko czy silnik ma pracować czy nie, ewentualnie prędkość (PWM).

  • Pomogłeś! 1

Nie chcę uszkodzić µC więc wolę sie upewnić

coś takiego będzie działać? i czy dobrze oznaczyłem nóżki tranzystora (literki)

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...