Skocz do zawartości

jare72

Użytkownicy
  • Zawartość

    7
  • Rejestracja

  • Ostatnio

Reputacja

1 Neutralna

O jare72

  • Ranga
    2/10

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. 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?
  2. 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.
  3. 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.
  4. W projekcie mam klawiaturę 7x7 więc dlatego 14 pinów, a diody w układzie 3 rzędy po 7 diod z kluczami tranzystorowymi więc potrzeba 10 pinów. W programie który podałem, wydzieliłem tylko 4x4.
  5. @marek1707 Klawiatura (14 pinów) + multipleksowanie diod (10 pinów) + wyświetlacz LCD, a ja posiadam Arduino Uno więc dlatego podłączam do ekspandera. Musiałbym zakupić Arduino Due żeby wystarczyło pinów procesora.
  6. Poprawiłem na sprawdzanie stanu niskiego i nadal wypisuje mi pierwszy przycisk bez naciskania żadnego przycisku, sprawdzałem wszystkie połączenia i jest okej. Testowałem na bibliotece keypad i wszystko działa więc nie wiem w czym może być problem Korzystałem wczoraj też z tego programu https://starter-kit.nettigo.pl/2017/03/obsluga-klawiatury-matrycowej-arduino/ i wszystko działało tak jak trzeba, ale jak dzisiaj podłączyłem do zasilania to wypisuje mi te nieszczęsne "1"
  7. Hej, poniżej kod z którym mam problem. W monitorze portu szeregowego wpisuje mi cały czas pierwszy przycisk, chociaż nic nie naciskam i nie wiem czemu tak się dzieje. Wiem, że można skorzystać z biblioteki keypad, ale muszę sam ogarnąć program, bo w trakcie monitorowania naciśnięcia przycisku ma wykonywać się multipleksowanie diod więc muszę to ze sobą połączyć, żeby miganie diod nie było zauważalne przez ludzie oko. Ewentualnie jeśli macie jakiś pomysł jak połączyć miganie diodami z monitorowaniem klawiatury w tym samym czasie to chętnie wysłucham. #include <Wire.h> #include <Adafruit_MCP23017.h> Adafruit_MCP23017 ekspander; const int ROWS[] = {13,12,11,10}; const int COLS[] = {0,1,2,3}; const int NUM_ROWS = sizeof(ROWS)/sizeof(int); const int NUM_COLS = sizeof(COLS)/sizeof(int); const char KEYS[NUM_ROWS][NUM_COLS] = { {'1','2','3','4'}, {'5','6','7','8'}, {'9','A','B','C'}, {'D','E','F','G'} }; void setup() { Serial.begin(9600); ekspander.begin(0x01); for(int x = 0; x < NUM_ROWS; x++) { ekspander.pinMode(ROWS[x], OUTPUT); ekspander.digitalWrite(ROWS[x], LOW); } for(int x = 0; x < NUM_COLS; x++) { ekspander.pinMode(COLS[x], INPUT_PULLUP); } } void loop() { char key = readKey(); if(key) Serial.println(key); } char readKey() { for(int x = 0; x < NUM_ROWS; x++) { ekspander.digitalWrite(ROWS[x], HIGH); for(int y = 0; y < NUM_COLS; y++) { if(ekspander.digitalRead(COLS[y]) == HIGH) return KEYS[x][y]; } ekspander.digitalWrite(ROWS[x], LOW); } return 0; }
×
×
  • Utwórz nowe...