Acuariofilia Madrid

Versión completa: Aula Arduino para principiantes.
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenos dias Antonio.
 
Llevo unos dias muy liado con el trabajo y no le estoy dedicando demasiado tiempo al Arduino.
 
He descargado tu libro, muy interesante, estoy leyéndolo con detenimiento.
 
Una pregunta sobre el dimer, en particular sobre el canal azul en los periódos 3 y 9; ¿no se puede mantener el azul en estos periodos?.
 
A mi no me acaba de gustar el efecto tan rojizo, pero bueno, son gustos.
 
Saludos, y ahora viene el salto al DUE, donde DavidMadrid despunta.
 
(15-10-2014, 09:57 AM)xavi escribió: [ -> ]Buenos dias Antonio.
 
Llevo unos dias muy liado con el trabajo y no le estoy dedicando demasiado tiempo al Arduino.
 
He descargado tu libro, muy interesante, estoy leyéndolo con detenimiento.
 
Una pregunta sobre el dimer, en particular sobre el canal azul en los periódos 3 y 9; ¿no se puede mantener el azul en estos periodos?.
 
A mi no me acaba de gustar el efecto tan rojizo, pero bueno, son gustos.
 
Saludos, y ahora viene el salto al DUE, donde DavidMadrid despunta.
 
Tranquilo Xavi no te agobies, nos pasa a todos. Yo he estado con la publicación del libro y voy con retraso en el mantenimiento de mis acuarios. Habría que automatizar el cambio de material filtrante del filtro y su limpieza, ja, ja, Big Grin

