Este sentido te permite tener una percepción de la posición de la luz sol sobre la tierra, según esta vaya girando.
- Instalar Tarjeta: ------------------ by Spence Konde Más INFO.
- Instalar Librería: ------------------ by Adafruit Más INFO.
- Instalar Librería:
<EasyNeoPixels.h>
by Evelyn Masso Más INFO. - Instalar Librería:
<DS3232RTC.h>
by JChristensen Más INFO.
- Atiny85 * 1 Unidad.
- 3231RTC * 1 Unidad.
- WS2812 * 12 + 1 Opcional.
- Led RGB * 1 Unidad Opcional.
- 330 ohm * 3 Unidades.
- 33 uF * 1 Unidad.
- Y5019 * 1 Unidad.
- Battery 3.7 1000 mAh
Attiny85 | POWER | DS3231 | WS2812 |
---|---|---|---|
PIN4 GND | GND | GND | GND |
PIN5 VCC | VCC | 5V | 5V |
PB2 PCINT2 | - | SCL | - |
PB0 PCINT0 | - | SDA | - |
PB4 PCNINT4 | - | - | DATA |
Comentarios sobre las funciones y sus conexiones.
time_t t;
Tiempo en milisegudos de la hora actual.static time_t tLast;
Tiempo en milisegudos de la hora anterior.byte nPixel = 12
Numero de modulos WS2811.byte Hot = 255
Temperatura de la resistencia 0Cº a ~50Cº.
time_t t;
static time_t tLast;
...
..
.
bool timeChange(void)
{
t = now();
if (t != tLast) {
tLast = t;
return true;...
.
time_t compileTime(void);
...
..
.
//La fecha en el momento de la compilación es pasada por parámetro
//al reloj DS3231 para ajustar la nueva hora.
RTC.set(compileTime());
.
bool timeChange(void);
...
..
.
void rotationSolar(void)
{
if (timeChange)
{
status = TIME_CHANGE;
LedErrors();
onHot(); ......
.
- Ejemplo: if(17 != 16) ... retorna
TRUE
. - Ejemplo: if(17 != 17) ... retorna
FALSE
.
void LedErrors(void);
...
..
.
void LedErrors...
switch (status)
{
case WORK: setColor(0, 255, 0); // Green Color
break;
case TIME_COMPILE: ....
.
..
...
Tipo | Color | Parpadeo | Estado |
---|---|---|---|
Sistema | Verde | 1 | WORK |
Error Sistema | Rojo | 2 | TIME_COMPILE |
Error Sistema | Rojo | 3 | TIME_SET |
Error Sistema | Rojo | 4 | TIME_GET |
Sistema | Azul | 5 | TIME_CHANGE |
void setColor(int, int, int);
...
..
.
void setColor...
..
writeEasyNeoPixel(0, redValue, greenValue, blueValue);
delay(500);
writeEasyNeoPixel(0, LOW);
void offHot(void);
...
..
.
void offHot...
{
for (byte i = 0; i <= 5; i++)
{
writeEasyNeoPixel(i, LOW);...
.
..
...
void onHot(void);
void setHot(byte); //Heat ON
void rotationBegin(void); //Within the setup()
...
..
.
void setup() {
rotationBegin();
}
void rotationSolar(void);
...
..
.
void loop()
{
rotationSolar();
}
PASOS
- Asegurese de tener todo el hardware, conexiones, alimentación, tarjeta y librerías.
- Monte en una tarjeta de desarrollo las conexiones o ensamble una PCB.
- Ten cuidado con la alimentación.
- Añade un condensador electrolitico entre el PIN RESET y GND del programador.
- Asegurate de tener configurado el DS3231 ¿Tienes el reloj con la hora ajustada?
Descomenta estas líneas para ajustarlo con la hora de tu pc.
.
..
..
void rotationBegin(void)
{
// DESCOMMENT THIS LINE!
RTC.set(now());
// OR DESCOMMENT THIS LINE!
// RTC.set(compileTime());
...
..
.