Buenas tardes,
Tengo un problema con un proyecto que estoy haciendo.
El proyecto consiste en dos pulsadores con dos leds para que nuestros amigos peludos puedan comunicarse con nosotros de forma sencilla, con tan solo pulsar dos botones diferentes podrán decirnos si tienen hambre o quieren salir a pasear.
He contactado a la placa de Arduino UNO una pantalla LCD de 16 x 2 con dos pulsadores, dos leds y un potenciómetro.
El pulsador 1 está vinculado al led azul y el pulsador 2 al led amarillo. Cuando pulsas el pulsador 2 enciende el led amarillo y pinta por pantalla "Tengo hambre" y cuando pulsas el pulsador 1 se enciende el led azul y debería pintar por pantalla "Quiero pasear", pero no lo hace.
Lo que no entiendo es que en Tinkercad colocando todos los elementos de la misma forma que en el proyecto físico si se pinta dicha frase y todo funciona perfectamente, pero al pasarlo al proyecto físico el led azul no pinta por pantalla su frase.
He revisado todos los cables y resistencias y esta todo igual que en Tinkercad, y el código también, no entiendo porque no funciona. A ver si alguien sabe a que puede deberse.
Adjunto el código utilizado y unas imágenes.
//Importo la libreria
#include <LiquidCrystal.h>
//Declaro las variables para la pantalla lcd y los dos ledes
int rs = 12;
int e = 11;
int d4 = 5;
int d5 = 4;
int d6 = 3;
int d7 = 2;
int button_blue = 6;
int button_yellow = 7;
LiquidCrystal lcd(rs, e, d4, d5, d6, d7); //Inicia la libreria confugurando los pines que se utilizaran
void setup(){
lcd.begin(16,2); //Especifica que la pantalla lcd es de 16x2
Serial.begin(9600); //Activar el puerto serie del Arduino delay(2000);
pinMode(button_blue, INPUT); //Pin azul entrada
pinMode(button_yellow, INPUT); //Pin amarillo entrada
}
void loop(){
lcd.setCursor(0,0); //Muestra el mensaje en la coordenada 0,0, esquina superior izquierda de la pantalla
if (digitalRead(button_blue) == LOW) { //Boton azul apagado por defecto
lcd.print("Quiero pasear");////Pinta el mensaje "Quiero pasear" en el led azul
delay(2000); //Pinta el mensaje durante 2 segundos
lcd.clear(); //Borra el mensaje
}
else if (digitalRead(button_yellow) == LOW) { //Boton amarillo apagado por defecto
lcd.print("Tengo hambre"); //Pinta el mensaje "Tengo hambre" en el led amarillo
delay(2000); //Pinta el mensaje durante 2 segundos
lcd.clear(); //Borra el mensaje
}
}
Muchas gracias,
Un saludo,