Buenas a todos,
Estoy montando una pqueña pantalla que consta de 8 LED de 700ma en una sola serie y mi intención era hacer una programacion sencilla con Arduino para amanecer y anochecer. Para ello he adquirido:
- Arduino Mega
- Reloj DS1307
- Tip 141
- Resistencioa de 2,2
- Fuente para los LED de 24V
- Fuente para arduino de 9V
El esquema que voy a montar es este:
![[TodoMarino.com] Programa una serie de 8 LED [TodoMarino.com] Programa una serie de 8 LED](https://data.todomarino.com/attachments/23/23021-e48028c9a5580ca378aae15e26cd599a.jpg?hash=iW4sQ4b2HF)
Hasta aqui, todo claro, el problema viene con la programación. No tengo casi ni idea de programar, si entiendo algo y cosas sencillas pero no se muy bien como declarar ciertas cosas.
Encontré un post de Medina donde hacía algo parecido a lo que yo quiero y he copiado un trocito de codigo y lo he modificado para ver si me sirve, pero aun no puedo probarlo ya que no me ha llegado el arduino. Lo pongo aqui por si alguno de vosotros mil veces más entendido que yo me echa una mano que seguro que hay mil cosas mal.
Se que antes de esto debo poner en hora el reloj, pero eso lo haré siguiendo este manual que creo es bastante sencillo:
Saludos y mil gracias de antemano
Estoy montando una pqueña pantalla que consta de 8 LED de 700ma en una sola serie y mi intención era hacer una programacion sencilla con Arduino para amanecer y anochecer. Para ello he adquirido:
- Arduino Mega
- Reloj DS1307
- Tip 141
- Resistencioa de 2,2
- Fuente para los LED de 24V
- Fuente para arduino de 9V
El esquema que voy a montar es este:
![[TodoMarino.com] Programa una serie de 8 LED [TodoMarino.com] Programa una serie de 8 LED](https://data.todomarino.com/attachments/23/23021-e48028c9a5580ca378aae15e26cd599a.jpg?hash=iW4sQ4b2HF)
Hasta aqui, todo claro, el problema viene con la programación. No tengo casi ni idea de programar, si entiendo algo y cosas sencillas pero no se muy bien como declarar ciertas cosas.
Encontré un post de Medina donde hacía algo parecido a lo que yo quiero y he copiado un trocito de codigo y lo he modificado para ver si me sirve, pero aun no puedo probarlo ya que no me ha llegado el arduino. Lo pongo aqui por si alguno de vosotros mil veces más entendido que yo me echa una mano que seguro que hay mil cosas mal.
PHP:
#include <OneWire.h>
#include <Wire.h>
#include "RTClib.h" // Incluye la librería RTClib
RTC_DS1307 RTC; // Crea el objeto RTC
void setup()
pinMode(9, OUTPUT); // LED//ajudicamos esa salida a la serie (tip 141)
void loop()
{
Pot(minute, hour);// declaramos fase,tiempos , hora y minutos para la fase
void Pot(int minutos, int horas) {
///////////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
int PorcentLED;
int PasoLEDAM=MaxLED/(FinAmanecerLED-InicioAmanecerLED);
int PasoLEDPM=MaxLED/(FinAnochecerLED-InicioAnochecerLED);
int Tiempo;
Tiempo=horas*60+minutos;
if (Tiempo < 60)
{
Tiempo=Tiempo+1440;
}
// Tiempo=Tiempo-60; //Horario de Invierno
//Noche
if (Tiempo < InicioAmanecerLED )
{
PotLED=0;
}
//Amanecer
if (Tiempo >= InicioAmanecerAzul && Tiempo <= FinAmanecerAzul)
{
PotLED=(Tiempo-InicioAmanecerLED)*PasoLEDAM;
}
//Dia
if ((Tiempo > FinAmanecerLED) && (Tiempo < InicioAnochecerLED))
{
PotLED=MaxLED;
}
//Anochecer
if (Tiempo >= InicioAnochecerLED && Tiempo <= FinAnochecerLED)
{
PotLED=(FinAnochecerLED-Tiempo)*PasoLEDPM;
}
//Control
if(PotLED <0)
{
PotLED=0;
}
if(PotLED >MaxLED)
{
PotLED=MaxLED;
analogWrite(9, PotLED);
}
delay(1000);
} - See more at: https://todomarino.com/comunidad/showthread.php?119402-Pantalla-8-LED-con-Arduino/page4#sthash.gGgpVW53.dpuf
Se que antes de esto debo poner en hora el reloj, pero eso lo haré siguiendo este manual que creo es bastante sencillo:
Saludos y mil gracias de antemano