Mi controlador

6 Ago 2012
7.576
Sevilla
Provincia
Sevilla
Buenas.

Por fin tengo terminado mi controlador de arduino. Controlará el amanecer, atardecer, luz de luna, usando tres canales, la temperatura, tanto de la pantalla como la del acuario, activando el calentador o los ventiladores, simulación de mareas, activando bombas alternativamente, la luz del sump y controlara el nivel del agua del sump. Estoy pendiente de implementarle algunas funciones mas, ya que tengo todavía pines libre.


Las fotos las pondré un poco mas adelante, ahora estoy en el curro y no puedo, jejeje.


De momento no esta montado en el acuario, ya que estoy esperando vender mi pantalla actual para poder comprar los leds de 100W de espectro completo (son carisimos y no me puedo permitir comprarlos sin haber vendido primero la actual). A ver si alguien se anima y la compra. Esta de p**a madre hecha, da, muy buena luz, y esta barata barata, jeje.

Un saludo peña

Un saludo
 
6 Ago 2013
47
talavera de la reina
Provincia
toledo
Hola, yo tambien tengo la pantalla con arduino , pero no se como hacer la secuencia de anochecer/amanecer solo los enciendo por grupos pero no se como hacer que suba la intensidas y baje. Como lo has hecho si no es mucho preguntar?
 
6 Ago 2012
7.576
Sevilla
Provincia
Sevilla
tienes que tener unas Fuentes compatibles con PWM, hay algunas que no valen
 
6 Ago 2013
47
talavera de la reina
Provincia
toledo
Hola, yo lo hago con los transistores tip141 y una fuente de 24 v pero quisiera saber el codigo fuente para cargarselo al arduino por q al programarlo siempre me repite la secuencia de subida y bajada y no respeta el tiempo
 
6 Ago 2012
7.576
Sevilla
Provincia
Sevilla
bueno pues todavia no lo voy a enseñar porque esta en progreso, ahora le voy a implementar un sistema de se seguridad para que apague la luz si la temperatura de la pantalla sube demasiado, de forma que si los ventiladores se apagan, no se quemen los leds.
 
6 Ago 2013
47
talavera de la reina
Provincia
toledo
bueno, la semana q biene te pongo el mio que estoy de vacaciones y no tengo ordenador, y asi me podeis corregir las cosas q se puedan mejorar puesto que no tengo mucha idea de programacion y lo he hecho como la cuenta de la vieja, pero en encendido y apagado por grupos me funciona otra cosa es el encendido progresivo q en eso si me podiais ayudar por q estoy un poco perdido y loco puesto que no doy con el tema
 
6 Ago 2013
47
talavera de la reina
Provincia
toledo
Bueno, este es mi codigo de dimeado si alguen me puede ayudar a mejorarlo lo agradeceria un monton


#include "Wire.h"
#define DS1307_I2C_ADDRESS 0x68

byte segundo,minuto,hora,diaSemana,diaMes,mes,anyo;

int sistema=13;

byte decBcd(byte val){
return((val/10*16)+(val%10));
}

byte bcdDec(byte val){
return((val/16*10)+(val%16));
}
void configurarTiempo(){
segundo=00;
minuto=24;
hora=14;
diaSemana=2;
diaMes=13;
mes=8;
anyo=13;
Wire.beginTransmission(DS1307_I2C_ADDRESS);
Wire.write(0x00);
Wire.write(decBcd(segundo));
Wire.write(decBcd(minuto));
Wire.write(decBcd(hora));
Wire.write(decBcd(diaSemana));
Wire.write(decBcd(diaMes));
Wire.write(decBcd(mes));
Wire.write(decBcd(anyo));
Wire.endTransmission();
}
void solicitarTiempo()
{
Wire.beginTransmission(DS1307_I2C_ADDRESS);
Wire.write(0x00);
Wire.endTransmission();
Wire.requestFrom(DS1307_I2C_ADDRESS,7);
segundo=bcdDec(Wire.read()&0x7f);
minuto=bcdDec(Wire.read());
hora=bcdDec(Wire.read()&0x3f);
diaSemana=bcdDec(Wire.read());
diaMes=bcdDec(Wire.read());
mes=bcdDec(Wire.read());
anyo=bcdDec(Wire.read());


Serial.print(hora,DEC);
Serial.print(":");
Serial.print(minuto,DEC);
Serial.print(":");
Serial.print(segundo,DEC);
Serial.print(" ");
Serial.print(diaMes,DEC);
Serial.print("/");
Serial.print(mes,DEC);
Serial.print("/");
Serial.print(anyo,DEC);
Serial.print(" ");
}

///////////////////////////////////////////////// LED GRUPO 1 ///////////////////////////////////////////////////////////

void incrementoLed(){
int luminosidad=0;
int led=12;

for (luminosidad=0; luminosidad <=255; luminosidad=luminosidad+1){
analogWrite(led,luminosidad);
delay(50);
//solicitarTiempo();
//Serial.println(" ");
}
}

void decrementoLed(){
int luminosidad=0;
int led=12;

for (luminosidad=255;luminosidad>=0;luminosidad=luminosidad-1){
analogWrite(led,luminosidad);
delay(50);
//solicitarTiempo();
//Serial.println(" ");
}
}

/////////////////////////////////////////////////////LED GRUPO 2 //////////////////////////////////////////////////////////

