Skocz do zawartości
bardgang

Jak zaprogramować w Arduino konkretny klawisz na klawiaturce X16 tack switch

Pomocna odpowiedź

Oj faktycznie zapomniałem jednego warunku . Kod już poprawiony. Polecam poćwiczyć sobie warunki ze zmiennymi, całkiem przydatna rzecz 🙂.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)
Dnia 29.05.2020 o 17:58, bardgang napisał:

 

Edytowano przez bardgang

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

@jas123 a czy wiesz co zrobić aby po naciśnięciu kilku znaków z jednej klawiatury i kilku z drugiej w ustalonej kolejności spowodowało wykonanie jakiejś czynności.

 

Edytowano przez bardgang

Udostępnij ten post


Link to post
Share on other sites

@jas123 a czy wiesz co zrobić aby po naciśnięciu kilku znaków z jednej klawiatury i kilku z drugiej w ustalonej kolej
ności spowodowało wykonanie jakiejś czynności

Udostępnij ten post


Link to post
Share on other sites

@bardgang Musisz przypisać po prostu zrobić takiego ifa, że jak te, które chcesz są wciśnięte, to zrobi się to co chciałeś.

Udostępnij ten post


Link to post
Share on other sites

@bardgang  a może byś trochę pomyślał i popróbował, a nie wszystko na gotowe?

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

jas123 Ma rację, znajdziesz takie coś w internecie, pokombinuj trochę, tak się więcej nauczysz.

Edytowano przez KHX

Udostępnij ten post


Link to post
Share on other sites

Ja codziennie kombinuję ale nic nie działa, próbowałem jakoś zdefiniować dla arduino tą drugą klawiaturę ale i tak ją ingnoruję. 

Udostępnij ten post


Link to post
Share on other sites

Jaką drugą klawiaturę? Dopisz trochę szczegółów i ogółów, to ci ktoś pomoże.

Udostępnij ten post


Link to post
Share on other sites

Próbuję zaprogramować dwie klawiatury X16 tack switch tak aby po naciśnięciu kilku guzikuw z jednej i kilku z drugiej klawiatury wykonało jakąś czynność @KHX pisałem to na poprzedniej stronie 

Udostępnij ten post


Link to post
Share on other sites

Pokaż kod, do obydwu klawiatur.

Udostępnij ten post


Link to post
Share on other sites

Pokaż jak to połączyłeś. Klawiatura wymaga 8 pinów, dwie wymagają 16, masz tyle pinów w arduino?

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

@ethanak mam nawet więcej pinów, korzystam z arduino mega

 

to mój kod, nie wiem co mam dopisać aby po napisaniu znaków z pierwszej oraz kilku z drugiej dopiero wykonało czynność:

#include <Wire.h>   // standardowa biblioteka Arduino
#include <LiquidCrystal_I2C.h> // dolaczenie pobranej biblioteki I2C dla LCD
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Ustawienie adresu ukladu na 0x27
#include <Keypad.h> //biblioteka od klawiatury
byte k=0;
const byte ROWS1 = 4;
const byte COLS1 =   4;

const byte ROWS2 = 4;
const byte COLS2 = 4;
 
byte rowPins1[ROWS1] = {5, 4, 3, 2};
byte colPins1[COLS1] = {6, 7, 8, 9};

byte rowPins2[ROWS2] = {28, 26, 24, 22};
byte colPins2[COLS2] = {30, 32, 34, 36};
 
 
char keys1[ROWS1][COLS1] = {
  {'a','b','c',' '},
  {'d','e','f','.'},
  {'g','h','i','{'},
  {'j','k','l',','},
};
char keys2[ROWS2][COLS2] = {
  {'m','n','o','/'},
  {'p','r','s',' '},
  {'t','u','w',' '},
  {'y','z','x',' '},
};


 
Keypad klawiatura1 = Keypad( makeKeymap(keys1), rowPins1, colPins1, ROWS1, COLS1 ); //inicjalizacja klawiatury
Keypad klawiatura2 = Keypad( makeKeymap(keys2), rowPins2, colPins2, ROWS2, COLS2 ); //inicjalizacja klawiatury
void setup(){

  Serial.begin(9600);
    lcd.begin(20,4);   // Inicjalizacja LCD 20x4
      lcd.backlight(); // zalaczenie podwietl'B'enia
      lcd.setCursor(0,0); // Ustawienie kursora w pozycji 0,0 (pierwszy wiersz, pierwsza kolumna)
      lcd.print("users:/bardgang >");
}
void loop(){
    char klawisz1 = klawiatura1.getKey();
     char klawisz2 = klawiatura2.getKey();
if(klawisz1){
    Serial.print(klawisz1);
      lcd.print(klawisz1);

            if (klawisz1 == '{') {
           lcd.setCursor (0,1);
          
              lcd.print (";>");
            }
                 if (klawisz1 == ',') {
           lcd.setCursor (0,2);
              lcd.print (";>");
            }
 
}
 if (klawisz1){                                                                                                                                                    
 if (k==0 &&klawisz1 == 'c') {
  k++;
 } else if (k==1 && klawisz1 == 'l') {
  k++;
  }else if (k==2 && klawisz1 == 'e') {
  k++;
  } else if (k==3 && klawisz1 == 'a') {
 k=0;      
lcd.clear();
lcd.print("users:/bardgang >");  
}
}
 
if(klawisz2){
    Serial.print(klawisz2);
      lcd.print(klawisz2);}            
}

 

Edytowano przez Gieneq

Udostępnij ten post


Link to post
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!

Gość
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...