I made a Neopixel clock with rainbow effect its working fine but without flashing dots. I make display 148 leds, 5 leds per segment *7 +2 leds for dots Total 37 leds for each digit.
I want to blink dots. This is my sketch.
#include <Adafruit_NeoPixel.h>
#include <Wire.h>
#include "RTClib.h"
#define PIN (6)
RTC_DS3231 rtc;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(148, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
// Setup the LED strip and RTC module.
strip.begin();
strip.show();
rtc.begin();
}
void loop() {
// Cycle the clock digits through rainbow colors.
rainbowCycle(100);
}
/* (Methods to un-set certain LEDs to form 7-segment digits.) */
void unsetTimeDigits() {
DateTime now = rtc.now();
flip_digits(now.hour() / 10, now.hour() % 10, now.minute() / 10, now.minute() % 10);
}
void flip_digits(int d1, int d2, int d3, int d4) {
// First digit.
flip_digit(111, d1);
// Second digit.
flip_digit(74, d2);
// Third digit.
flip_digit(37, d3);
// Fourth digit.
flip_digit(0, d4);
}
void flip_digit(int first_led, int val) {
if (val == 0) {
//strip.setPixelColor(first_led, 0);
strip.setPixelColor(first_led + 15, 0);
strip.setPixelColor(first_led + 16, 0);
strip.setPixelColor(first_led + 17, 0);
strip.setPixelColor(first_led + 18, 0);
strip.setPixelColor(first_led + 19, 0);
}
else if (val == 1) {
// strip.setPixelColor(first_led, 0);
strip.setPixelColor(first_led + 5, 0);
strip.setPixelColor(first_led + 6, 0);
strip.setPixelColor(first_led + 7, 0);
strip.setPixelColor(first_led + 8, 0);
strip.setPixelColor(first_led + 9, 0);
strip.setPixelColor(first_led + 10, 0);
strip.setPixelColor(first_led + 11, 0);
strip.setPixelColor(first_led + 12, 0);
strip.setPixelColor(first_led + 13, 0);
strip.setPixelColor(first_led + 14, 0);
strip.setPixelColor(first_led + 15, 0);
strip.setPixelColor(first_led + 16, 0);
strip.setPixelColor(first_led + 17, 0);
strip.setPixelColor(first_led + 18, 0);
strip.setPixelColor(first_led + 19, 0);
strip.setPixelColor(first_led + 25, 0);
strip.setPixelColor(first_led + 26, 0);
strip.setPixelColor(first_led + 27, 0);
strip.setPixelColor(first_led + 28, 0);
strip.setPixelColor(first_led + 29, 0);
strip.setPixelColor(first_led + 30, 0);
strip.setPixelColor(first_led + 31, 0);
strip.setPixelColor(first_led + 32, 0);
strip.setPixelColor(first_led + 33, 0);
strip.setPixelColor(first_led + 34, 0);
}
else if (val == 2) {
strip.setPixelColor(first_led + 10, 0);
strip.setPixelColor(first_led + 11, 0);
strip.setPixelColor(first_led + 12, 0);
strip.setPixelColor(first_led + 13, 0);
strip.setPixelColor(first_led + 14, 0);
strip.setPixelColor(first_led + 20, 0);
strip.setPixelColor(first_led + 21, 0);
strip.setPixelColor(first_led + 22, 0);
strip.setPixelColor(first_led + 23, 0);
strip.setPixelColor(first_led + 24, 0);
}
else if (val == 3) {
strip.setPixelColor(first_led + 10, 0);
strip.setPixelColor(first_led + 11, 0);
strip.setPixelColor(first_led + 12, 0);
strip.setPixelColor(first_led + 13, 0);
strip.setPixelColor(first_led + 14, 0);
strip.setPixelColor(first_led + 30, 0);
strip.setPixelColor(first_led + 31, 0);
strip.setPixelColor(first_led + 32, 0);
strip.setPixelColor(first_led + 33, 0);
strip.setPixelColor(first_led + 34, 0);
}
else if (val == 4) {
strip.setPixelColor(first_led + 5, 0);
strip.setPixelColor(first_led + 6, 0);
strip.setPixelColor(first_led + 7, 0);
strip.setPixelColor(first_led + 8, 0);
strip.setPixelColor(first_led + 9, 0);
strip.setPixelColor(first_led + 25, 0);
strip.setPixelColor(first_led + 26, 0);
strip.setPixelColor(first_led + 27, 0);
strip.setPixelColor(first_led + 28, 0);
strip.setPixelColor(first_led + 29, 0);
strip.setPixelColor(first_led + 30, 0);
strip.setPixelColor(first_led + 31, 0);
strip.setPixelColor(first_led + 32, 0);
strip.setPixelColor(first_led + 33, 0);
strip.setPixelColor(first_led + 34, 0);
}
else if (val == 5) {
strip.setPixelColor(first_led , 0);
strip.setPixelColor(first_led + 1, 0);
strip.setPixelColor(first_led + 2, 0);
strip.setPixelColor(first_led + 3, 0);
strip.setPixelColor(first_led + 4, 0);
strip.setPixelColor(first_led + 30, 0);
strip.setPixelColor(first_led + 31, 0);
strip.setPixelColor(first_led + 32, 0);
strip.setPixelColor(first_led + 33, 0);
strip.setPixelColor(first_led + 34, 0);
}
else if (val == 6) {
strip.setPixelColor(first_led , 0);
strip.setPixelColor(first_led + 1, 0);
strip.setPixelColor(first_led + 2, 0);
strip.setPixelColor(first_led + 3, 0);
strip.setPixelColor(first_led + 4, 0);
}
else if (val == 7) {
strip.setPixelColor(first_led + 10, 0);
strip.setPixelColor(first_led + 11, 0);
strip.setPixelColor(first_led + 12, 0);
strip.setPixelColor(first_led + 13, 0);
strip.setPixelColor(first_led + 14, 0);
strip.setPixelColor(first_led + 15, 0);
strip.setPixelColor(first_led + 16, 0);
strip.setPixelColor(first_led + 17, 0);
strip.setPixelColor(first_led + 18, 0);
strip.setPixelColor(first_led + 19, 0);
strip.setPixelColor(first_led + 25, 0);
strip.setPixelColor(first_led + 26, 0);
strip.setPixelColor(first_led + 27, 0);
strip.setPixelColor(first_led + 28, 0);
strip.setPixelColor(first_led + 29, 0);
strip.setPixelColor(first_led + 30, 0);
strip.setPixelColor(first_led + 31, 0);
strip.setPixelColor(first_led + 32, 0);
strip.setPixelColor(first_led + 33, 0);
strip.setPixelColor(first_led + 34, 0);
}
else if (val == 8) {
}
else if (val == 9) {
strip.setPixelColor(first_led + 30, 0);
strip.setPixelColor(first_led + 31, 0);
strip.setPixelColor(first_led + 32, 0);
strip.setPixelColor(first_led + 33, 0);
strip.setPixelColor(first_led + 34, 0);
}
}