|
@@ -27,17 +27,6 @@ byte bcdToDec(byte val)
|
|
|
return( (val/16*10) + (val%16) );
|
|
return( (val/16*10) + (val%16) );
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-void setup()
|
|
|
|
|
-{
|
|
|
|
|
- Wire.begin();
|
|
|
|
|
- Serial.begin(9600);
|
|
|
|
|
- FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
|
|
|
|
|
- FastLED.setBrightness( BRIGHTNESS );
|
|
|
|
|
- count = 0;
|
|
|
|
|
- // set the initial time here:
|
|
|
|
|
- // DS3231 seconds, minutes, hours, day, date, month, year
|
|
|
|
|
- //setDS3231time(30,13,0,5,8,11,18);
|
|
|
|
|
-}
|
|
|
|
|
void setDS3231time(byte second, byte minute, byte hour, byte dayOfWeek, byte
|
|
void setDS3231time(byte second, byte minute, byte hour, byte dayOfWeek, byte
|
|
|
dayOfMonth, byte month, byte year)
|
|
dayOfMonth, byte month, byte year)
|
|
|
{
|
|
{
|
|
@@ -123,33 +112,6 @@ void displayTime()
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-void loop()
|
|
|
|
|
-{
|
|
|
|
|
- displayTime(); // display the real-time clock data on the Serial Monitor,
|
|
|
|
|
- readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month,
|
|
|
|
|
- &year);
|
|
|
|
|
- setLeds();
|
|
|
|
|
- FastLED.show();
|
|
|
|
|
- delay(1000); // every second
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-void setLeds(){
|
|
|
|
|
- clearAllLeds();
|
|
|
|
|
- /*
|
|
|
|
|
- leds[count] = CRGB::White;
|
|
|
|
|
- count++;
|
|
|
|
|
- if(count == NUM_LEDS)
|
|
|
|
|
- count = 0;
|
|
|
|
|
- */
|
|
|
|
|
-
|
|
|
|
|
- //byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
|
|
|
|
|
- setIt();
|
|
|
|
|
- setIs();
|
|
|
|
|
- setMinutes();
|
|
|
|
|
- setHours();
|
|
|
|
|
- setOclock();
|
|
|
|
|
-
|
|
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
void clearAllLeds(){
|
|
void clearAllLeds(){
|
|
|
for(int i = 0; i < NUM_LEDS; i++){
|
|
for(int i = 0; i < NUM_LEDS; i++){
|
|
@@ -168,80 +130,6 @@ void setIs(){
|
|
|
leds[3] = primaryColor;
|
|
leds[3] = primaryColor;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-void setMinutes(){
|
|
|
|
|
- if(minute < 3){
|
|
|
|
|
- //do nothing
|
|
|
|
|
- }
|
|
|
|
|
- else if(minute < 8){
|
|
|
|
|
- //5 past
|
|
|
|
|
- setFive();
|
|
|
|
|
- setMinutesLeds();
|
|
|
|
|
- setPast();
|
|
|
|
|
- }
|
|
|
|
|
- else if(minute < 13){
|
|
|
|
|
- //10 past
|
|
|
|
|
- setTen();
|
|
|
|
|
- setMinutesLeds();
|
|
|
|
|
- setPast();
|
|
|
|
|
- }
|
|
|
|
|
- else if(minute < 18){
|
|
|
|
|
- //Quarter past
|
|
|
|
|
- setQuarter();
|
|
|
|
|
- setPast();
|
|
|
|
|
- }
|
|
|
|
|
- else if(minute < 23){
|
|
|
|
|
- //20 past
|
|
|
|
|
- setTwenty();
|
|
|
|
|
- setMinutesLeds();
|
|
|
|
|
- setPast();
|
|
|
|
|
- }
|
|
|
|
|
- else if(minute < 28){
|
|
|
|
|
- //25 past
|
|
|
|
|
- setTwenty();
|
|
|
|
|
- setFive();
|
|
|
|
|
- setMinutesLeds();
|
|
|
|
|
- setPast();
|
|
|
|
|
- }
|
|
|
|
|
- else if(minute < 33){
|
|
|
|
|
- //half past
|
|
|
|
|
- setHalf();
|
|
|
|
|
- setPast();
|
|
|
|
|
- }
|
|
|
|
|
- else if(minute < 38){
|
|
|
|
|
- //25 to
|
|
|
|
|
- setTwenty();
|
|
|
|
|
- setFive();
|
|
|
|
|
- setMinutesLeds();
|
|
|
|
|
- setTo();
|
|
|
|
|
- }
|
|
|
|
|
- else if(minute < 43){
|
|
|
|
|
- //20 to
|
|
|
|
|
- setTwenty();
|
|
|
|
|
- setMinutesLeds();
|
|
|
|
|
- setTo();
|
|
|
|
|
- }
|
|
|
|
|
- else if(minute < 48){
|
|
|
|
|
- //Quarter to
|
|
|
|
|
- setQuarter();
|
|
|
|
|
- setTo();
|
|
|
|
|
- }
|
|
|
|
|
- else if(minute < 53){
|
|
|
|
|
- //10 to
|
|
|
|
|
- setTen();
|
|
|
|
|
- setMinutesLeds();
|
|
|
|
|
- setTo();
|
|
|
|
|
- }
|
|
|
|
|
- else if(minute < 58){
|
|
|
|
|
- //5 to
|
|
|
|
|
- setFive();
|
|
|
|
|
- setMinutesLeds();
|
|
|
|
|
- setTo();
|
|
|
|
|
- }
|
|
|
|
|
- else{
|
|
|
|
|
- //minutes = 58 or 59
|
|
|
|
|
- //do nothing
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
void setFive(){
|
|
void setFive(){
|
|
|
//five = leds 24-27
|
|
//five = leds 24-27
|
|
|
for(int i = 24; i < 28; i++){
|
|
for(int i = 24; i < 28; i++){
|
|
@@ -313,7 +201,7 @@ void setHours(){
|
|
|
if((hour == 3 && minute < 33) || (hour == 2 && minute >= 33)){
|
|
if((hour == 3 && minute < 33) || (hour == 2 && minute >= 33)){
|
|
|
//set 3
|
|
//set 3
|
|
|
for(int i = 47; i < 52; i++){
|
|
for(int i = 47; i < 52; i++){
|
|
|
- leds[i] = primaryCo"telemetry.enableTelemetry": falselor;
|
|
|
|
|
|
|
+ leds[i] = primaryColor;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
if((hour == 4 && minute < 33) || (hour == 3 && minute >= 33)){
|
|
if((hour == 4 && minute < 33) || (hour == 3 && minute >= 33)){
|
|
@@ -373,6 +261,81 @@ void setHours(){
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+void setMinutes(){
|
|
|
|
|
+ if(minute < 3){
|
|
|
|
|
+ //do nothing
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(minute < 8){
|
|
|
|
|
+ //5 past
|
|
|
|
|
+ setFive();
|
|
|
|
|
+ setMinutesLeds();
|
|
|
|
|
+ setPast();
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(minute < 13){
|
|
|
|
|
+ //10 past
|
|
|
|
|
+ setTen();
|
|
|
|
|
+ setMinutesLeds();
|
|
|
|
|
+ setPast();
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(minute < 18){
|
|
|
|
|
+ //Quarter past
|
|
|
|
|
+ setQuarter();
|
|
|
|
|
+ setPast();
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(minute < 23){
|
|
|
|
|
+ //20 past
|
|
|
|
|
+ setTwenty();
|
|
|
|
|
+ setMinutesLeds();
|
|
|
|
|
+ setPast();
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(minute < 28){
|
|
|
|
|
+ //25 past
|
|
|
|
|
+ setTwenty();
|
|
|
|
|
+ setFive();
|
|
|
|
|
+ setMinutesLeds();
|
|
|
|
|
+ setPast();
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(minute < 33){
|
|
|
|
|
+ //half past
|
|
|
|
|
+ setHalf();
|
|
|
|
|
+ setPast();
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(minute < 38){
|
|
|
|
|
+ //25 to
|
|
|
|
|
+ setTwenty();
|
|
|
|
|
+ setFive();
|
|
|
|
|
+ setMinutesLeds();
|
|
|
|
|
+ setTo();
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(minute < 43){
|
|
|
|
|
+ //20 to
|
|
|
|
|
+ setTwenty();
|
|
|
|
|
+ setMinutesLeds();
|
|
|
|
|
+ setTo();
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(minute < 48){
|
|
|
|
|
+ //Quarter to
|
|
|
|
|
+ setQuarter();
|
|
|
|
|
+ setTo();
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(minute < 53){
|
|
|
|
|
+ //10 to
|
|
|
|
|
+ setTen();
|
|
|
|
|
+ setMinutesLeds();
|
|
|
|
|
+ setTo();
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(minute < 58){
|
|
|
|
|
+ //5 to
|
|
|
|
|
+ setFive();
|
|
|
|
|
+ setMinutesLeds();
|
|
|
|
|
+ setTo();
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ //minutes = 58 or 59
|
|
|
|
|
+ //do nothing
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
void setOclock(){
|
|
void setOclock(){
|
|
|
if((minute < 3) || (minute >= 58)){
|
|
if((minute < 3) || (minute >= 58)){
|
|
|
for(int i = 86; i < 92; i++){
|
|
for(int i = 86; i < 92; i++){
|
|
@@ -380,3 +343,42 @@ void setOclock(){
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+void setLeds(){
|
|
|
|
|
+ clearAllLeds();
|
|
|
|
|
+ /*
|
|
|
|
|
+ leds[count] = CRGB::White;
|
|
|
|
|
+ count++;
|
|
|
|
|
+ if(count == NUM_LEDS)
|
|
|
|
|
+ count = 0;
|
|
|
|
|
+ */
|
|
|
|
|
+
|
|
|
|
|
+ //byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
|
|
|
|
|
+ setIt();
|
|
|
|
|
+ setIs();
|
|
|
|
|
+ setMinutes();
|
|
|
|
|
+ setHours();
|
|
|
|
|
+ setOclock();
|
|
|
|
|
+
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+void setup()
|
|
|
|
|
+{
|
|
|
|
|
+ Wire.begin();
|
|
|
|
|
+ Serial.begin(9600);
|
|
|
|
|
+ FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
|
|
|
|
|
+ FastLED.setBrightness(BRIGHTNESS);
|
|
|
|
|
+ count = 0;
|
|
|
|
|
+ // set the initial time here:
|
|
|
|
|
+ // DS3231 seconds, minutes, hours, day, date, month, year
|
|
|
|
|
+ //setDS3231time(30,13,0,5,8,11,18);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+void loop()
|
|
|
|
|
+{
|
|
|
|
|
+ displayTime(); // display the real-time clock data on the Serial Monitor,
|
|
|
|
|
+ readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);
|
|
|
|
|
+ setLeds();
|
|
|
|
|
+ FastLED.show();
|
|
|
|
|
+ delay(1000); // every second
|
|
|
|
|
+}
|