#include <Keypad.h>
// Configuração do teclado matricial 4x4
const byte ROWS = 4; // Número de linhas
const byte COLS = 4; // Número de colunas
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; // Pinos das linhas conectados ao Arduino
byte colPins[COLS] = {5, 4, 3, 2}; // Pinos das colunas conectados ao Arduino
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
// Pinos dos LEDs
const int redLed = 10;
const int greenLed = 11;
const int blueLed = 12;
void setup() {
// Configuração dos pinos dos LEDs como saída
pinMode(redLed, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(blueLed, OUTPUT);
// Inicialização dos LEDs apagados
digitalWrite(redLed, LOW);
digitalWrite(greenLed, LOW);
digitalWrite(blueLed, LOW);
Serial.begin(9600); // Para depuração (opcional)
}
void loop() {
char key = keypad.getKey(); // Lê a tecla pressionada
if (key) {
Serial.println(key); // Para depuração (opcional)
// Desliga todos os LEDs
digitalWrite(redLed, LOW);
digitalWrite(greenLed, LOW);
digitalWrite(blueLed, LOW);
// Lógica para acender os LEDs com base na tecla pressionada
if (key == '1' || key == '4' || key == '7' || key == '*') {
digitalWrite(redLed, HIGH);
} else if (key == '2' || key == '5' || key == '8' || key == '0') {
digitalWrite(greenLed, HIGH);
} else if (key == '3' || key == '6' || key == '9' || key == '#') {
digitalWrite(blueLed, HIGH);
}
// Teclas A, B, C, D não acendem nenhum LED
}
}