// Definição dos pinos
const int led_red = 15, led_green = 14, led_blue = 13, buzzer = 21;
const int row_pins[] = {10, 9, 8, 7};
const int col_pins[] = {6, 5, 4, 3};
char keys[4][4] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}};
void setup() {
pinMode(led_red, OUTPUT); pinMode(led_green, OUTPUT); pinMode(led_blue, OUTPUT); pinMode(buzzer, OUTPUT);
for (int i = 0; i < 4; i++) { pinMode(row_pins[i], OUTPUT); pinMode(col_pins[i], INPUT_PULLDOWN); }
}
char scanKeypad() {
for (int i = 0; i < 4; i++) {
digitalWrite(row_pins[i], HIGH);
for (int j = 0; j < 4; j++) {
if (digitalRead(col_pins[j]) == HIGH) { digitalWrite(row_pins[i], LOW); return keys[i][j]; }
}
digitalWrite(row_pins[i], LOW);
}
return '\0';
}
void controlLights(char key) {
if (key == 'A') { digitalWrite(led_red, HIGH); delay(1000); digitalWrite(led_red, LOW); }
if (key == 'B') { digitalWrite(led_green, HIGH); delay(1000); digitalWrite(led_green, LOW); }
if (key == 'C') { digitalWrite(led_blue, HIGH); delay(1000); digitalWrite(led_blue, LOW); }
if (key == 'D') { digitalWrite(led_red, HIGH); digitalWrite(led_green, HIGH); digitalWrite(led_blue, HIGH); delay(1000); digitalWrite(led_red, LOW); digitalWrite(led_green, LOW); digitalWrite(led_blue, LOW); }
if (key == '#') { digitalWrite(buzzer, HIGH); delay(1000); digitalWrite(buzzer, LOW); }
}
void loop() {
char key = scanKeypad();
if (key) controlLights(key);
delay(200); // Aguarda um pequeno intervalo
}Loading
pi-pico-w
pi-pico-w