Gracias por tu respuesta, la prueba de la sonda la hago con el siguiente código pero solo la puedo visualizar con el monitor serial
//La primera parte del sketch is igual al utilizado para averiguar la direccion de los sensores
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 13
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensores(&oneWire);
//Indicamos las direcciones de los sensores
DeviceAddress S1 = {0x28, 0xF6, 0x15, 0x06, 0x06, 0x00, 0x00, 0xA8}; //Sensor Interior
DeviceAddress S2 = {0x28, 0x1B, 0xCB, 0x05, 0x06, 0x00, 0x00, 0xBF}; //Sensor Exterior
void setup(void)
{
Serial.begin(9600); //Abrimos la comunicación por serial
sensores.begin(); //Iniciamos los sensores
}
//Creamos una funcion para mostrar la direccion de los sensores
void Mostrar_Direccion(DeviceAddress direccion)
{
for (uint8_t i = 0; i < 8; i++)
{
if (direccion[i] < 16)
Serial.print("0");
Serial.print(direccion[i], HEX);
}
}
//Funcion que muestra la temperatura en grados centigrados del sensor
void Mostrar_Temperatura(DeviceAddress direccion)
{
float tempC = sensores.getTempC(direccion);
Serial.print("Temperatura: ");
Serial.print(tempC);
}
//Funcion que muestra la resolucion del sensor de dicha direccion. Las resoluciones posibles pueden ser:
//Resolucion a 9 bits 0.50 ºC
//Resolucion a 10 bits 0.25 ºC
//Resolucion a 11 bits 0.125 ºC
//Resolucion a 12 bits 0.0625 ºC
void Mostrar_Resolucion(DeviceAddress direccion)
{
Serial.print("Resolucion: ");
Serial.print(sensores.getResolution(direccion));
Serial.println();
}
//Funcion que muestra los datos del sensor de dicha direccion
void Mostrar_Datos(DeviceAddress direccion)
{
Serial.print("Direccion del dispositivo: ");
Mostrar_Direccion(direccion);
Serial.print(" ");
Mostrar_Temperatura(direccion);
Serial.println();
}
void loop(void)
{
Serial.println("Comprobacion Direccion Sensores DS18B20:");
//Podemos ver el numero de dispositivos que estan conectados al bus 1-Wire
Serial.print("El numero de dispositivos es: ");
Serial.println(sensores.getDeviceCount(), DEC);
Serial.print("Direccion Sensor Interior: ");
Mostrar_Direccion(S1);
Serial.println();
Serial.print("Direccion Sensor Exterior: ");
Mostrar_Direccion(S2);
Serial.println();
//Establecemos la resolucion para cada sensor, PRECISION es a 9 bits
sensores.setResolution(S1, 9); //Resolucion a 9 bits 0.50 ºC
sensores.setResolution(S2, 10); //Resolucion a 10 bits 0.25 ºC
//Si queremos mostrar la resolucion que tiene cada sensor:
Serial.print("Resolucion Sensor Interior: ");
Serial.print(sensores.getResolution(S1), DEC);
Serial.println();
Serial.print("Resolucion Sensor Exterior: ");
Serial.print(sensores.getResolution(S2), DEC);
Serial.println();
sensores.requestTemperatures(); //Enviamos el comando para obtener los datos de los sensores
//Mostramos los datos de todos los sensores
//Llamamos a la funcion Mostrar_Datos indicando la direccion del sensor que queremos leer
Serial.print("Sensor Interior --> ");
Mostrar_Datos(S1);
Serial.print("Sensor Exterior --> ");
Mostrar_Datos(S2);
delay(2000); //Retardo de 2 segundo
}
La prueba de la pantalla la hago con el sketch de la librería UTFT:
#include <UTFT.h>
// Declare which fonts we will be using
extern uint8_t BigFont[];
// Set the pins to the correct ones for your development shield
// ------------------------------------------------------------
// Standard Arduino Mega/Due shield : <display model>,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Due : <display model>,25,26,27,28
// Teensy 3.x TFT Test Board : <display model>,23,22, 3, 4
// ElecHouse TFT LCD/SD Shield for Arduino Due : <display model>,22,23,31,33
//
// Remember to change the model parameter to suit your display module!
UTFT myGLCD(ILI9341_16,38,39,40,41);
void setup()
{
myGLCD.InitLCD();
myGLCD.clrScr();
}
void loop()
{
myGLCD.setColor(0, 255, 0);
myGLCD.setBackColor(0, 0, 0);
myGLCD.setFont(BigFont);
myGLCD.print(" !\"#$%&'()*+,-./", CENTER, 0);
myGLCD.print("0123456789:;<=>?", CENTER, 16);
myGLCD.print("@ABCDEFGHIJKLMNO", CENTER, 32);
myGLCD.print("PQRSTUVWXYZ[\\]^_", CENTER, 48);
myGLCD.print("`abcdefghijklmno", CENTER, 64);
myGLCD.print("pqrstuvwxyz{|}~ ", CENTER, 80);
while(1) {};
}
Pero no soy capaz de mostrar la temperatura en la pantalla