Hola, tengo un LDR o fotorresistor y una pantalla LCD 2004A. El caso es que hago que el LDR funcione, y a través del monitor serie, sí que me aparece el valor que recoge el LDR, que varía dependiendo de la luz, pero cuando quiero que me lo muestre por la pantalla, en vez de aparecerme el mismo valor que aparece en el monitor serie, me aparecen caracteres raros... hasta letras que parecen chinas. No creo que sea de que esté mal conectado el LCD ya que el texto "Valor LDR = " sí que me aparece correctamente, es lo que tendría que venir después de ese texto lo que me aparece con el caracter raro...
¿¿¿ Porqué podría ser???
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11 , 12);
int LDRPin = A0;
int valorLDR = 0;
int M1_Izq = 52; //Direccion
int M1_Derecha = 50; //Direccion
void setup()
{
Serial.begin(9600);
pinMode(M1_Izq, OUTPUT);
pinMode(M1_Derecha, OUTPUT);
pinMode(LDRPin, INPUT);
lcd.begin(20, 4);
}
void loop()
{
//Guardamos el valor leido en una variable
valorLDR = analogRead(LDRPin);
// Impresión de los valores leídos por el sensor por pantalla
[b]Serial.print("LDR = ");
Serial.println(valorLDR);[/b]
delay (10000);// tiempo de retardo
if (valorLDR < 110){
cerrar();} //Esta función es para CERRAR
else{
abrir();
} //Esta función es para ABRIR
}
void cerrar() //Esta función es para CERRAR
{
boolean inPin1 = LOW;
boolean inPin2 = HIGH;
digitalWrite(M1_Derecha, inPin2);
digitalWrite(M1_Izq, inPin1);
Serial.print("CERRANDO ");
lcd.setCursor(0,0);
lcd.write("LDR: ");
lcd.setCursor(0,2);
[b]lcd.write(valorLDR);[/b]
lcd.setCursor(0,1);
lcd.write("CERRANDO");
}
void abrir() //Esta función es para CERRAR
{
boolean inPin2 = LOW;
boolean inPin1 = HIGH;
digitalWrite(M1_Derecha, inPin2);
digitalWrite(M1_Izq, inPin1);
Serial.print("ABRIENDO ");
lcd.setCursor(0,0);
lcd.write("LDR: ");
lcd.setCursor(0,2);
[b] lcd.write(valorLDR);[/b]
lcd.setCursor(0,1);
lcd.write("ABRIENDO");
}
void girar(int direccion)
{
boolean inPin1 = LOW;
boolean inPin2 = HIGH;
if(direccion == 1){
inPin1 = HIGH;
inPin2 = LOW;
}
digitalWrite(M1_Izq, inPin1);
digitalWrite(M1_Derecha, inPin2);
}
(SOL