#include <Adafruit_NeoPixel.h>
#include <Wire.h>
#include "RTClib.h"
#define PIN (6)
#define NUM_PIX 4 * 35 + 8 // four 5x7 matrices and four colons
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() {
// randoms();
// markpix();
// chase(strip.Color(random(256), random(256), random(256))); // 0 to end
rainbow(10);
// colorWipe(strip.Color(random(256), random(256), random(256)), 0);
}
void colorWipe(uint32_t color, int wait) {
for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
strip.setPixelColor(i, color); // Set pixel's color (in RAM)
strip.show(); // Update strip to match
delay(wait); // Pause for a moment
}
}
void chase(uint32_t c) {
for(uint16_t i=0; i<strip.numPixels()+3; i++) {
strip.setPixelColor(i , c); // Draw new pixel
strip.setPixelColor(i-3, 0); // Erase old pixels
strip.show();
delay(25);
}
}
void rainbow(int wait) {
for(long firstPixelHue = 0; firstPixelHue < 5*65536; firstPixelHue += 256) {
strip.rainbow(firstPixelHue);
strip.show();
delay(wait);
}
}
void markpix () { // a test function to mark/light key pixels
// first pixel RED
strip.setPixelColor(111, 255, 0, 0);
strip.setPixelColor(74, 255, 0, 0);
strip.setPixelColor(37, 255, 0, 0);
strip.setPixelColor(0, 255, 0, 0);
// last pixel GRN
strip.setPixelColor(145, 0, 255, 0);
strip.setPixelColor(108, 0, 255, 0);
strip.setPixelColor(71, 0, 255, 0);
strip.setPixelColor(34, 0, 255, 0);
// colon CYN:MAG
strip.setPixelColor(147, 255, 0, 255);
strip.setPixelColor(146, 0, 255, 255);
strip.setPixelColor(110, 255, 0, 255);
strip.setPixelColor(109, 0, 255, 255);
strip.setPixelColor(73, 255, 0, 255);
strip.setPixelColor(72, 0, 255, 255);
strip.setPixelColor(36, 255, 0, 255);
strip.setPixelColor(35, 0, 255, 255);
strip.show();
}
void randoms() {
for (int i = 0; i < NUM_PIX; i++)
strip.setPixelColor(i, random(256), random(256), random(256));
strip.show();
}
/* (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);
}
}