buenas comañeros despues e tener el proyecto casi terminado me encuentro con que la sonda DS18B20 me da una temperatura -127 cuando esta conectada la sonda .trabajo con la version 0023 con sus respectivas librerias ,onwire y dallastemperature.
que creeis que esta pasamdome?
#include <OneWire.h>
#include <LiquidCrystal.h>
#include <DallasTemperature.h>
#include <Wire.h> //
#define DS1307_I2C_ADDRESS 0x68
LiquidCrystal lcd(26, 27, 45, 47, 49, 51);
#define ONE_WIRE_BUS 41//temperatura, pin de entrada
OneWire oneWire(ONE_WIRE_BUS);//temperatura
DallasTemperature sensores(&oneWire);
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
int PinVentilador =29;//rele 1-ventilador disipador
int PinCentilador =30;//rele 2-ventilador disipador
int PinCalentador = 34;
int EstadoCentil=0;
int EstadoVentil=0;
int EstadoCalent=0;
int Retraso=5000;
}
void setup()
{ pinMode(PinCentilador, OUTPUT);
pinMode(PinVentilador, OUTPUT);
pinMode(PinCalentador, OUTPUT);
}
void loop() {
getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); //Obtenemos la hora
sensores.requestTemperatures();
Temperatura(minute, hour);
lcd.noBlink();
if (minute < 2) Retraso=1000;
else if (hour < 5) Retraso=10000;
else Retraso=10000;
}void Temperatura(int minutos, int horas)
{
float T1;
float T2;
float T3;
sensores.requestTemperatures();
T1=sensores.getTempCByIndex(0)+1;
T2=sensores.getTempCByIndex(1)+1;
T3=sensores.getTempCByIndex(2)+1;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("TEMPERATURA");
lcd.print(" ");
if (hour < 10) lcd.print("0");
lcd.print(hour, DEC);
lcd.print(":");
if (minute < 10) lcd.print("0");
lcd.print(minute, DEC);lcd.setCursor(0, 1);
lcd.print("TACEN-T1:");
lcd.print(T1);
lcd.print((char)223);
lcd.setCursor(0, 2);
lcd.print("TACEN-T2:");
lcd.print(T2);
lcd.print((char)223);
lcd.setCursor(0, 3);
lcd.print("WATER-T3:");
lcd.print(T3);
lcd.print((char)223);
if (T2 < 25) EstadoCalent=1;
if (T2 > 26) EstadoCalent=0;
if (T1 < 25) EstadoVentil=0;
if (T1 > 30) EstadoVentil=1;
if (T3 < 25) EstadoCentil=0;
if (T3 > 30) EstadoCentil=1;lcd.setCursor(16, 3);
if(EstadoCalent==1 ){
digitalWrite(PinCalentador, LOW);
lcd.write(6);
}
else
{
digitalWrite(PinCalentador, HIGH);
lcd.write(6);
}
lcd.setCursor(16, 1);
if(EstadoVentil==1 )//decimos al rele el encendido y apagado//
{
digitalWrite(PinVentilador, LOW);
lcd.write(6);lcd.write(5);lcd.write(5);
}
else
{
digitalWrite(PinVentilador, HIGH);
lcd.write(6);
}
lcd.setCursor(16, 2);
if(EstadoCentil==1 )//decimos al rele el encendido y apagado//
{
digitalWrite(PinCentilador, LOW);
lcd.write(6);lcd.write(5);lcd.write(5);
}
else
{
digitalWrite(PinCentilador, HIGH);
lcd.write(6);}
delay(Retraso);
}
ademas compañeros al abrir el serial monitor despues de copilar el sketch "simple" me dice :
temperature for the device 1 ( index 0) is: -127.00
requesting temperature .......done
may led v.o2.zip (5.07 KB)