#include <FastLED.h>
#define HAND_LED_DI 2
#define NUM_HAND_LEDS 60
#define HAND_LED_TYPE WS2812
#define HAND_LED_COLOUR_ORDER GRB
CRGB hand_LEDs[NUM_HAND_LEDS];
CRGB secColour = CRGB::CRGB::Green;
CRGB minColour = CRGB::CRGB::Red;
CRGB horColour = CRGB::CRGB::Blue;
uint8_t secs = 0;
uint8_t mins = 0;
uint8_t hors = 0;
void increaseTime();
void blank_hand_LEDs();
void set_hand_LEDs(uint8_t secs, uint8_t mins, uint8_t hors);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
hand_LEDs.max
FastLED.addLeds<HAND_LED_TYPE, HAND_LED_DI, HAND_LED_COLOUR_ORDER>(hand_LEDs, NUM_HAND_LEDS);
}
void loop() {
// put your main code here, to run repeatedly:
blank_hand_LEDs();
uint8_t horsLED = hors*5 + mins/12;
set_hand_LEDs(secs,mins,horsLED);
FastLED.show();
increaseTime();
delay(100000);
}
void blank_hand_LEDs()
{
for (uint8_t i=0; i<NUM_HAND_LEDS; i++)
{
hand_LEDs[i] = CRGB::Black;
}
}
void set_hand_LEDs(uint8_t secs, uint8_t mins, uint8_t hors)
{
CRGB temp_secColour = secColour;
CRGB temp_minColour = minColour;
CRGB temp_horColour = horColour;
temp_secColour /= 3;
temp_minColour /= 3;
temp_horColour /= 3;
hand_LEDs[secs] += temp_secColour;
hand_LEDs[mins] += temp_minColour;
hand_LEDs[hors] += temp_horColour;
for (uint8_t i=0; i<NUM_HAND_LEDS; i++)
{
hand_LEDs[i] *= 3;
}
Serial.print("hand_LEDs[secs] = ");
Serial.print(hand_LEDs[secs],HEX);
Serial.print(" hand_LEDs[mins] = ");
Serial.print(hand_LEDs[mins],HEX);
Serial.print(" hand_LEDs[hors] = ");
Serial.print(hand_LEDs[hors],HEX);
Serial.println(" ");
}
void increaseTime()
{
secs++;
if (secs >= 60)
{
secs = 0;
mins++;
if (mins >= 60)
{
mins = 0;
hors++;
if (hors >= 12)
{
hors = 0;
}
}
}
Serial.print("Sec = ");
Serial.print(secs);
Serial.print(" Min = ");
Serial.print(mins);
Serial.print(" Hors = ");
Serial.print(hors);
Serial.println(" ");
}