Skocz do zawartości

Problem z klawiaturą membranową


jare72

Pomocna odpowiedź

Pomijając kwestię ekspandera i innych okołotematów, skoro kod biblioteki działa to znaczy że układ jest działający i póki co nie ma co drążyć innych tematów.

 @jare72 czy to co podesłał @Elvis działa?

Jeżeli dalej będziesz miał problem, możesz przeanalizować kod biblioteki, która działa. Znajdziesz ją w dokumentach w katalog Arduino. 

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

(edytowany)

Projekt jeszcze nie mam złożony, więc dlatego testowałem na zwykłej klawiaturze 4x4. Głównie w poście chodziło mi o zasadę działania klawiatury bez bibloteki keypad, ale dzięki wszystkim, że mogłem się dowiedzieć tylu rzeczy i co mogę jeszcze poprawić, bo dopiero zaczynam programować. W projekcie będzie jeszcze wyświetlacz LCD i moduł Ethernet 🙂

@Gieneq 

Na razie jestem w pracy, ale jak wrócę to przetestuję. Co do biblioteki keypad zaglądałem do środka, ale musiałbym nad tym dłużej posiedzieć, bo jest tam sporo funkcji do rozszyfrowania jak np. debouncing. 😃

Edytowano przez jare72
Link do komentarza
Share on other sites

No na spokojnie, jak coś chętnie pomożemy. 🙂 Analiza kodu bibliotek może być bardzo przydatna, pomijając rozwiązanie konkretnego problemu, ale zawsze można podpatrzeć sposób w jaki może podejść do niektórych problemów.

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

Witam ponownie, mam już program który mi działa poprawnie, ale jak odłączę zasilanie i podłączę jeszcze raz to przestaje działać i pomaga jedynie jeśli wgram jakiś inny program, zresetuje Arduino i dopiero wgram ten program, który będzie znów działał poprawnie. Kod doślę później, bo nie mam teraz dostępu do komputera.

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

Nie, biblioteka działa normalnie po odłączeniu programu i podłączeniu ponownie. Jeśli jedna nóżka switcha wejścia pullup jest ustawiona standardowo na wysoki, a druga do wyjścia niskiego i nacisnę przycisk to na wejściu będzie niski stan już do końca działania programu? Czy też muszę ustawiać ponownie jaki był stań przed naciśnięciem przycisku tak jak w przypadku wyjścia?

Link do komentarza
Share on other sites

17 minut temu, jare72 napisał:

Jeśli jedna nóżka switcha wejścia pullup jest ustawiona standardowo na wysoki, a druga do wyjścia niskiego i nacisnę przycisk to na wejściu będzie niski stan już do końca działania programu?

No nie, nie masz żadnej pamięci w tym układzie, ale chyba wiem co jest problemem. Masz pewnie jakiś return i gdy ustawiasz odczyt:

ekspander.digitalWrite(ROWS[x], LOW);

W programie wszystko jest ok, kolumny ustawiasz na PULLUP (wejście, HIGH), przesłuchujesz wiersze sprawdzając czy jak dasz LOW na wyjściu to czy nie zaciągnie któregoś PULLUPa. Ale w sytuacji gdy tak się stanie to może coś się zawiesić, gdy dasz return. Bo w ten sposób przerywasz przesłuchiwanie i nie ustawiasz pinu z powrotem na HIGH. Dlatego musisz albo dodać zmienną pomocniczą trzymającą wynik działania funkcji, albo przed return ustawić piny z powrotem na HIGH.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

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