Hola! Este es mi primer post, así que espero no escribirlo mal. El caso es que estoy intentando que me funcione un proyecto que estoy creando para la universidad y no consigo que me funcione el display del LCD. Adjunto el código y el esquema que he seguido (todo lo he hecho yo usando tutoriales y conocimiento propio).
Por cierto, sospecho que es un problema de conexión porque el código compila correctamente... Además también tengo un problema con el lector de RFID, que no lee, pero eso es otro post aparte...
#include <LiquidCrystal.h>
#include <SPI.h>
#include <MFRC522.h>
const int pinBuzzer = 8;
const int RST_PIN = 9; // Pin 9 para el reset del RC522
const int SS_PIN = 13; // Pin 13 para el SS (SDA) del RC522
MFRC522 mfrc522(SS_PIN, RST_PIN); // Crear instancia del MFRC522
//Crear el objeto LCD con los números correspondientes (rs, en, d4, d5, d6, d7)
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup() {
Serial.begin(9600); //Inicializa la velocidad de Serial
while (!Serial); //Mientras no se inicialice el puerto no hacemos nada
// Inicializar el LCD con el número de columnas y filas del LCD
lcd.begin(16, 2);
Serial.println("LCD inicializado correctamente.");
SPI.begin(); //Función que inicializa SPI
mfrc522.PCD_Init(); //Función que inicializa RFID
Serial.println("Lectura del RFID se inicializó correctamente.");
}
void loop() {
lcd.clear();
String texto = "";
Serial.println("LCD limpio.");
if (!mfrc522.PICC_IsNewCardPresent()) {
Serial.println("No hay tarjeta RFID");
texto = "Tranquilidad";
escribirEnLCD(texto);
//suenaBuffer();
return;
}
// Detectar tarjeta
if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
Serial.println("Tarjeta RFID detectada.");
texto = "¡Ruido!";
escribirEnLCD(texto);
suenaBuffer();
}
delay(2000);
}
void suenaBuffer(){
//generar tono de 440Hz durante 1000 ms
tone(pinBuzzer, 440);
delay(1000);
//detener tono
noTone(pinBuzzer);
}
void escribirEnLCD(String texto){
lcd.setCursor(0,0);
lcd.print(texto);
}
Algunos me conoceréis por mi post anterior. Tengo un problemilla con las conexiones del lector RFID es un RC522 de la marca ELEGOO. La placa que utilizo es un Arduino UNO R3. Estoy intentando que me detecte la tarjeta al pasarla por encima del sensor pero no lo consigo... Os adjunto código y el esquema.
#include <LiquidCrystal.h>
#include <SPI.h>
#include <MFRC522.h>
const int pinBuzzer = 8;
const int RST_PIN = 9; // Pin 9 para el reset del RC522
const int SS_PIN = 13; // Pin 13 para el SS (SDA) del RC522
MFRC522 mfrc522(SS_PIN, RST_PIN); // Crear instancia del MFRC522
//Crear el objeto LCD con los números correspondientes (rs, en, d4, d5, d6, d7)
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup() {
Serial.begin(9600); //Inicializa la velocidad de Serial
while (!Serial); //Mientras no se inicialice el puerto no hacemos nada
// Inicializar el LCD con el número de columnas y filas del LCD
lcd.begin(16, 2);
Serial.println("LCD inicializado correctamente.");
SPI.begin(); //Función que inicializa SPI
mfrc522.PCD_Init(); //Función que inicializa RFID
Serial.println("Lectura del RFID se inicializó correctamente.");
}
void loop() {
lcd.clear();
delay(5000);
String texto = "";
Serial.println("LCD limpio.");
if (!mfrc522.PICC_IsNewCardPresent()) {
Serial.println("No hay tarjeta RFID");
texto = "Tranquilidad";
escribirEnLCD(texto);
//suenaBuffer();
return;
}
// Detectar tarjeta
if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
Serial.println("Tarjeta RFID detectada.");
texto = "¡Ruido!";
escribirEnLCD(texto);
suenaBuffer();
}
delay(2000);
}
void suenaBuffer(){
//generar tono de 440Hz durante 1000 ms
tone(pinBuzzer, 440);
delay(1000);
//detener tono
noTone(pinBuzzer);
}
void escribirEnLCD(String texto){
lcd.setCursor(0,0);
lcd.print(texto);
delay(5000);
}
Por favor, no doble postees.
Tenias dos hilos con el mismo tema, el RC522 que no funciona, mas allá que hables del LCD, tmb mencionas el Lector.
Asi que ahora están unificados.