Después de un parón sin acuarios marinos, voy a montar un pequeño acuario de 23 litros para algunos corales y poco más, concretamente un fluval edge y estoy cambiando la pantalla que trae por una LED.
Mi idea es poner 8 LED dimeables ya que al 100% es muuuucha potencia.
Ya que me propongo dimearlos, he pensado trastear con arduino sencillito con un "ARDUINO UNO" y así hacer encendido y apagado progresivo, el problema que no tengo ni idea de arduino, solo lo que leo por aquí.
Mi intención es montar este esquema:
Ahora vienen mis dudas:
1º ¿El esquema es correcto? creo que usaré LED de 3w y 700ma
2º Puedo usar una sola fuente de alimentación de 12V y 10A para alimentar a la vez los LED y la placa Arduino sacando dos cables?
3º Ando muy perdido con el código para el arduino y el reloj, supongo que copiare el de alguno de los que vosotros tenéis. Si alguien tiene uno ya hecho, agradezco me lo comparta
Gracias a todos de antemano!!
***ACTUALIZACION 05/04/2014
Ya tengo el código funcionando a la espera de conectarlo a los LED y ver si lo que me sale por el Serial Monitor de Arduino es correcto. Es bastante sencillo ya que de momento solo quiero programar las luces para simular amanecer y anochecer:
Mi idea es poner 8 LED dimeables ya que al 100% es muuuucha potencia.
Ya que me propongo dimearlos, he pensado trastear con arduino sencillito con un "ARDUINO UNO" y así hacer encendido y apagado progresivo, el problema que no tengo ni idea de arduino, solo lo que leo por aquí.
Mi intención es montar este esquema:
Ahora vienen mis dudas:
1º ¿El esquema es correcto? creo que usaré LED de 3w y 700ma
2º Puedo usar una sola fuente de alimentación de 12V y 10A para alimentar a la vez los LED y la placa Arduino sacando dos cables?
3º Ando muy perdido con el código para el arduino y el reloj, supongo que copiare el de alguno de los que vosotros tenéis. Si alguien tiene uno ya hecho, agradezco me lo comparta
Gracias a todos de antemano!!
***ACTUALIZACION 05/04/2014
Ya tengo el código funcionando a la espera de conectarlo a los LED y ver si lo que me sale por el Serial Monitor de Arduino es correcto. Es bastante sencillo ya que de momento solo quiero programar las luces para simular amanecer y anochecer:
PHP:
#include <Wire.h>
#include "RTClib.h"
#include <OneWire.h>
RTC_DS1307 RTC; // Crea el objeto RTC
void setup ()
{
Serial.begin(9600); // Establece la velocidad de datos del puerto serie
Wire.begin(); // Establece la velocidad de datos del bus I2C
RTC.begin();// Establece la velocidad de datos del RTC
//RTC.adjust(DateTime(__DATE__, __TIME__)); Solo lo habilitamos la primera vez para poner en hora el reloj
}
void loop () {
int minute;
int hour;
int tiempo;
DateTime now = RTC.now(); // Obtiene la fecha y hora del RTC
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.print("Dia de la semana: ");
Serial.println(now.dayOfWeek(), DEC);
tiempo=(now.hour()*60)+now.minute(); // Para que sea un numero entero lo medimos en minutos
if (tiempo < 60)
{
tiempo=tiempo+1440; // para cuando sean las 12 de la noche (00 horas)
}
Serial.println();
Serial.print("Tiempo: ");
Serial.println(tiempo);
delay(1000); // La información se actualiza cada 1 seg.
Luces (tiempo);
}
void Luces(int tiempo)
{
///////////tiempos de progamacion//////////
int PotLED;
int InicioAmanecerLED=720; //12:00
int FinAmanecerLED=780; //13:00 //
int InicioAnochecerLED=1320; //22:00//
int FinAnochecerLED=1380; //23:00//
int MaxLED=125; //Maximo que vamos a encender los LED sobre 255
//Noche
if (tiempo >FinAnochecerLED || tiempo < InicioAmanecerLED )
{
PotLED=0;
Serial.println();
Serial.print("NOCHE: ");
Serial.println(PotLED);
Serial.println();
}
//Amanecer
if (tiempo >= InicioAmanecerLED && tiempo <= FinAmanecerLED)
{
PotLED=map(tiempo,InicioAmanecerLED,FinAmanecerLED,0,MaxLED);
Serial.println();
Serial.print("AMANECIENDO: ");
Serial.println(PotLED);
Serial.println();
}
//Dia
if (tiempo > FinAmanecerLED && tiempo < InicioAnochecerLED)
{
PotLED=MaxLED;
Serial.println();
Serial.print("DIA: ");
Serial.println(PotLED);
Serial.println();
}
//Anochecer
if (tiempo >= InicioAnochecerLED && tiempo <= FinAnochecerLED)
{
PotLED=map(tiempo,InicioAnochecerLED,FinAnochecerLED,MaxLED,0);
Serial.println();
Serial.print("ANOCHECIENDO: ");
Serial.println(PotLED);
Serial.println();
}
//Control
if(PotLED < 0)
{
PotLED=0;
}
if(PotLED >MaxLED)
{
PotLED=MaxLED;
}
analogWrite(9, PotLED);
delay(1000);
}
Archivos adjuntos
Última edición: