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.
Usando ventiladores silenciosos los puedes tener siempre a plena potencia, de hecho yo los de la pantalla los sigo conectando y desconectando por relés.

Por cierto, el tema anterior no me he olvidado, es que no he tenido tiempo, a ver si luego en la hora de comer puedo echar un rato y explicar como resolví el problema de dejar la luz de luna solo un par de horas después de terminar el fotoperíodo.
Después del tiempo invertido terminaré ofreciendo una solución bastante buena para ventiladores dimeables aunque es un tiempo que quizás habría sido mejor invertir en otro tipo de mejoras más útiles por lo que dices tú. Bastaba gastar un poco más en un ventilador silencioso.
(02-05-2015, 05:09 PM)beleitor escribió: [ -> ]Perdona Antonio, no me he explicado nada bien.-nosweat.gif
Quería decir si se puede hacer que la luz de luna permanezca encendida dos horas despues del ocaso y que no estuviera encendida toda la noche.

A ver, te cuento la solución que yo opté en CAO y que se adecuara a mis necesidades sin tener que modificar la programación del fotoperiodo.

En el Cao1_Dimmer4Lz.cpp es donde se define mediante una matriz la luz máxima que habrá en cada una de las 12 zonas del fotoperíodo. Como tu y yo no queremos que durante la noche haya luz, sino que la luz de luna esté en solitario unas horas después de haber finalizado el fotoperiodo está claro que la luz de luna debe ocupar otra zona distinta de la 12 (que es la noche).

En mi caso uso dos canales (azul y blanco que tiene también los rojos), si usases el de rojo por separado solo tienes que meterlo y listo. Tampoco quería que el amanecer o anochecer tuviese efectos coloridos o cambios de tono diferentes ni nada de eso, simplemente que fuese un aumento o reducción de luz paulatina y continua, de todos los canales a la vez.

Como vamos a dejar varias de las últimas zonas del dimeo para solo la luz de luna, hay que incluir varias de las primeras zonas en el ciclo nocturno, esto es, que no tengan luz. Así haciendo unos simples cálculos puedes definir el fotoperiodo para que la luz realmente empiece cuando quieras y termine cuando quieras.

Mi matriz es la siguiente:

Código:
//         AZUL                ROJO                           AMBAR                        BLANCO
    //     =============       ==============                 ==============               ==============
    _Dimeo(0,  0,              0,                            0,                           0);
    // -----NOCHE-------
    _Dimeo(1,  0,              0,                            0,                           0);
    _Dimeo(2,  0,              0,                            0,                           0);
    _Dimeo(3,  0,              0,                            0,                           0);
    _Dimeo(4,  0,              0,                            0,                           0);
    _Dimeo(5,  _MaxAz_Diur/2,  0,                            0,                           _MaxBl_Diur/2);
    _Dimeo(6,  _MaxAz_Diur,    0,                            0,                           _MaxBl_Diur);
    // ------DIA -------
    _Dimeo(7,  _MaxAz_Diur,    0,                            0,                           _MaxBl_Diur);
    _Dimeo(8,  _MaxAz_Diur/2,  0,                            0,                           _MaxBl_Diur/2);
    _Dimeo(9,  _MaxAz_Noct,    0,                            0,                           0);
    _Dimeo(10, _MaxAz_Noct,    0,                            0,                           0);
    _Dimeo(11, _MaxAz_Noct,    0,                            0,                           0);
    _Dimeo(12, 0,              0,                            0,                           0); // Redundante Zona0 == Zona12

Tengo configurado en CAO que el amanecer comience a las 11:45 y la noche empiece a las 24:00... y realmente lo que ocurre es que amanece desde las 13:15 hasta las 14:15, anochece entre las 21:30 y 22:30 y luego está la luz de luna encendida entre las 22:30 y las 24:00 donde ya se apagan todas las luces.

Las zonas 0 y 12 son la noche, la 6 y 7 el día, y todo lo demás son las subzonas de amanecer y anochecer. Cada una de estas subzonas con mi configuración duran 0,5 horas. Por tanto el amanecer/anochecer será de 2,5 horas teóricas de las cuales durante la mañana 1,5 horas seguirá siendo de noche, 1 hora estará amaneciendo. Y por la noche 1 hora estará anocheciendo y luego 1,5 horas será de luz de luna.

Con esta filosofía el fotoperiodo sigue siendo configurable y puedes utilizar el software de CAO tal y cómo está, solo tienes que modificar esa matriz y configurarte el fotoperíodo en consecuencia.

