Buenas, soy nuevo en Arduino y en programación mas o menos igual.
Las cuestiones son dos:
1.- La descripción de la librería de Adafruit PCD8544 para el manejo del LCD Nokia 5110 donde está, es para poder ver las variables o descripción de la librería
2.- estoy intentando montar una lectura de humedad y temperatura con el DHT22 en un Nokia 5110, con el serial sin problemas, pero el problema viene al querer representarlo en el Nokia. Por lo que he podido ver la Librería simple NokiaLCD.h no deja int (integers) y lo tengo que pasar a char. Algo hago mal seguro ya que me sale de dato siempre 0 (cero). Pines bien conectados y demás. La placa es la Mega2560. Pego el codigo a ver si hay ideas. Ya que es un paso para tomando dos lecturas el poder abrir una compuerta dependiendo de las temperaturas, a ver que se puede hacer. De momento este es el código, que compila sin problemas:
#include <NokiaLCD.h>
#include <DHT.h>
NokiaLCD NokiaLCD(3,4,5,6,7); // (SCK, MOSI, DC, RST, CS)
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
Serial.begin(9600);
NokiaLCD.init(); // Inicializar la pantalla.
NokiaLCD.clear(); // Limpiar la pantalla.
dht.begin();
}
void loop()
{
NokiaLCD.setCursor(10,0);
NokiaLCD.print("MOMESENSOR");
NokiaLCD.setCursor(5,2);
NokiaLCD.print("Temperatura");
NokiaLCD.setCursor(5,4);
NokiaLCD.print("Humedad");
// Leer la temperatura o humedad necesita 250 milisegundos
// Las lecturas tambien duraran 2 segundos, es un sensor antiguo y lento
int h = dht.readHumidity(); //declaramos el h integer
char hh[10]; //declaramos character array
String strh; //declaramos el string
strh=String(h); //convertimos el integer al string
strh.toCharArray(hh,10); //pasamos el valor del string al character array
int t = dht.readTemperature();
char tt[10]; //transformacion a char
String strt;
strt=String(t);
strt.toCharArray(tt,10);
// comprueba que las lecturas son validas, si son NaN (not a number) algo se ha hecho mal!
if (isnan(h) || isnan(t)) {
NokiaLCD.setCursor(10,3);
NokiaLCD.print("h");
NokiaLCD.setCursor(10,5);
NokiaLCD.print("t");
}
else {
NokiaLCD.setCursor(20,3);
NokiaLCD.print( hh );
NokiaLCD.setCursor(20,5);
NokiaLCD.print( tt );
}
}
modificado tras el aviso.