Go Down

Topic: proyecto acuario dudas y mucha ayuda (Read 201 times) previous topic - next topic

danielfersot

Hola a todo llevo leído un poco el foro y e de decir que soy todos unos profesionales espero llegar después de lograr esto a poder hacer muchas mas cosas

Pues nada al lio para no liar mas las cosas os pongo en conocimiento de lo que quiero hacer, antes de nada perdonar mi ignorancia en tener poco o casi ninguna idea de esto pero lo intento me cuesta mucho pero lo intento.

Bueno la idea es tengo un acuario y con el Arduino quiero controlar las luces led haciendo efecto día con temporizador horario y a mayores solo a nivel de control saber la temperatura del acuario nada raro solo saber la temperatura

Vale el material que tengo es Arduino Leonardo con puerto usb micro
sensor temperatura ds18b20 los sumergibles
reloj ds 1302 con pila ya instalada
la pantalla lcd aun sin compra tengo dudas
placa de 8 reles

A todo esto decir que el reloj lo e puesto en marcha con esta compilación funciona perfectamente lo único al apagar el Arduino no mantiene o no se mirar si conserva los datos gracias a la pila
#include <DS1302.h>

// Init the DS1302
DS1302 rtc(2, 3, 4);    // Change the pins here if you want

void setup()
{
// Set the clock to run-mode, and disable the write protection
rtc.halt(false);
rtc.writeProtect(false);

// Setup Serial connection
Serial.begin(9600);

// The following lines can be commented out to use the values already stored in the DS1302
// Once you flash the arduino with the correct time.

rtc.setDOW(WEDNESDAY); // insertar dia
rtc.setTime(22, 26, 0); // insertar hora (formato 24hr)
rtc.setDate(25, 03, 2015); // insertar dia mes y año
}

void loop()
{
// Send Day-of-Week
Serial.print(rtc.getDOWStr());
Serial.print(" ");

// Send date
Serial.print(rtc.getDateStr());
Serial.print(" -- ");

// Send time
Serial.println(rtc.getTimeStr());

// Wait one second before repeating :)
delay (1000);
}

por otro lado el sensor de temperatura por si solo lo e compilado con este
#include <OneWire.h> //Se importan las librerías
#include <DallasTemperature.h>
 
#define Pin 2 //Se declara el pin donde se conectará la DATA
 
OneWire ourWire(Pin); //Se establece el pin declarado como bus para la comunicación OneWire
 
DallasTemperature sensors(&ourWire); //Se instancia la librería DallasTemperature
 
void setup() {
delay(1000);
Serial.begin(9600);
sensors.begin(); //Se inician los sensores
}
 
void loop() {
sensors.requestTemperatures(); //Prepara el sensor para la lectura
 
Serial.print(sensors.getTempCByIndex(0)); //Se lee e imprime la temperatura en grados Celsius
Serial.println(" grados Centigrados");
 
delay(1000); //Se provoca un lapso de 1 segundo antes de la próxima lectura
 
}

Todo funciona perfectamente vale esto es dentro de mis posiblidades esta conseguido, e compilado también un encendido de led independientes con los reles y también todo ok, pues mis grandes dudas empiezan aquí

1. como compilo simultaneamente el reloj y el sensor porque soy incapaz o algo hago mal o no entiendo seria algo así seguro que alguno se reís pero sigo diciendo perdonar mi ignorancia
 
#include <OneWire.h> //Se importan las librerías
#include <DallasTemperature.h>
#include <DS1302.h>

// Init the DS1302
DS1302 rtc(2, 3, 4);    //pin de detection
 
#define Pin 2 //Se declara el pin donde se conectará la DATA
 
OneWire ourWire(Pin); //Se establece el pin declarado como bus para la comunicación OneWire
 
DallasTemperature sensors(&ourWire); //Se instancia la librería DallasTemperature
 
void setup() {
delay(1000);
Serial.begin(9600);
sensors.begin(); //Se inician los sensores
}
 
void loop() {
sensors.requestTemperatures(); //Prepara el sensor para la lectura
 
Serial.print(sensors.getTempCByIndex(0)); //Se lee e imprime la temperatura en grados Celsius
Serial.println(" grados Centigrados");
 
delay(2000); // próxima lectura
 
}

void setup()
{
// Ajuste el reloj para funcionar en modo , y desactivar la protección contra escritura
rtc.halt(false);
rtc.writeProtect(false);

// velocidad de conector serial
Serial.begin(9600);


rtc.setDOW(WEDNESDAY); // insertar dia
rtc.setTime(22, 26, 0); // insertar hora (formato 24hr)
rtc.setDate(25, 03, 2015); // insertar dia mes y año
}

void loop()
{
// Dia de la semana
Serial.print(rtc.getDOWStr());
Serial.print(" ");

// mes
Serial.print(rtc.getDateStr());
Serial.print(" -- ");

// hora
Serial.println(rtc.getTimeStr());

// tiempo de espera para repetir:)
delay (2000);
}

aqui un falta el proceso de encendido de los reles independiente de cada uno pero quiero ir paso a paso ya que es la única manera de aprender
gracias de antemano a todos los que me pueda echar una mano pienso que este proyecto no es muy grande pero bueno me esta llevando mi tiempo

Kmilo123

el problema que tienes con lo de la hora es por que al resetear el arduino el código se vuelve a ejecutar
entonces cuando hayas configurado la hora debes volver a subir el código a arduino pero con las lineas de configuración de fecha y hora comentadas  

                       #include <DS1302.h>

// Init the DS1302
DS1302 rtc(2, 3, 4);    // Change the pins here if you want

void setup()
{
// Set the clock to run-mode, and disable the write protection
rtc.halt(false);
rtc.writeProtect(false);

// Setup Serial connection
Serial.begin(9600);

// The following lines can be commented out to use the values already stored in the DS1302
// Once you flash the arduino with the correct time.

//rtc.setDOW(WEDNESDAY); // insertar dia
//rtc.setTime(22, 26, 0); // insertar hora (formato 24hr)
//rtc.setDate(25, 03, 2015); // insertar dia mes y año
}

void loop()
{
// Send Day-of-Week
Serial.print(rtc.getDOWStr());
Serial.print(" ");

// Send date
Serial.print(rtc.getDateStr());
Serial.print(" -- ");

// Send time
Serial.println(rtc.getTimeStr());

// Wait one second before repeating :)
delay (1000);
}                                                  

Go Up