Hola, me pueden ayudar a corregir este código, la pantalla no da ningún tipo de imagen
#include <Adafruit_Fingerprint.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Servo.h>
#include <Keypad.h>
#define FINGERPRINT_Rx 12 // Cambiar al pin conectado al RX del sensor de huellas dactilares
#define FINGERPRINT_Tx 13 // Cambiar al pin conectado al TX del sensor de huellas dactilares
#define BUZZER_PIN 11 // Cambiar al pin conectado al buzzer
#define SERVO_PIN 10 // Cambiar al pin conectado al servo
#define KEY_NUM 6
#define KEY_ROWS 4
#define KEY_COLS 4
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
Servo myservo;
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&Serial);
const byte ROWS = 4; // Definimos el número de filas del keypad
const byte COLS = 4; // Definimos el número de columnas del keypad
// Definimos el array que representa las teclas en el keypad
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}; // Conectar a los pines ROW0, ROW1, ROW2 y ROW3 del keypad
byte colPins[COLS] = {5, 4, 3, 2}; // Conectar a los pines COL0, COL1, COL2 y COL3 del keypad
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
bool fingerAuthenticated = false;
const uint8_t fingerID = 1; // ID de la huella dactilar principal
const uint8_t maxFingerID = 20; // Número máximo de huellas dactilares
void setup() {
Serial.begin(9600);
finger.begin(Serial);
if (finger.verifyPassword()) {
Serial.println("Sensor de huella dactilar OK!");
} else {
Serial.println("Error en el sensor de huella dactilar, revisa la conexión");
while (1);
}
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
delay(2000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0,0);
display.println("Coloque su dedo principal");
display.display();
myservo.attach(SERVO_PIN);
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
char key = keypad.getKey();
if (key == '*') {
if (fingerAuthenticated) {
myservo.write(0); // Gira el servo a su posición original
delay(1000);
fingerAuthenticated = false;
display.clearDisplay();
display.setCursor(0,0);
display.println("Coloque su dedo");
display.display();
} else {
display.clearDisplay();
display.setCursor(0,0);
display.println("Confirmar");
display.display();
fingerAuthenticated = fingerprintVerification();
}
} else if (key == '#') {
if (fingerAuthenticated) {
addFinger();
}
}
if (fingerAuthenticated) {
display.clearDisplay();
display.setCursor(0,0);
display.println("Abriendo!!");
display.display();
myservo.write(90); // Gira el servo a 90 grados
delay(4000);
display.clearDisplay();
display.setCursor(0,0);
display.println("Abierto");
display.display();
delay(2000);
myservo.write(0); // Gira el servo a su posición original
delay(1000);
fingerAuthenticated = false;
display.clearDisplay();
display.setCursor(0,0);
display.println("Coloque su dedo");
display.display();
}
}
bool fingerprintVerification() {
uint8_t p = finger.getImage();
if (p != FINGERPRINT_OK) {
return false;
}
p = finger.image2Tz();
if (p != FINGERPRINT_OK) {
return false;
}
p = finger.fingerFastSearch();
if (p != fingerID) {
digitalWrite(BUZZER_PIN, HIGH);
delay(5000);
digitalWrite(BUZZER_PIN, LOW);
display.clearDisplay();
display.setCursor(0,0);
display.println("Acceso denegado");
display.display();
delay(2000);
return false;
}
return true;
}
void addFinger() {
display.clearDisplay();
display.setCursor(0,0);
display.println("Coloque su dedo 3 veces");
display.display();
uint8_t id;
bool success = false;
for (int i = 0; i < 3; i++) {
uint8_t p = finger.getImage();
if (p == FINGERPRINT_OK) {
p = finger.image2Tz(1);
if (p == FINGERPRINT_OK) {
display.clearDisplay();
display.setCursor(0,0);
display.println("Leído correctamente");
display.display();
delay(1000);
success = true;
} else {
display.clearDisplay();
display.setCursor(0,0);
display.println("Error al leer");
display.display();
delay(1000);
success = false;
break;
}
} else {
display.clearDisplay();
display.setCursor(0,0);
display.println("Por favor, intente de nuevo");
display.display();
delay(1000);
success = false;
break;
}
}
if (success) {
display.clearDisplay();
display.setCursor(0,0);
display.println("Dedo agregado");
display.display();
delay(1000);
} else {
display.clearDisplay();
display.setCursor(0,0);
display.println("Fallo al agregar dedo");
display.display();
delay(1000);
}
}