Skocz do zawartości

Klawiatura QWERTY do Arduino wykorzystująca jeden pin


rafioza12

Pomocna odpowiedź

Witam wszystkich, ostatnio po przerobieniu pewnej części kursu Arduino zacząłem się zastanawiać czy jest możliwość zbudowania z wykorzystaniem Arduino UNO, układu klawiatury QWERTY i wyświetlacza, z pewnym utrudnieniem tj. wykorzystując tylko jeden pin dla klawiatury. Rozwiązanie jakie przyszło mi na myśl to wykonanie płytki z 29-oma przyciskami(QWERTY...+spacja, enter i backspace) gdzie każdy przycisk dołączony jest do innej rezystancji(29 rezystorów 102ohm połączonych szeregowo i każdy z przycisków dołączony za kolejnym rezystorem). Oczywiście wykorzystywany jest tu pin analogowy. Po wciśnięciu któregoś z przycisku układ mierzy wartość napięcia i wyświetla przypisana do tej wartości literę. Sporym problemem okazał się fakt, że niepodłączone wejście analogowe(brak wciśniętego przycisku)  mierzy dziwne szumy od 0.5V do 2,2V, udało mi się jakoś rozwiązać ten problem ale powiedzmy, że jest to taka prowizorka i musiałem użyc dodatkowego pinu cyfrowego ;/ Ogólnie układ działa całkiem ok jednak jestem bardzo ciekawy czy jest jakiś inny być może lepszy sposób na zbudowanie takiego układu?

Fajnie jakby ktoś zainteresował się tematem 😉

Ps. krótki film jak to działa 🙂

 

  • Lubię! 1
Link do komentarza
Share on other sites

(edytowany)

@Sabre Dziękuje za odpowiedz, rozważając nad tym problemem również postanowiłem dać kondensator tyle, że nie wiedziałem jaki, dałem aż 10uF i pomiędzy masą a wejściem A5. Szumy zostały w zadowalającym stopniu odfiltrowane ale pojawiły się dwa nowe problemy:

-kondensator lądował się powoli( szumami? Około 0.02V na sekundę) 

-po naciśnieniu przycisku klawiatury kondensator lądował się napięciem jakie pojawiło się po wciśnięciu przycisku. Czas rozładowania był bardzo długi co skutkowało samoistnym pojawianiem się liter na wyświetlaczu.

Rozwiązałem to w głupi sposób, wykorzystałem pin nr8, który dołączony był razem z A5 do kondensatora. W pętli loop ustawiony on był w odpowiednich miejscach jako wejście lub wyjście ze stanem LOW(żeby "zwierać" kondensator). Rozwiązanie prymitywne dlatego zastanawiam się czy można by bardziej w cywilizowany sposób 🙂

Edytowano przez rafioza12
Link do komentarza
Share on other sites

@rafioza12 dołącz najlepiej ceramiczny kondensator 10nF. Takie kondensatory lepiej zwierają sygnały o wysokich częstotliwościach. Do tego 10nF nie będzie przeszkadzał swoją pojemnością w odczycie napięcia bo naładuje się od razu.

Tak na marginesie, takie klawiatury robiło się od dawna i dalej się robi. Aczkolwiek nie do końca rozumiem czy Ty zrobiłeś zwoją na zasadzie dzielnika napięcia. Może problemem u Ciebie jest właśnie brak rezystora podciągającego albo jest on zbyt dużej/małej wartości.

Edytowano przez Sabre
  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

 

@SabreHm zagłębiłem się temat tego rezystora podciągniętego i rzeczywiście to może być ten problem. Dzięki za odpowiedz raz jeszcze, jutro zmodyfikuje układ i zobaczymy jak się będzie zachowywał. 

I tak układ działa za zasadzie dzielnika napięcia. Prymitywne, chciałem tylko zobaczyć czy bedzie to poprawnie działać 🙂

Link do komentarza
Share on other sites

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

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.