// Definindo os pinos dos LEDs
int ledPinZ = 21; // LED para o caractere 'Z'
int ledPinX = 19; // LED para o caractere 'X'
int ledPinC = 18; // LED para o caractere 'C'
int ledPinV = 5; // LED para o caractere 'V'
void setup() {
// Inicia a comunicação serial a 9600 bps
Serial.begin(9600);
// Configura os pinos dos LEDs como saída
pinMode(ledPinZ, OUTPUT);
pinMode(ledPinX, OUTPUT);
pinMode(ledPinC, OUTPUT);
pinMode(ledPinV, OUTPUT);
// Garante que todos os LEDs começam desligados
digitalWrite(ledPinZ, LOW);
digitalWrite(ledPinX, LOW);
digitalWrite(ledPinC, LOW);
digitalWrite(ledPinV, LOW);
}
void loop() {
// Verifica se há dados disponíveis para ler na porta serial
if (Serial.available() > 0) {
// Lê o próximo caractere disponível
char receivedChar = Serial.read();
//Aciona o LED correspondente ao caractere recebido
if (receivedChar == 'Z') {
digitalWrite(ledPinZ, HIGH);
}
if (receivedChar == 'X') {
digitalWrite(ledPinX, HIGH);
}
if (receivedChar == 'C') {
digitalWrite(ledPinC, HIGH);
}
if (receivedChar == 'V') {
digitalWrite(ledPinV, HIGH);
}
// As letras estabelecem o tempo
if (receivedChar == 'T') {
delay(1000);
}
if (receivedChar == 't') {
delay(500);
}
if (receivedChar == 'U') {
delay(100);
}
// Inicia a sequência de pinos acionados e tempos
if (receivedChar == 'S') {
digitalWrite(ledPinZ, HIGH);
delay(300);
digitalWrite(ledPinZ, LOW);
digitalWrite(ledPinC, HIGH);
delay(200);
digitalWrite(ledPinC, LOW);
digitalWrite(ledPinV, HIGH);
delay(100);
digitalWrite(ledPinV, LOW);
// Apaga todos os LEDs
} else if (receivedChar == 'B') {
digitalWrite(ledPinZ, LOW);
digitalWrite(ledPinX, LOW);
digitalWrite(ledPinC, LOW);
digitalWrite(ledPinV, LOW);
// Acende todos os LEDs
} else if (receivedChar == 'A') {
digitalWrite(ledPinZ, HIGH);
digitalWrite(ledPinX, HIGH);
digitalWrite(ledPinC, HIGH);
digitalWrite(ledPinV, HIGH);
}
}
}