• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Multitap keypad, wpisywanie znaków.

Object Storage Arubacloud
0 głosów
82 wizyt
pytanie zadane 12 stycznia 2020 w Mikrokontrolery przez Zaratustra Początkujący (320 p.)

Witam, tworzę projekt mający na celu wpisany tekst przez użytkownika przedstawić za pomocą kodu Morse'a. Mój problem polega na tym, że nie wiem jak zrobić, aby Input użytkownika został zamieniony na zdanie w języku polskim, np: użytkownik przyciska '2' -> A następnie '5' '5' '5' -> L następnie '2' -> A. Działanie jest takie samo jak w starych telefonach.
I tu pojawia się problem, nie wiem w jaki sposób zaprezentować wszystkie litery i porównywać je z tym co wpisuje użytkownik. Potrzebuję czegoś w rodzaju "dictionary" z pythona.

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>

const byte ROWS = 4;
const byte COLS = 3;
int i = 0, j = 0, s = 0;
char input[5];
char wyraz[12];
char customKey;
char litera[5];
char B[5] = { '1', '1', '#'};

char hexaKeys[ROWS][COLS] = {
  {'1', '2', '3'},
  {'4', '5', '6'},
  {'7', '8', '9'},
  {'*', '_', '#'}
};

byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3};

Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

LiquidCrystal_I2C lcd(0x3F, 16, 2);  

void setup(){
  lcd.backlight();
  lcd.init(); 
}

void loop(){
  lcd.setCursor(0,0);
  lcd.print("Wpisz wyraz:");
  
  customKey = customKeypad.getKey();
  
 if (customKey)
  {
    input[i] = customKey;
    lcd.setCursor(i,1); 
    lcd.print(input[i]); 
    i++; 
  }

  if (customKey == '#')
  {
    lcd.clear();
    i = 0;
    
    if(!strcmp(input, B))
    {
      lcd.setCursor(s,1);
      wyraz[s] = 'B';
      lcd.print('B');
      memset(input, 0, sizeof(input));
      s++;
    }
  }
   

  if(i == 5)
  {
    lcd.clear();
    i=0;
    lcd.setCursor(0,1);
    lcd.print(wyraz);
  }
  
}

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 723 wizyt
0 głosów
2 odpowiedzi 522 wizyt
pytanie zadane 10 grudnia 2018 w C i C++ przez BarHorab Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 2,209 wizyt

92,579 zapytań

141,432 odpowiedzi

319,663 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...