Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: Es posible que esta función no esté disponible en algunos navegadores.
hola lo unico que cambia es esta lineaya ya, no es serial, pero tiene al menos 4 lineas no?? y se configuraria igual que la de 2 lineas no??
hola lo unico que cambia es esta linea
lcd.begin(16, 2); cambias el dos que son las lineas por un 4 y el 16 por 20 columnas quedando asi
lcd.begin(20, 4);
y a la hora de escribir en el lcd
lcd.setCursor(0,0);
Serial.print ("linea 1 o cero");
lcd.setCursor(0,1);
Serial.print ("linea 2 o uno");
lcd.setCursor(0,2);
Serial.print ("linea 3 o dos");
lcd.setCursor(0,3);
Serial.print ("linea 4 o tres");
otra cosa un consejo cundo escribais el codigo rellenar toda la linea con espacios asi tapais todo lo que hay debajo y evitais cosas raras
ejemplo:
Serial.print (" linea 4 o tres ");
queda centrado y no aparece nada debajo y evitas un borrado de pantalla.
un saludo
if (hour >= 10 && minute >=05)
Se encienden, entiendo que al poner == es para realizar la accion en esa hora justa y si se ha pasado no hace nada y al poner >= quere decir en esa hora o superior????
Tengo que cambiar los == por >= para que si se va la luz, al encender continue en la fase que corresponde?.
Saludos
D4n1, tienes razon, cada ciclo empieza con el amanecer, pero no desde cero, desde la ultima fase que le toca por la hora, entonces entiendo que si pongo los horarios con el formato que dices eso no pasa, pero tengo que poner todas las horas del dia o solo en las que hago cambios de luz?
Saludos
jmerino es para mi la pregunta?
hola.
estoy viendo que cada vez que querais cambiar la hora necesitasis utilizar el ordenador?
/////////////////////////////////////////////////
// MY CHARCA V 1.04
////////////////////////////////////////////////
/*Pines(I/O)
D0 -
D1 -
D2 - SONDA TEMPERATURA
D3 - LED BLANCO 1 PWM
D4 - RELE 1 LEDS BLANCOS
D5 - LED BLANCO 2 PWM
D6 - LED AZUL 1 PWM
D7 - RELE 2 LEDS ROJOS
D8 - RELE 4 LEDS AZULES
D9 - RELE 3 VENT LED 1 LED 2
D10 - LED ROJO PWM
D11 - LED AZUL 2 PWM
D12 - lcontrolv
D13 - RELE 3 VENT LED 1 LED 2
A0 - BOTON 1 (MENU-INFO-MANTENIMIENTO)
A1 - BOTON 2 (SELECCION)
A2 - ALTAVOZ
A3 - lcontrolr
A4 - BUS I2C-SDA RELOJ
A5 - BUS I2C-SCL RELOJ
SPI - LCD
SENSORES TEMPERATURA, LEDS (0,1) ACUARIO (2)
MENUS BOTONES
-PULSANDO 1 VEZ BOTON MENU (//info//lcd)
-PULSANDO SIN SOLTAR BOTON MENU (PAUSA)
-PULSANDO 1 VEZ BOTON SELECCION (MANTENIMIENTO --> BOMBA RETORNO+BOMBA MOVIMIENTO OFF)
-PULSANDO SIN SOLTAR BOTON SELECCION (MENU RELES)
-PULSANDO BOTON1 Y BOTON2 (AJUSTE FECHA Y HORA)
*/
#include <OneWire.h> //temperatura
#include <DallasTemperature.h> //temperatura
#include <Wire.h> //I2C
#include <pitches.h>//Sonido
//Variables
#define ONE_WIRE_BUS 2//temperatura
OneWire oneWire(ONE_WIRE_BUS);//temperatura
DallasTemperature sensors(&oneWire);
#define DS1307_I2C_ADDRESS 0x68
//Pines (I/O)
int lblanco = 3;
int rele1 = 4;
int lblanco2 = 5;
int lazul = 6;
int rele2 = 7;
int rele4 = 8;
int rele3 = 9;
int lrojo = 10;
int lazul2 = 11;
int lcontrolv = 12;
int boton1 = 14;
int boton2 = 15;
int altavoz = 16;
int lcontrolr = 17;
//Variables programa
int inicio = 0;//Pausa antes de iniciar
int error = 0; // Variable para errores
int vboton1;//Valor boton
int vboton2;//Valor boton2
int vventilador = 0;//Valor ventilador 1
int vventilador2 = 0;//Valor ventilador 2
int vhora = 0;//Valor Hora
int vminuto = 0;//Valor minuto
int programa = 0;//Numero programa
// Convierte números normales decimales a BCD (binario decimal codificado)
byte decToBcd(byte val)//RELOJ
{
return ( (val/10*16) + (val%10) );
}
// Convierte BCD (binario decimal codificado) a números normales decimales
byte bcdToDec(byte val)//RELOJ
{
return ( (val/16*10) + (val%16) );
}
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;//RELOJ
int amanecer = 0;
int anochecer = 0;
///SETUP////
void setup()
{
//Control de pines I/O//
pinMode(lcontrolv,OUTPUT);// LED CONTROL VERDE
pinMode(lblanco,OUTPUT);// LED BLANCO PWM
pinMode (rele1, OUTPUT);// LED BLANCO ON/OFF
pinMode (lblanco2,OUTPUT);// LED BLANCOS 2 PWM
pinMode (lazul, OUTPUT);// LED AZUL PWM
pinMode (rele2, OUTPUT);// LED ROJO ON/OFF
pinMode (rele3, OUTPUT);// VENTILADOR FOCOS ON/OFF
pinMode (rele4, OUTPUT);// LED AZUL ON/OFF
pinMode (lrojo, OUTPUT);// LED ROJO PWM
pinMode (lazul2, OUTPUT);// LED AZUL2 PWM
pinMode (boton1, INPUT);
pinMode (boton2, INPUT);
pinMode (altavoz, OUTPUT);
pinMode (lcontrolr, OUTPUT);// LED CONTROL ROJO
//Otros //
Wire.begin();//I2C
Serial.begin(9600);//LCD
sensors.begin();//Temperatura
}
void loop() // run over and over again
{
ledvoff();
delay(1500);
getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); // LEEMOS LA HORA
ledvon();
menu();//Menu config manual boton1 + boton2
if (vminuto != minute)// ESTE BUCLE LO HACE SOLO 1 VEZ POR MINUTO
{
if (inicio == 0)//Para evitar que nada mas ecender el control pase por el bucle ya que da problemas de sondas lecturas raras
{
inicio = 1;
vminuto=minute;
sensors.getTempCByIndex(0);
sensors.getTempCByIndex(1);
sensors.getTempCByIndex(2);
//lcd.init();
//lcdini();
Serial.print("Inicializando");
Serial.print("Dispositivos");
p();
//lcdoff();
}
else
{
vminuto=minute;
luces(); // FASES ILUMINACION
ctemp(); //Control de temperatura si agua >28º o luz >60ºERROR y apaga luces, VENTILADOR
}
}
if (vhora !=hour)// ESTE BUCLE LO HACE SOLO 1 VEZ A LA HORA DE 8:00 A 23:00
{
vhora=hour;
//infolcd(); //Informacion cada hora en pantalla lcd EN EL MINUTO 1
}
errores();
}
// Establece la fecha y el tiempo del ds1307
void getDateDs1307(byte *second,
byte *minute,
byte *hour,
byte *dayOfWeek,
byte *dayOfMonth,
byte *month,
byte *year)
{
// Resetea el registro puntero
Wire.beginTransmission(DS1307_I2C_ADDRESS);
Wire.send(0);
Wire.endTransmission();
Wire.requestFrom(DS1307_I2C_ADDRESS, 7);
// Alguno de estos necesitan enmascarar porque ciertos bits son bits de control
*second = bcdToDec(Wire.receive() & 0x7f);
*minute = bcdToDec(Wire.receive());
*hour = bcdToDec(Wire.receive() & 0x3f); // Need to change this if 12 hour am/pm
*dayOfWeek = bcdToDec(Wire.receive());
*dayOfMonth = bcdToDec(Wire.receive());
*month = bcdToDec(Wire.receive());
*year = bcdToDec(Wire.receive());
}
void setDateDs1307(byte second, // 0-59
byte minute, // 0-59
byte hour, // 1-23
byte dayOfWeek, // 1-7
byte dayOfMonth, // 1-28/29/30/31
byte month, // 1-12
byte year) // 0-99
{
Wire.beginTransmission(DS1307_I2C_ADDRESS);
Wire.send(0);
Wire.send(decToBcd(second)); // 0 a bit 7 inicia el reloj
Wire.send(decToBcd(minute));
Wire.send(decToBcd(hour)); // Si usted quiere 12 hora am/pm usted tiene que poner el
// bit 6 (tambien tiene que cambiar readDateDs1307)
Wire.send(decToBcd(dayOfWeek));
Wire.send(decToBcd(dayOfMonth));
Wire.send(decToBcd(month));
Wire.send(decToBcd(year));
Wire.endTransmission();
}
// Sonido cuando hay una accion
void saccion()
{
//if (hour >7 & hour <23)
//{
for (long i = 0; i < 400 * 1000L; i += 714 * 2) {
digitalWrite(altavoz, HIGH);
delayMicroseconds(314);
digitalWrite(altavoz, LOW);
delayMicroseconds(314);
}
//}
}
void saccionx ()
{
if (hour >7 & hour <23)
{
for (int rep = 0; rep < 2 ; rep++) {
for (long i = 0; i < 500 * 900L; i += 1615 * 2) {
digitalWrite(altavoz, HIGH);
delayMicroseconds(1615);
digitalWrite(altavoz, LOW);
delayMicroseconds(1615);
}
for (long i = 0; i < 400 * 1000L; i += 714 * 2) {
digitalWrite(altavoz, HIGH);
delayMicroseconds(914);
digitalWrite(altavoz, LOW);
delayMicroseconds(914);
}
}
}
}
// Sonido cuando hay un error
void xserror ()
{
if (hour >7)
{
for (int rep = 0; rep < 4 ; rep++) {
for (long i = 0; i < 300 * 1000L; i += 1915 * 2) {
digitalWrite(altavoz, HIGH);
delayMicroseconds(1915);
digitalWrite(altavoz, LOW);
delayMicroseconds(1915);
}
for (long i = 0; i < 400 * 1000L; i += 1014 * 2) {
digitalWrite(altavoz, HIGH);
delayMicroseconds(1014);
digitalWrite(altavoz, LOW);
delayMicroseconds(1014);
}
}
}
}
void serror()
{}
// Pausa 3 segundos
void p ()
{
delay (3000);
}
// Led verde control on
void ledvon()
{
digitalWrite(lcontrolv, HIGH);
}
// Led verde control off
void ledvoff()
{
digitalWrite(lcontrolv, LOW);
}
// Led rojo control on
void ledron()
{
ledvoff();
digitalWrite(lcontrolr, HIGH);
}
// Led rojo control off
void ledroff()
{
digitalWrite(lcontrolr, LOW);
}
//Control de iluminacion
void luces()
{
if (error != 2)//por si el error de temp max esta activa y apaga las luces que no las encienda este menu
{
if (hour >= 0 && minute > 35 && hour <= 6 && minute > 40 )//DESDE LAS 00 A LAS 06:40 RELES APAGADOS
ledvon();
{
digitalWrite(rele1,LOW);
digitalWrite(rele2,LOW);
digitalWrite(rele4,LOW);
}
ledvoff();
if (hour >= 6 && minute > 45 && hour <= 23 && minute > 55)//ENCIENDO RELES DESDE LAS 06:45 HASTA LAS 23
ledvon();
{
digitalWrite(rele1,HIGH);
digitalWrite(rele2,HIGH);
digitalWrite(rele4,HIGH);
}
ledvoff();
//AMANECERES
if (hour >= 6 && minute >= 50 && amanecer== 0)
{
ledvon();
for(int fadeValue = 0 ; fadeValue <= 5; fadeValue +=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
amanecer=1;
anochecer=0;
delay(180000);
}
ledvoff();
}
// A las 9 empiezan a encenderse los led blancos y azules y rojos 20%
if (hour >= 9 && amanecer== 0)
{
ledvon();
for(int fadeValue = 5 ; fadeValue <= 51; fadeValue +=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
amanecer=1;
anochecer=0;
delay(1500);
}
ledvoff();
}
// A las 9:30 empieza 40%
if (hour >= 9 && minute >= 30 && amanecer== 0)
{
ledvon();
for(int fadeValue = 51 ; fadeValue <= 102; fadeValue +=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
amanecer=1;
anochecer=0;
delay(1500);
}
ledvoff();
}
//A las 10 se encienden 60%
if (hour >= 10 && amanecer== 0)
{
ledvon();
for(int fadeValue = 102 ; fadeValue <= 153; fadeValue +=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
amanecer=1;
anochecer=0;
delay(1500);
}
ledvoff();
}
//A las 10:30 se encienden 80%
if (hour >= 10 && minute >= 30 && amanecer== 0)
{
ledvon();
for(int fadeValue = 153 ; fadeValue <= 204; fadeValue +=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
amanecer=1;
anochecer=0;
delay(1500);
}
ledvoff();
}
//A las 11 se encienden 100%
if (hour >= 11 && amanecer== 0)
{
ledvon();
for(int fadeValue = 204 ; fadeValue <= 255; fadeValue +=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
amanecer=1;
anochecer=0;
delay(1500);
}
ledvoff();
}
//A las 21 se apagan 80%
if (hour >= 21 && anochecer == 0)
{
ledvon();
for(int fadeValue = 255 ; fadeValue >= 204; fadeValue -=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
anochecer=1;
amanecer=0;
delay(1500);
}
ledvoff();
}
//A las 21:30 se apagan 60%
if (hour >= 21 && minute >= 30 && anochecer == 0)
{
ledvon();
for(int fadeValue = 204 ; fadeValue >= 153; fadeValue -=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
anochecer=1;
amanecer=0;
delay(1500);
}
ledvoff();
}
//A las 22 se apagan 40%
if (hour >= 22 && anochecer == 0)
{
ledvon();
for(int fadeValue = 153 ; fadeValue >= 102; fadeValue -=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
anochecer=1;
amanecer=0;
delay(1500);
}
ledvoff();
}
//A las 22:30 se apagan 20%
if (hour >= 22 && minute >= 30 && anochecer == 0)
{
ledvon();
for(int fadeValue = 102 ; fadeValue >= 51; fadeValue -=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
anochecer=1;
amanecer=0;
delay(1500);
}
ledvoff();
}
//A las 23 se apagan 1%
if (hour >= 23 && anochecer == 0)
{
ledvon();
for(int fadeValue = 51 ; fadeValue >= 5; fadeValue -=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
anochecer=1;
amanecer=0;
delay(1500);
}
ledvoff();
}
//DE 23:00 A 12:30 LUZ DE LUNA
if (hour >= 23 && minute >= 20 && anochecer == 0)
{
ledvon();
for(int fadeValue = 5 ; fadeValue >= 0; fadeValue -=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
anochecer=1;
amanecer=0;
delay(1500);
}
ledvoff();
}
// A LAS 00:15 LUNA 5%
if (hour >= 0 && minute >= 15 && anochecer == 0)
{
ledvon();
for(int fadeValue = 51 ; fadeValue >= 12; fadeValue -=1)
{
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
anochecer=1;
amanecer=0;
delay(1500);
}
ledvoff();
}
// A LAS 00:30 LUNA 0%
if (hour >= 0 && minute >= 30 && anochecer == 0)
{
ledvon();
for(int fadeValue = 12 ; fadeValue >= 0; fadeValue -=1)
{
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
anochecer=1;
amanecer=0;
delay(1500);
}
ledvoff();
}
}
}
/*
para hacer el efecto amanecer hay que empezar con las azules y a mitad de las azules ir dando blancas
se podria añadir algo de rojo... para el atardecer
como
nuevo metodo al comprobar la hora cada minuto una vez que llegue la hora (minuto exacto)de encender las luces con una variable que empiece por cero,
sumandole cada minuto x hasta que llegue a 255(sin pasarse)
variable=0;
if es la hora de encender{
if (variable>=255){//no hace nada
}else{
//aqui incrementa
//analogwrite......
variable=variable+6;}
}else if (si es la hora de apagar){
if (variable=<0){
}else{
//aqui resta
//analogwrite......
variable=variable-6;
if (variable==0){//analogwrite......}
}
}
*/
Esto ha de terminar con migo, casi a punto de hacer los cambios que me ha dicho D4n1, me ha dado por probar una cosa y por el momento funciona, ya no hace amaneceres en cada ciclo, lo que no se si está bien puesto o no, eso me lo tenéis que decir vosotros.
En el código de jmcadsl que es con el que estoy intentando hacer lo de las luces, me he dado cuenta que en su void luces tiene puesto en el primer “if” if (hour == 6 && minute > 50 && amanecer== 0), y luego dentro de la configuración, amanecer=1; y anochecer=0; pues me ha dado por poner en todos los “if” que aumentan la luz lo de amanecer==0 y luego en la configuración el resto.
Como seguro que me explico fatal, os pongo el código y si he puesto una burrada me lo decís
Este es el principal
//Control de iluminacion
void luces()
{
if (error != 2)//por si el error de temp max esta activa y apaga las luces que no las encienda este menu
{
if (hour >= 0 && minute > 35 && hour <= 6 && minute > 40 )//DESDE LAS 00 A LAS 06:40 RELES APAGADOS
ledvon();
{
digitalWrite(rele1,LOW);
digitalWrite(rele2,LOW);
digitalWrite(rele4,LOW);
}
ledvoff();
if (hour >= 6 && minute > 45 && hour <= 23 && minute > 55)//ENCIENDO RELES DESDE LAS 06:45 HASTA LAS 23
ledvon();
{
digitalWrite(rele1,HIGH);
digitalWrite(rele2,HIGH);
digitalWrite(rele4,HIGH);
}
ledvoff();
//AMANECERES
if (hour >= 6 && minute >= 50 && amanecer== 1)
{
ledvon();
for(int fadeValue = 0 ; fadeValue <= 5; fadeValue +=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
amanecer=2;
anochecer=0;
delay(180000);
}
ledvoff();
}
// A las 9 empiezan a encenderse los led blancos y azules y rojos 20%
if (hour >= 9 && amanecer== 2)
{
ledvon();
for(int fadeValue = 5 ; fadeValue <= 51; fadeValue +=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
amanecer=3;
anochecer=0;
delay(1500);
}
ledvoff();
}
// A las 9:30 empieza 40%
if (hour >= 9 && minute >= 30 && amanecer== 3)
{
ledvon();
for(int fadeValue = 51 ; fadeValue <= 102; fadeValue +=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
amanecer=4;
anochecer=0;
delay(1500);
}
ledvoff();
}
//A las 10 se encienden 60%
if (hour >= 10 && amanecer== 4)
{
ledvon();
for(int fadeValue = 102 ; fadeValue <= 153; fadeValue +=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
amanecer=5;
anochecer=0;
delay(1500);
}
ledvoff();
}
//A las 10:30 se encienden 80%
if (hour >= 10 && minute >= 30 && amanecer== 5)
{
ledvon();
for(int fadeValue = 153 ; fadeValue <= 204; fadeValue +=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
amanecer=6;
anochecer=0;
delay(1500);
}
ledvoff();
}
//A las 11 se encienden 100%
if (hour >= 11 && amanecer== 6)
{
ledvon();
for(int fadeValue = 204 ; fadeValue <= 255; fadeValue +=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
amanecer=0;
anochecer=1;
delay(1500);
}
ledvoff();
}
//A las 21 se apagan 80%
if (hour >= 21 && anochecer == 1)
{
ledvon();
for(int fadeValue = 255 ; fadeValue >= 204; fadeValue -=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
anochecer=2;
amanecer=0;
delay(1500);
}
ledvoff();
}
//A las 21:30 se apagan 60%
if (hour >= 21 && minute >= 30 && anochecer == 2)
{
ledvon();
for(int fadeValue = 204 ; fadeValue >= 153; fadeValue -=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
anochecer=3;
amanecer=0;
delay(1500);
}
ledvoff();
}
//A las 22 se apagan 40%
if (hour >= 22 && anochecer == 3)
{
ledvon();
for(int fadeValue = 153 ; fadeValue >= 102; fadeValue -=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
anochecer=4;
amanecer=0;
delay(1500);
}
ledvoff();
}
//A las 22:30 se apagan 20%
if (hour >= 22 && minute >= 30 && anochecer == 4)
{
ledvon();
for(int fadeValue = 102 ; fadeValue >= 51; fadeValue -=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
anochecer=5;
amanecer=0;
delay(1500);
}
ledvoff();
}
//A las 23 se apagan 1%
if (hour >= 23 && anochecer == 5)
{
ledvon();
for(int fadeValue = 51 ; fadeValue >= 5; fadeValue -=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
anochecer=6;
amanecer=0;
delay(1500);
}
ledvoff();
}
//DE 23:00 A 12:30 LUZ DE LUNA
if (hour >= 23 && minute >= 20 && anochecer == 6)
{
ledvon();
for(int fadeValue = 5 ; fadeValue >= 0; fadeValue -=1)
{
analogWrite(lblanco, fadeValue);
analogWrite(lblanco2, fadeValue);
analogWrite(lrojo, fadeValue);
anochecer=7;
amanecer=0;
delay(1500);
}
ledvoff();
}
// A LAS 00:15 LUNA 5%
if (hour >= 0 && minute >= 15 && anochecer == 7)
{
ledvon();
for(int fadeValue = 51 ; fadeValue >= 12; fadeValue -=1)
{
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
anochecer=8;
amanecer=0;
delay(1500);
}
ledvoff();
}
// A LAS 00:30 LUNA 0%
if (hour >= 0 && minute >= 30 && anochecer == 8)
{
ledvon();
for(int fadeValue = 12 ; fadeValue >= 0; fadeValue -=1)
{
analogWrite(lazul, fadeValue);
analogWrite(lazul2, fadeValue);
anochecer=0;
amanecer=1;
delay(1500);
}
ledvoff();
}
}
}