Pantalla de leds de alta potencia para acuario

Pues he terminado el sketch para control de una pantalla de leds de alta potencia para iluminación de un acuario de 500 litros.

La pantalla exteriormente (la carcaza aún no terminada) es de madera contrachapada de 1 cm de espesor que contiene una pantalla de aluminio crudo de 130 cm x 13 cm con 3 circuitos de leds:

Son 20 leds blanco frío (6500k) en un primer circuito, 6 leds azules en un segundo circuito y 10 leds de diferentes colores que configuran un grupo que cubre el espectro de luz útil para el crecimiento de las plantas del acuario y las he llamado "de espectro total" o Full Spect.

Todos los leds son de 12v y 10w y los circuitos son en paralelo. En el sketch está extensamente comentado en el final del sketch.

Durante el día la iluminación se regula en intensidad de manera de imitar los efectos de amanecer, anochecer y luz de luna por la noche.

En la parte superior de la carcaza de madera lleva 4 ventiladores de 12v y 12 cm x 12 cm controlados por un Mosfet IRF520 que se activan a velocidades crecientes para mantener la temperatura de la base de aluminio de los leds por debajo de los 35 grados centígrados.

En un lateral del frontal de la carcaza de madera lleva un display TFT de 2,5' (340x480 píxeles) que muestra dos pantallas diferentes, una con un menú de datos, con un listado de todos los procesos y el estado de los mismos:

y una segunda pantalla como Fondo de Pantalla, una pantalla negra con un reloj digital:

Se conmutan ambos menús mediante un interruptor de tecla.
Perdonando la mala calidad de las fotografías, agregar que el sketch controla dos alimentadores automáticos que se activan cada uno dos veces al día y lleva dos pulsadores para activación manual de los mismos.

Registra 3 temperaturas, la temperatura ambiente, la temperatura del agua que pone en funcionamiento un calentador del acuario mediante un relé, y la temperatura de los leds que activa los ventiladores.

Exteriormente lleva un segundo interruptor de tecla que anula el automatismo en la iluminacion y pone todos los leds al 50% de intensidad de forma fija.

Aclarar que es mi primer proyecto "grande", hasta ahora he hecho pequeñas chapucillas, pero me he sentido capaz de meterme en este lío.

El sketch tiene unas 600 líneas, supongo que si alguno de los muchos "cerebritos" de Arduino que anda por aquí tiene la valentía de meterse a leerlo (y llega al final, claro, jajaja) lo mismo puede sugerirme alguna manera de acortar el sketch, y de paso aprender algo más.

Es que no quiero darlo por terminado y que se pueda hacer algo más funcional, correcto, válido o como sea. O sea que se aceptan opiniones constructivas, jeje.

Como el sketch excede los límites de tamaño aceptable lo pondré como archivo.ino en adjuntos

Iluminacion_Acuario.ino (37.8 KB)

Hola que tal estoy haciendo algo similar pero con un LCD 20x4 solo que quiero que mis led se prendan y apaguen gradualmente y durante cierto tiempo duren al 100% prendidos pero la verdad no tengo idea de como hacerlo o ya sea poder controlar el brillo con un pb pero que si se va la luz esta configuración permanezcan y no se "rsetie" el arduino y las luces queden en 0

Crea tu propio hilo en software, no desvíes la naturaleza de este hilo.

En el sketch que he puesto como adjunto hay dos funciones que hacen eso mismo, si lo bajas y lo miras las verás, en el setup se configuran los leds según la hora en que se resetee el arduino, y hay dos funciones, una para calcular cómo se realizará el aumento y disminución de la iluminación según la hora del día y la siguiente función que es la que realiza el aumento y disminución de la potencia lumínica de los leds.
Si inicias un nuevo post, aquí hay mucha gente que sabe mucho y te ayudará.

Hola AlbertoG1, mi nombre es Ramón y también ando liadillo en un proyecto parecido all tuyo pero con leds de 3w y un plantado. Pero tengo algunas dudas sobre los componentes a utilizar.

Sobre todo en el tema de la fuente de alimentación y arduino, quisiera realizar un encendido progresivo o amanecer-atardecer y variar la intensidad de la pantalla.
La fuente debe ser dimmeable??
Tengo mirado este modelo Mean Well HLG-240-48B.

Quisiera preguntar como lo hiciste en tu pantalla y así tener una pequeña guía. O donde puedo encontrar información.

Muchas gracias y un saludo.

