Hola. En vista de que los proyectos que me encontre por internet no se adaptaban a mis necesidades he decidido montarme el mio propio.
Pero me he encontrado con algun que otro problemilla. Os cuento:
Al copilar no me da ningun error y cargo el sketch. Al alimentar el Arduino en la pantalla solo se enciende la retroiluminacion pero solo se ve unos cuadrados en la fila superior de la pantalla. Si miro el monitor serial si que veo lo que hace pero me da error continuamente por que me dice que no me detecta ninguna de las 2 sondas de temperatura.
Alguien me puede orientar para saber lo que estoi haciendo mal? Muchas gracias.
Los componentes son los siguientes:
-2 DS18B20.
-1 LCD 16*02 Serial IIC/I2C/TWI SPI
-1 Arduino Uno R3
-1 RTC DS1307
-1 Placa reles 4CH
El esquema:
Tened piedad de mi que es la primera vez que dibujo un esquema.
Y el sketck:
#include <LiquidCrystal.h>
#include <Wire.h>
#include <RelojDS1307.h>
#include <OneWire.h>
#include <DallasTemperature.h>#define LUZ 3
#define LUZ_LUNA 9
#define TEMP 5
#define ALARMA 6
#define CAL_1 7
#define CAL_2 8LiquidCrystal lcd(0);
RelojDS1307Class Reloj;
OneWire oneWire( TEMP );
DallasTemperature sensors(&oneWire);DeviceAddress ACUARIO, GAMBARIO;
void setup()
{
Serial.begin(115200);
Wire.begin();
lcd.setBacklight(HIGH);
Reloj.SetDateTime( 27, 01, 13, 17, 37, 00 );lcd.begin(16, 2);
lcd.setBacklight(HIGH);pinMode(LUZ, OUTPUT);
pinMode(LUZ_LUNA, OUTPUT);
pinMode(ALARMA, INPUT);
pinMode(CAL1, OUTPUT);
pinMode(CAL2, OUTPUT);
pinMode(TEMP, INPUT);
pinMode(NIVEL, INPUT);}
void loop()
{
sensors.begin();
if (sensors.getDeviceCount() < 2);
{
Serial.println("Fallo en sensores de temperatura");
lcd.setCursor(0,0);
lcd.print( "Fallo Temp1" );
}
if (!sensors.getAddress(GAMBARIO, 0));
{
Serial.println("Fallo en sensor Gambario");
lcd.setCursor(0,0);
lcd.print( "Fallo Temp2" );
}if (!sensors.getAddress(ACUARIO, 1));
{
Serial.println("Fallo en sensor Acuario");
lcd.setCursor(0,0);
lcd.print( "Fallo Temp1" );
}float TEMP1 = sensors.getTempC(ACUARIO);
float TEMP2 = sensors.getTempC(GAMBARIO);lcd.setCursor(4,0);
lcd.print(Reloj.Time());lcd.setCursor(0,1);
lcd.print("Acuario: ");
lcd.print(TEMP1, 0);
lcd.print("C");
delay(3000);
lcd.setCursor(0,1);
lcd.print("Gambario: ");
lcd.print(TEMP2, 0);
lcd.print("C");if(TEMP1 < 25)
{
digitalWrite (CAL_1, HIGH);
}if(TEMP1 > 25)
{
digitalWrite (CAL_1, LOW);
}if(TEMP2 < 25)
{
digitalWrite (CAL_2, HIGH);
}if(TEMP2 > 25)
{
digitalWrite (CAL_2, LOW);
}if(Reloj.IsLater(10, 0))
{
digitalWrite(LUZ, HIGH);
digitalWrite(LUZ_LUNA, LOW);
}if(Reloj.IsLater(20, 0))
{
digitalWrite(LUZ, LOW);
digitalWrite(LUZ_LUNA, HIGH);
}
}