Paso 7: Código de Arduino
Abajo está el código que usé para el Arduino Uno.
Nunca he hecho ninguna codificación antes jugando con el Arduino, así que estoy seguro no es perfecto. Sin duda hay más elegantes maneras de obtener el mismo resultado pero esta funciona.
En el futuro voy a retocar el código para hacer cosas como agregar colores al azar u otros efectos de color. También podría añadir algo de código para tener en cuenta los cambios en la luz del día y horario de verano.
Por ahora los números se encienden cada noche con un color diferente. Y cada mañana apagará.
Aquí está el código:
Dibujo de números de casa
el bosquejo se inicia estableciendo el tiempo para el sábado a las 18:00
cada noche a las 18:00 las luces encenderse y mostrar la
color de la noche
cada mañana a las 6:00 que se apagarán las luces
#include "LPD8806.h" //library para tira de LED LPD8806
#include "SPI.h"
int dataPin = 2;
clockPin int = 3;
Tira de LPD8806 = LPD8806 (32, dataPin, clockPin);
#include < Time.h > //this es necesaria para conseguir capacidades de tiempo
#include < TimeAlarms.h >
void setup()
{
Poner en marcha la tira del LED
Strip.Begin();
Actualizar la faja, para empezar todos son 'off'
Strip.Show();
Serial.Begin(9600);
setTime(18,00,0,1,1,11); configurar tiempo al sábado 18:00 01 de enero de 2011
crear las alarmas
Alarm.alarmRepeat(dowSaturday,18,00,10,SaturdayOn); Esto establece la primera alarma en 18:00:10 sábados
Alarm.alarmRepeat(dowSunday,06,00,00,SundayOff); segunda alarma para luces de 6:00
Alarm.alarmRepeat(dowSunday,18,00,00,SundayOn);
Alarm.alarmRepeat(dowMonday,6,00,00,MondayOff);
Alarm.alarmRepeat(dowMonday,18,00,00,MondayOn);
Alarm.alarmRepeat(dowTuesday,6,00,00,TuesdayOff);
Alarm.alarmRepeat(dowTuesday,18,00,00,TuesdayOn);
Alarm.alarmRepeat(dowWednesday,6,00,00,WednesdayOff);
Alarm.alarmRepeat(dowWednesday,18,00,00,WednesdayOn);
Alarm.alarmRepeat(dowThursday,6,00,00,ThursdayOff);
Alarm.alarmRepeat(dowThursday,18,00,00,ThursdayOn);
Alarm.alarmRepeat(dowFriday,6,00,00,FridayOff);
Alarm.alarmRepeat(dowFriday,18,00,00,FridayOn);
Alarm.alarmRepeat(dowSaturday,6,00,00,SaturdayOff);
}
void loop() {}
digitalClockDisplay();
Alarm.Delay(1000); espera un segundo entre la visualización del reloj
}
funciones que se llama una alarma activa:
void SaturdayOn() {}
colorChase (de la tira. Color(0,127,127), 1000); el sábado enciende alarma y mostrar este color
}
void SundayOff() {}
colorChase (de la tira. Color(000,000,000), 1000); el domingo por la mañana apague la tira
}
void SundayOn() {}
colorChase (de la tira. Color(127,15,30), 1000);
}
void MondayOff() {}
colorChase (de la tira. Color(000,000,000), 1000);
}
void MondayOn() {}
colorChase (de la tira. Color(20,127,20), 1000);
}
void TuesdayOff() {}
colorChase (de la tira. Color(000,000,000), 1000);
}
void TuesdayOn() {}
colorChase (de la tira. Color(20,0,127), 1000);
}
void WednesdayOff() {}
colorChase (de la tira. Color(000,000,000), 1000);
}
void WednesdayOn() {}
colorChase (de la tira. Color(90,20,90), 1000);
}
void ThursdayOff() {}
colorChase (de la tira. Color(000,000,000), 1000);
}
void ThursdayOn() {}
colorChase (de la tira. Color(10,95,120), 1000);
}
void FridayOff() {}
colorChase (de la tira. Color(000,000,000), 1000);
}
void FridayOn() {}
colorChase (de la tira. Color(0,85,85), 1000);
}
void SaturdayOff() {}
colorChase (de la tira. Color(000,000,000), 1000);
}
void digitalClockDisplay()
{
reloj digital el tiempo
Serial.Print(hour());
printDigits(minute());
printDigits(second());
Serial.println();
}
void printDigits(int digits)
{
Serial.Print(":");
if(digits < 10)
Serial.Print('0');
Serial.Print(digits);
}
código para tira LED
{} void colorChase (uint32_t c, uint8_t espera)
int i;
para (i = 0; i < strip.numPixels(); i ++) {}
strip.setPixelColor (i, 0);
}
para (i = 0; i < strip.numPixels(); i ++) {}
strip.setPixelColor (i, c);
}
Strip.Show();
Delay(Wait);
}