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);
}
}