Es cierto el rojo llega a ser muy rojo a mi me gusta pero no es muy natural.
Lo primero que podrías intentar es disminuir el valor del parámetro "DimRoCrep". Yo he bajado el parámetro "DimAzNoct" por si mi plaga de cianofitas tiene algo que ver con eso. (lo que más tiene que ver es mi sustrato y que la cantidad de luz va algo justita.

Se puede configurar cualquier combinacion de color. Si mezclas azul y rojo generarás un color morado. Tambien puede combinar el rojo con ambar o mezclar varios en distinta proporción.

En las líneas que van de la 63 a la 84 del módulo Dimmer4Lz.cpp es donde se
mete en unas tablas los valores de dimeo para cada zona. Los valores están expresador en función de unos máximos que son parámetros del sistema y por lo tanto pueden ser configurados. Lo he intentado poner en la forma más legible posible pero no es muy intuitivo.

Dentro de cada una de las 12 zonas el valor del dimeo varía de forma lineal con el tiempo. Los valores en la tabla dibujan los puntos por los cuales va pasando esa gráfica formada por segmentos rectos.

No sé si ves como está hecho. Después de hacer cambios puedes ejecutar alguno de los testes y ver si crees que así te gusta más. Si logras una combinación que te guste más compártela.
Gracias por la respuesta.

Como puedes comprobar, tengo tu programa en "examen" constante. Lástima no tenga el sensor PH.

Me gusta mucho la suavidad y progresividad del amanecer.

Saludos

Hombre, mirando en el archivo Cao1_Dimmer4lz.ccp, las lineas que señalas, y el esquema de la página 100 del libro, me queda bastaste claro.

Que significa (_MaxRo_Crep+MaxRo_Diur)/2?. Se suman y divide por dos? Igual por eso se ve tan rojo. No?

Saludos.
(15-10-2014, 11:46 AM)xavi escribió: [ -> ]Gracias por la respuesta.

Como puedes comprobar, tengo tu programa en "examen" constante. Lástima no tenga el sensor PH.

Me gusta mucho la suavidad y progresividad del amanecer.

Saludos

Hombre, mirando en el archivo Cao1_Dimmer4lz.ccp, las lineas que señalas, y el esquema de la página 100 del libro, me queda bastaste claro.

Que significa (_MaxRo_Crep+MaxRo_Diur)/2?. Se suman y divide por dos? Igual por eso se ve tan rojo. No?

Saludos.

(_MaxRo_Crep+MaxRo_Diur)/2 es un dimeo situado a mitad de camino entre el máximo diurno y el máximo crepuscular. Una cosa que no he hecho es coger un papel milimetrado e intentar representarlo. Si tienes duda con un canal en alguna parte puedes dibujar una gráfica para verlo.
Se me acaba de ocurrir que si CAO1 tuviera un display gráfico se podría mostrar una gráfica para cada canal je, je.-nose.gif
hola antonio te comento asiendo estos cambios compila
#define Pin_DimLeds 3 // Pin dimeo
#define Pin_DimLeds02 4 // Pin dimeo
#define PinRefrigLeds 5 // Pin ventiladores Leds
#define PinRefrigLeds 6 // Pin ventiladores Leds
#define EP_MAXDIM 250 // 0..255
#define EP_MAXDIM02 250 // 0..255
#define EP_FTPERIOD 7200 // 12h
#define EP_FTPERIOD02 7200 // 12h
#define EP_ZENIT 9000 // a las 15:00
#define EP_ZENIT02 9000 // a las 15:00
#define EP_CREPUSC 450 // 45 min
#define EP_CREPUSC02 450 // 45 min
#define EP_DIMREFRIG 5 // máximo alor de Dimeo que desencadenaría refrigeracion
#define EP_DIMREFRIG02 6

// **************************
void Refresh(){
DateTime now = RTC.now();
uint32_t UnTi;

UnTi=now.unixtime();
//** Dimeo del primer canal (tambien gobierna un ventilador)
Dimmer.Ini(Pin_DimLeds, EP_MAXDIM, PinRefrigLeds, EP_DIMREFRIG, EP_FTPERIOD, EP_ZENIT, EP_CREPUSC );
Dimmer.UpdateDimeos();
//** Dimeo del segundo canal (sin gobernar nigún ventilador)
Dimmer.Ini(Pin_DimLeds02, EP_MAXDIM02, 0, EP_DIMREFRIG02, EP_FTPERIOD02, EP_ZENIT02, EP_CREPUSC02 );
Dimmer.UpdateDimeos();

Serial.println(now.UnixTime2StrTime(UnTi));
Serial.println(Dimmer.GetStrDimmer());
Serial.println();
}

ahora las preguntas los ventiladores eso esta para que se enciendan a la hora de las led o como ?
(15-10-2014, 09:56 PM)william escribió: [ -> ]hola antonio te comento asiendo estos cambios compila
#define Pin_DimLeds 3 // Pin dimeo
#define Pin_DimLeds02 4 // Pin dimeo
#define PinRefrigLeds 5 // Pin ventiladores Leds
#define PinRefrigLeds 6 // Pin ventiladores Leds
#define EP_MAXDIM 250 // 0..255
#define EP_MAXDIM02 250 // 0..255
#define EP_FTPERIOD 7200 // 12h
#define EP_FTPERIOD02 7200 // 12h
#define EP_ZENIT 9000 // a las 15:00
#define EP_ZENIT02 9000 // a las 15:00
#define EP_CREPUSC 450 // 45 min
#define EP_CREPUSC02 450 // 45 min
#define EP_DIMREFRIG 5 // máximo alor de Dimeo que desencadenaría refrigeracion
#define EP_DIMREFRIG02 6

// **************************
void Refresh(){
DateTime now = RTC.now();
uint32_t UnTi;

UnTi=now.unixtime();
//** Dimeo del primer canal (tambien gobierna un ventilador)
Dimmer.Ini(Pin_DimLeds, EP_MAXDIM, PinRefrigLeds, EP_DIMREFRIG, EP_FTPERIOD, EP_ZENIT, EP_CREPUSC );
Dimmer.UpdateDimeos();
//** Dimeo del segundo canal (sin gobernar nigún ventilador)
Dimmer.Ini(Pin_DimLeds02, EP_MAXDIM02, 0, EP_DIMREFRIG02, EP_FTPERIOD02, EP_ZENIT02, EP_CREPUSC02 );
Dimmer.UpdateDimeos();

Serial.println(now.UnixTime2StrTime(UnTi));
Serial.println(Dimmer.GetStrDimmer());
Serial.println();
}

ahora las preguntas los ventiladores eso esta para que se enciendan a la hora de las led o como ?
Antes tendrás que contarme algo más.
¿Los ventiladores van independientes para cada canal?
¿Los vas a dimear también?
si te pregunto por como estan en el dimer para saber como se van a comportar cuando los ponga por eso la pregunta yo con que se enciendan a la hora de la led esta bien
(15-10-2014, 11:24 PM)william escribió: [ -> ]si te pregunto por como estan en el dimer para saber como se van a comportar cuando los ponga por eso la pregunta yo con que se enciendan a la hora de la led esta bien

Código:
#define PinRefrigLeds      5       // Pin dimeo
#define EP_DIMREFRIG    5       // máximo valor de Dimeo que desencadenaría refrigeracion
(...)
Dimmer.Ini(Pin_DimLeds, EP_MAXDIM, PinRefrigLeds, EP_DIMREFRIG, EP_FTPERIOD, EP_ZENIT, EP_CREPUSC );
(...)
Dimmer.UpdateDimeos();

Todo eso finalmente se va a traducir en un dimeado y en un cambio de estado en la salida que activaría un rele para los ventilador.

Código:
analogWrite(_Pin, _Conv_Led_PWM_Exp2(_Dimeo) );
    if (_Dimeo>=_DimRefrig){ // Si el dimeo supera el limite ==> Refrigerar
        digitalWrite(_PinRefrig, HIGH);
    }
    else{
        digitalWrite(_PinRefrig, LOW);
    }

Si quisieras usar ventiladores con velocidad regulable en ese pin para ajustar la máxima potencia del ventilación tendrias que hacer.

Código:
analogWrite(_Pin, _Conv_Led_PWM_Exp2(_Dimeo) );
    if (_Dimeo>=_DimRefrig){ // Si el dimeo supera el limite ==> Refrigerar
        analogWrite(_PinRefrig, MAX_POT_VENTIL);
    }
    else{
        analogWrite(_PinRefrig, 0);
    }

Para ello tendrías que definir un valor máximo para MAX_POT_VENTIL mediante un #define
hola antonio mira yo lo que quiero saber como esta puesto en el dim me refiero a que cunado aranca el ventilador igual que los led o como

a ok que cuando el diemo llega al maximo ahi se pone el ventilador en marcha
hola antonio si puedes desirme como cambio el horario para el dime para que empieze a las 12 gracias
(16-10-2014, 10:59 AM)william escribió: [ -> ]hola antonio mira yo lo que quiero saber como esta puesto en el dim me refiero a que cunado aranca el ventilador igual que los led o como

a ok que cuando el diemo llega al maximo ahi se pone el ventilador en marcha

El valor que he sugerido para EP_DIMREFRIG e un valor de 5.
Para un dimeo de 5 ya se pondría en marcha el ventilador.

(16-10-2014, 04:11 PM)william escribió: [ -> ]hola antonio si puedes desirme como cambio el horario para el dime para que empieze a las 12 gracias

Ya me preguntaste eso y ya te respondí. Buscalo tú.
hola antonio mira a ver si esta correcto horas de luz 11 hora dimeo 1 hora y empezaria a las 12 o esta mal

#define Pin_DimLeds 3 // Pin dimeo
#define Pin_DimLeds02 4 // Pin dimeo
#define PinRefrigLeds 5 // Pin ventiladores Leds
#define PinRefrigLeds 6 // Pin ventiladores Leds
#define EP_MAXDIM 250 // 0..255
#define EP_MAXDIM02 250 // 0..255
#define EP_FTPERIOD 6600 // 11h
#define EP_FTPERIOD02 6600 // 11h
#define EP_ZENIT 10380 // a las 17:30
#define EP_ZENIT02 10380 // a las 17:30
#define EP_CREPUSC 600 // 60 min
#define EP_CREPUSC02 600 // 60 min
#define EP_DIMREFRIG 5 // máximo alor de Dimeo que desencadenaría refrigeracion
#define EP_DIMREFRIG02 6
Te remito a mi anterior respuesta.
si por eso los cambios pero te pregunto porque como tu sabes para no tener que quitar la pantalla del acuario