ramon_rvence:
Hola AlbertoG1, mi nombre es Ramón y también ando liadillo en un proyecto parecido all tuyo pero con leds de 3w y un plantado. Pero tengo algunas dudas sobre los componentes a utilizar.

Sobre todo en el tema de la fuente de alimentación y arduino, quisiera realizar un encendido progresivo o amanecer-atardecer y variar la intensidad de la pantalla.
La fuente debe ser dimmeable??
Tengo mirado este modelo Mean Well HLG-240-48B.

Quisiera preguntar como lo hiciste en tu pantalla y así tener una pequeña guía. O donde puedo encontrar información.

Muchas gracias y un saludo.

Yo utilizo una fuente de alimentación de 12v DC y 30A, comprada a los chinos (no es dimmabe, eso hay que hacerlo por software), no solo alimenta la pantalla de leds (a potencia máxima son unos 30.000 lúmenes, aunque no la utilizo a esa intensidad) sino que hacen funcionar dos alimentadores, 3 ventiladores para controlar la temperatura de la pantalla, pero además la utilizo para alimentar otros automatismos del acuario, como una electro bomba de agua, bombas de fertilizantes etc..

No sé cuántos lúmenes planeas tener, ni la manera de conectar los leds de 3w, no es lo mismo ponerlos en paralelo que en serie, ese tipo de leds (de 3w) se suelen poner en serie, con lo cual los voltajes de cada led se suman (suelen ser de 3,4v DC cada uno), o ponerlos de a 4 en serie y luego varias series en paralelo, con lo cual puedes alimentarolos con una fuente de 12v DC.

La fuente que utilizo la tengo funcionando las 24 horas desde hace más de 2 años sin problemas, como es de 30A apenas si se calienta.

Todo depende de la cantidad de litros del acuario, si quieres un plantado pues necesitarás dependiendo del tipo de vegetación hasta 50 lúmenes por litro.

en el mensaje #1 explico un poco cómo lo he hecho y en archivo adjunto está el Sketch de Arduino donde puedes ver las rutinas para hacer el efecto amanecer y anochecer.

Te recomiendo ver unos vídeos de Youtube de "AMIYOLED" donde está muy bien explicado el tema de los circuitos, en uno de ellos comenta un aparatito que es el TC420 que se programa por ordenador, tiene 5 salidas de hasta 4A por salida y yo lo utilicé bastante tiempo hasta meterme en este "universo" de Arduino,jeje

Respecto de tu proyecto, albertoG1, lo he mirado de forma muy somera y si funciona bien, poco hay que decir, más que enhorabuena.
Tan solo que veo que estás utilizando un softwareserial, lo que es un desperdicio de recursos y memoria teniendo en cuenta que estás utilizando un mega.
Luego, si tienes humor y ganas, estaría fenomenal convertir el proyecto a POO, lo que lo haría probablemente más compacto y seguro que más adaptable para otros parámetros. Pero como te digo, tratándose de un proyecto personal, lo importante es que a ti te funcione; y al parecer ya es así.

noter:
Respecto de tu proyecto, albertoG1, lo he mirado de forma muy somera y si funciona bien, poco hay que decir, más que enhorabuena.
Tan solo que veo que estás utilizando un softwareserial, lo que es un desperdicio de recursos y memoria teniendo en cuenta que estás utilizando un mega.
Luego, si tienes humor y ganas, estaría fenomenal convertir el proyecto a POO, lo que lo haría probablemente más compacto y seguro que más adaptable para otros parámetros. Pero como te digo, tratándose de un proyecto personal, lo importante es que a ti te funcione; y al parecer ya es así.

Pues esperaba algún comentario de este tipo, lo que es la pantalla de leds está funcionando hace ahora 2 meses, todo estable y sin problemas, pero no sé lo que es "POO", estoy terminando el resto de controladores del acuario, que es aún algo más complejo que este de la iluminación y lo mismo sería bueno conocer alternativas.

¿Podrías ampliar un poco el tema?

POO (programación orientada a objetos). El salto de la programación estructurada a la orientada a objetos requiere un cambio de planteamiento del punto de vista de los problemas; pero si lo das, verás que es una forma de obtener programas mucho más fáciles de adaptar, mantener y reutilizar. No te engaño: el aprender a manejar POO en C++ requiere esfuerzo, pero los beneficios merecen muchísimo la pena. Piensa, por ejemplo, en cómo manejas las librerías, sin necesidad de conocer todo el código interno que tienen.