void incrementoLed2(){
int luminosidad=0;
int led2=11;

for (luminosidad=0; luminosidad <=255; luminosidad=luminosidad+1){
analogWrite(led2,luminosidad);
delay(50);
//solicitarTiempo();
//Serial.println(" ");

}
}

void decrementoLed2(){
int luminosidad=0;
int led2=11;

for (luminosidad=255;luminosidad>=0;luminosidad=luminosidad-1){
analogWrite(led2,luminosidad);
delay(50);
//solicitarTiempo();
//Serial.println(" ");
}
}

///////////////////////////////////////////////////////LED GRUPO 3/////////////////////////////////////////////
void incrementoLed3(){
int luminosidad=0;
int led3=10;

for (luminosidad=0; luminosidad <=255; luminosidad=luminosidad+1){
analogWrite(led3,luminosidad);
delay(50);
//solicitarTiempo();
//Serial.println(" ");
}
}

void decrementoLed3(){
int luminosidad=0;
int led3=10;

for (luminosidad=255;luminosidad>=0;luminosidad=luminosidad-1){
analogWrite(led3,luminosidad);
delay(50);
//solicitarTiempo();
//Serial.println(" ");
}
}

////////////////////////////////////////////////////////////LED GRUPO 4////////////////////////////////////////////////

void incrementoLed4(){
int luminosidad=0;
int led4=9;

for (luminosidad=0; luminosidad <=255; luminosidad=luminosidad+1){
analogWrite(led4,luminosidad);
delay(50);
//solicitarTiempo();
//Serial.println(" ");
}
}

void decrementoLed4(){
int luminosidad=0;
int led4=9;

for (luminosidad=255;luminosidad>=0;luminosidad=luminosidad-1){
analogWrite(led4,luminosidad);
delay(50);
//solicitarTiempo();
//Serial.println(" ");
}
}

////////////////////////////////////////////////////////////LED GRUPO 5////////////////////////////////////////////////////////////////

void incrementoLed5(){
int luminosidad=0;
int led5=8;

for (luminosidad=0; luminosidad <=255; luminosidad=luminosidad+1){
analogWrite(led5,luminosidad);
delay(50);
//solicitarTiempo();
//Serial.println(" ");
}
}

void decrementoLed5(){
int luminosidad=0;
int led5=8;

for (luminosidad=255;luminosidad>=0;luminosidad=luminosidad-1){
analogWrite(led5,luminosidad);
delay(50);
//solicitarTiempo();
//Serial.println(" ");
}
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void setup(){
Wire.begin();
Serial.begin(57600);
pinMode(sistema,OUTPUT);
digitalWrite(sistema,LOW);
//configurarTiempo();
}

//////////////////////////////////////////////////////////////SOLICITAR TIEMPO /////////////////////////////////////////////////////

void loop(){
delay(1000);
solicitarTiempo();
Serial.println(" ");

///////////////////////////////////////////////////////////ENCENDIDO GRUPO 1 BLANCOS////////////////////////////////////////////////////////

if(hora==14){
if(minuto==30){
if(segundo==0){
Serial.println("ENCENDIDO GRUPO 1");
incrementoLed();
}
}
}
if(hora==14){
if(minuto==41){
if(segundo==0){
Serial.println("APAGADO GRUPO 1");
decrementoLed();

}
}
}

/////////////////////////////////////////////////////////////ENCENDIDO GRUPO 2 BLANCOS///////////////////////////////////////////////////

if(hora==14){
if(minuto==32){
if(segundo==0){
Serial.println("ENCENDIDO GRUPO 2");
incrementoLed2();
}
}
}
if(hora==14){
if(minuto==39){
if(segundo==0){
Serial.println("APAGADO GRUPO 2");

decrementoLed2();

}
}
}

////////////////////////////////////////////////////////////////ENCENDIDO GRUPO 3 BLANCOS////////////////////////////////////////////////

if(hora==14){
if(minuto==35){
if(segundo==0){
Serial.println("ENCENDIDO GRUPO 3");

incrementoLed3();
}
}
}
if(hora==14){
if(minuto==37){
if(segundo==0){
Serial.println("APAGADO GRUPO 3");

decrementoLed3();

}
}
}

//////////////////////////////////////////////////////////////////ENCENDIDO GRUPO 4 AZULES///////////////////////////////////////////

if(hora==14){
if(minuto==41){
if(segundo==0){
Serial.println("ENCENDIDO GRUPO 4");

incrementoLed4();
}
}
}
if(hora==14){
if(minuto==47){
if(segundo==0){
Serial.println("APAGADO GRUPO 4");

decrementoLed4();

}
}

}
/////////////////////////////////////////////////////////////////ENCENDIDO GRUPO 5 AZULES///////////////////////////////////////////////////
if(hora==14){
if(minuto==43){
if(segundo==0){
Serial.println("ENCENDIDO GRUPO 5");

incrementoLed5();
}
}
}
if(hora==14){
if(minuto==45){
if(segundo==0){
Serial.println("APAGADO GRUPO 5");

decrementoLed5();

}
}
}

}
 
6 Ago 2012
7.576
Sevilla
Provincia
Sevilla
Bueno, esto se me esta complicando mas de lo que pensaba. Ya habia hecho el codigo y corria sin problema, pero no se podia modificar los parametros (hora de amanecer, oscurecer, encendido del sump, temp. max. y Min.....) asi que le estoy insertando un menu para poder configurar el arduino, pero es un coñazo que flipas.

Cuando este terminado lo pondre.
 
Arriba