#define LED1 19
#define LED2 18
#define LED3 5
#define LED4 17
#define LED5 16
byte mode;
byte state;
const char Alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ_123456789#";
void setup() {
Serial.begin(115200);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
state = random(6);
BINLed(state);
mode = random(1, 3);
Serial.println(mode == 1 ? "+" : "-");
}
void loop() {
static bool flagReady = false;
if (Serial.available() > 0) {
char value = Serial.read();
bool found = false;
for (int i = 0; i < sizeof(Alphabet) - 1; i++) {
if (value == Alphabet[i]) {
found = true;
int newIndex;
switch (mode) {
case 1:
newIndex = (i + state) % (sizeof(Alphabet) - 1);
Serial.print(Alphabet[newIndex]);
break;
case 2:
newIndex = (i - state + (sizeof(Alphabet) - 1)) % (sizeof(Alphabet) - 1);
Serial.print(Alphabet[newIndex]);
break;
}
break; // Выход из цикла, если символ найден
}
}
if (found) {
flagReady = false;
}
}
if (Serial.available() == 0 && !flagReady) {
Serial.println(" ");
flagReady = true;
}
}
void BINLed(byte count) {
bool StateLed[5] = {0, 0, 0, 0, 0};
for (int i = 0; i < count; i++) {
StateLed[i] = true;
}
digitalWrite(LED5, StateLed[0]);
digitalWrite(LED4, StateLed[1]);
digitalWrite(LED3, StateLed[2]);
digitalWrite(LED2, StateLed[3]);
digitalWrite(LED1, StateLed[4]);
}