hice el siguiente codigo y lo probe en tinkercad pero no muestra nada en el display ni funciona la clave alguien me puede decir que hice mal?
#include <Wire.h>
#include <Servo.h>
#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
#define ROJO 12
#define VERDE 13
#define BUZZER 10
#define SERVO 11
const byte FILAS = 4;
const byte COLUMNAS = 4;
char teclas[FILAS][COLUMNAS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte pinFilas[FILAS] = {9, 8, 7, 6};
byte pinColumnas[COLUMNAS] = {5, 4, 3, 2};
Keypad teclado = Keypad(makeKeymap(teclas), pinFilas, pinColumnas, FILAS, COLUMNAS);
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo servoMotor;
const char claveCorrecta = "1234";
void setup() {
lcd.begin(16, 2);
lcd.setBacklight(LOW);
lcd.setCursor(0, 0);
lcd.print("Ingrese la clave");
pinMode(ROJO, OUTPUT);
pinMode(VERDE, OUTPUT);
pinMode(BUZZER, OUTPUT);
servoMotor.attach(SERVO);
}
void loop() {
char tecla = teclado.getKey();
if (tecla == claveCorrecta) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Clave correcta");
digitalWrite(VERDE, HIGH);
servoMotor.write(90);
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Ingrese la clave");
digitalWrite(VERDE, LOW);
servoMotor.write(0);
} else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Clave incorrecta");
digitalWrite(ROJO, HIGH);
tone(BUZZER, 1000);
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Ingrese la clave");
digitalWrite(ROJO, LOW);
noTone(BUZZER);
}
}