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 = 12Numero de modulos WS2811.byte Hot = 255Temperatura 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 ONvoid 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());
...
..
.