Programador para acuario (8 Relés) Primeros pasos
hola todos.
hace unos meses escribí un post para un proyecto de un programador para acuario con 8 relés.
por motivos personales tenido que suspender el proyecto, pero ahora lo retomo.
guiado por surbyte, en su momento adquirí un arduino mega2560, un rtc ds3231 y una pantalla táctil tft, además claro, el módulo de 8 relés y demás accesorios necesarios para conexiones y demás.
para practicar antes de meterme de lleno en este proyecto (estoy más verde que los colores de este foro)
he comenzado escribiendo un programita utilizando un arduino uno y el reloj ds3231.
primeramente conecté el ds3231 al arduino uno y sincronicé la hora. sin problemas. desconectado varias veces el rtc y mantiene la hora y en 2 días que llevo probando no atrasa ni adelanta.
a continuación escribí el siguiente programita que activa 7 pines (del pin 7 al pin13) distintas horas según el relé que debe ser activado. puesto comentarios antes de cada operador.
he hecho pruebas y parece que todos funcionan.
espero sugerencias, tal vez correcciones que serán bien recibidas.
si esto funciona, el paso siguiente sería comenzar con la pantalla táctil
bueno, ahi vá el código:
hace unos meses escribí un post para un proyecto de un programador para acuario con 8 relés.
por motivos personales tenido que suspender el proyecto, pero ahora lo retomo.
guiado por surbyte, en su momento adquirí un arduino mega2560, un rtc ds3231 y una pantalla táctil tft, además claro, el módulo de 8 relés y demás accesorios necesarios para conexiones y demás.
para practicar antes de meterme de lleno en este proyecto (estoy más verde que los colores de este foro)
he comenzado escribiendo un programita utilizando un arduino uno y el reloj ds3231.
primeramente conecté el ds3231 al arduino uno y sincronicé la hora. sin problemas. desconectado varias veces el rtc y mantiene la hora y en 2 días que llevo probando no atrasa ni adelanta.
a continuación escribí el siguiente programita que activa 7 pines (del pin 7 al pin13) distintas horas según el relé que debe ser activado. puesto comentarios antes de cada operador.
he hecho pruebas y parece que todos funcionan.
espero sugerencias, tal vez correcciones que serán bien recibidas.
si esto funciona, el paso siguiente sería comenzar con la pantalla táctil

bueno, ahi vá el código:
code: [select]
#include <ds3231.h>
#include <wire.h>
ds3231 clock;
byte year, month, date, dow, hour, minute, second;
void setup() {
// se inicial la interfaz i2c
wire.begin();
// se inicia la comunicación serial
pinmode(7,output);
pinmode(8,output);
pinmode(9,output);
pinmode(10,output);
pinmode(11,output);
pinmode(12,output);
pinmode(13,output);
serial.begin(9600);
}
void loop() {
delay(800);
//se rescata la información
clock.gettime(year, month, date, dow, hour, minute, second);
//se muestra solo hora, minutos y segundos:
serial.print(hour, dec);
serial.print(":");
serial.print(minute, dec);
serial.print(":");
serial.println(second, dec);
/* relay que enciende el circuito de leds de 3 watts de colores cuatro veces al día
* durante media hora las 12:00, 13:00, 14:00 y 15:00 hs. funciona con el pin 7*/
{
if (hour==12||hour==13||hour==14||hour==15)
if (minute<30)
{digitalwrite(7, high);
serial.println("funcionando----> leds de 3 watts de colores");}
}
/* relay que enciende la fuente de alimentación de 12 voltios y 30 amperios de
* la iluminación de leds del acuario durante 12 horas desde las 10 de la mañana
* hasta las 10 de la noche. está conectado al pin 8*/
{
if (hour>=10 && hour<22)
{digitalwrite(8, high);
serial.println("funcionando----> fuente de 12 voltios leds con efecto amanecer-anochecer");}
}
/*relay que enciende el solenoide de co2 durante 10 horas, desde las 10 de la mañana
* hasta las 8 de la noche, funciona con el pin 9*/
if (hour>=10 && hour<20)
{digitalwrite(9, high);
serial.println("funcionando----> solenoide de co2");}
/*relay que enciende la electrobomba y un agitador de líquidos (depósito del
*antialgas) durante 5 minutos cuatro veces al día:
*a las 12 de la noche, las 6 de la mañana, las 12 del mediodía y las 6 de la
*tarde. está conectado al pin 10*/
{
if (hour==0|hour==6||hour==12||hour==18)
if (minute<5)
{digitalwrite(10, high);
serial.println("funcionando----> electrobomba de agua y agitador");}
}
/*relay que enciende las bombas de administración de fertilizante y antialgas
* durante 15 segundos cuatro veces al día, exactamente en el momento en que el
* relay de la electrobomba se apaga, se activa con el pin 11*/
{
if (hour==0||hour==6||hour==12||hour==18)
if (minute==5)
if(second<15)
{digitalwrite(11, high);
serial.println("funcionando----> bombas peristalticas de fertilizante y antialgas");}
}
/* relay que enciende la lámpara germicida de 9 wats durante 4 horas 2 veces al día
* se enciende las 8 de la mañana y las 8 de la noche y se activa con el pin 12*/
{
if (hour>=8 && hour<12 || hour>=20 && hour<24)
{digitalwrite(12, high);
serial.println("funcionando----> lampara germicida uv de 9 watt");}
}
/*relay que enciende los leds azules (luz de luna) desde las 10 de la noche hasta las
* 10 de la mañana. funciona con el pin 13 */
if (hour>=22 || hour<10)
{digitalwrite(13, high);
serial.println("funcionando----> luz de luna");}
}
asi por encima veo que activas muchas cosas pero no desactivas ninguna.
Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > Programador para acuario (8 Relés) Primeros pasos
arduino
Comments
Post a Comment