Go Down

Topic: Mi controlador de acuario. (Ayuda). (Read 3 times) previous topic - next topic

martinrv84

Jan 27, 2013, 06:52 pm Last Edit: Jan 27, 2013, 06:54 pm by martinrv84 Reason: 1
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:

Quote

#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        8

LiquidCrystal 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);
  }
}
 


Jopapa

¿Has probado cada componente por separado para familiarizarte con su uso?. Primero el LCD solo con Arduino y luego los demás.
Es lo que haría yo.

Jopapa

Sergegsx

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

Heke

¿Has probado por separado?

¿Has probado esta conexion de la sonda y el ejemplo del playground para salir de dudas?

CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

martinrv84


¿Has probado cada componente por separado para familiarizarte con su uso?. Primero el LCD solo con Arduino y luego los demás.
Es lo que haría yo.

Jopapa


Hola. Ya he trabajado con todos los componentes a excepcion de las sondas de temperatura conectadas por I2C


que error?


Si te refieres a los que me muestra por el monitor serial, me dice lo que le pedi en caso de error en las sondas de temperatura:

Fallo en sensores de temperatura
Fallo en sensor Gambario
Fallo en sensor Acuario
...................... (se repite continuamente)



¿Has probado por separado?

¿Has probado esta conexion de la sonda y el ejemplo del playground para salir de dudas?




Pues la verdad es que no. Me esperaba un error en el sketch por que tampoco es que sea un entendido aunque me valla montando algun proyecto desde 0. Por si las moscas lo provare a ver que pasa.

Gracias a todos. Os seguire informando.

Go Up