Espero haberme explicado bien, es muy sencillo, más desde luego que andar con temporizadores y relés Big Grin
Una muy buena solución que difiere totalmente de las que yo propuse y además probada lista para cortar y pegar. -good.gif

¿Quedó totalmente solucionado el problema de las interferencias?
(06-05-2015, 09:43 AM)Antonio Castro escribió: [ -> ]Una muy buena solución que difiere totalmente de las que yo propuse y además probada lista para cortar y pegar. -good.gif

¿Quedó totalmente solucionado el problema de las interferencias?

Separando todo lo que pude las conexiones de masa del regulador de tensión y los TIP141 (aunque compartan la masa común de la fuente de alimentación) han dejado de ocurrir. Me imagino que los condensadores del regulador de tensión soltarían alguna alta frecuencia que otra, pero de baja intensidad, que al separar el circuito en distancia y cables ya se disipan antes de llegar a los TIPs.
Bueno me alegro. Lo de las altas frecuencias desafía la lógica de los que no somos expertos.-happy.gif
Gracias Agamenon, probare la solucion que me indicas pero adaptada a cuatro canales de dimeo.
Con respecto al dimeo de los ventiladores, habéis probado los ventiladores con función pwm integrada en el mismo ventilador?
(07-05-2015, 12:31 AM)beleitor escribió: [ -> ]Gracias Agamenon, probare la solucion que me indicas pero adaptada a cuatro canales de dimeo.
Con respecto al dimeo de los ventiladores, habéis probado los ventiladores con función pwm integrada en el mismo ventilador?

¿No sé lo que es eso, podrías poner un enlace?
¿No te referirás a los ventiladores que tienen un tercer cable y entregan la señal que indica la velocidad de rotación para poder controlarla?
Ese tercer cable es para controlar mediante dimeo de voltaje. Eso no te va a servir en arduino.
(07-05-2015, 12:52 PM)Agamenon escribió: [ -> ]Ese tercer cable es para controlar mediante dimeo de voltaje. Eso no te va a servir en arduino.

Aquí explica el uso que podría hacerse de ese tercer cable en los ventiladores usando Arduino. Se requiere usar una interrupción.

Cómo leer las revoluciones de un ventilador con Arduino
http://blog.bricogeek.com/noticias/ardui...n-arduino/

Ahora que lo pienso ese programa serviría tambien para leer un sensor de flujo de agua.
Los que yo digo tienen cuatro cables. positivo, negativo, rpm., y control pwm.
http://www.formfactors.org/developer%5Cs...M_Spec.pdf
No se si os servirá, esta en ingles.
Pues parece que en el interior llevarían un simple transistor de potencia y que continúan necesitando toda la lógica de control, que ha de ser externa. No los conocía, tendrán su razón de ser, pero no acierto a ver su utilidad.
El PWM es un modo de control. Es control por frecuencia. En lugar de variar el voltaje lo que se hace es dar ese voltaje a una determinada frecuencia. Es decir, si el voltaje final es de 24 v, por ejemplo, lo hace el pwm es activar la alimentación y desactivarla constantemente, de manera que se puede variar la velocidad de ese motor. Eso se lleva usando en el Slot (mi otro vicio inconfesable) años, y se consigue un control de los motores mucho más fino y estable.
Así que para un ventilador debe ser la leche.
He probado recientemente con un pequeño ventilador para cpu, es muy silencioso y funciona a pocas revoluciones. El control de velocidad desde cero hasta su máxima potencia presenta un problema en ese ventilador. En un PWM de 0 a 225 como el de Arduino necesita una potencia de 115 para arrancar. Una vez girando se puede bajar hasta 46 sin que se pare. Por debajo de 46. Por ello cuando proporciono potencias en 46 y 115 meto ocasionalmente un pulso de 225 durante 100 milisegundos por si estaba parado.
Yo supongo que en un ventilador capaz de alcanzar un elevado número de revoluciones, la regulación de su potencia admite un margen mayor que en uno pequeño pensado para funcionar a pocas revoluciones.
Para poder usar cualquier ventilador sin problemas he visto que es necesario parametrizar su funcionamiento con tres valores.

1) Potencia minima del motor para mantener su funcionamiento una vez en marcha.
2) Potencia minima para arrancar.
3) Potencia máxima, (para reducir su exceso fuerza en caso necesario).

Ademas de eso la frecuencia de dimeo la uso a 30Hz para evitar el posible efecto de zumbido que aparece en algunos ventioladores. Arduino te permite hilar muy fino en el control por software de cualquier dispositivo y creo que este es un buen ejemplo.
Interesa.
Me quedo por aquí a ver que se aprende-good.gif