Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.34 KB | None | 0 0
  1. #include <Adafruit_NeoPixel.h>
  2. #include <RTClib.h>
  3. #include <Wire.h>
  4.  
  5. RTC_DS3231 rtc;
  6.  
  7. #define PIN 9
  8. #define NUM_LEDS 18
  9. #define BRIGHTNESS 40
  10.  
  11. long mHour;
  12. long mMinute;
  13.  
  14. //Adafruit_NeoPixel stripHour = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRBW + NEO_KHZ800);
  15. Adafruit_NeoPixel stripMin = Adafruit_NeoPixel(20, 9, NEO_GRBW + NEO_KHZ800);
  16.  
  17. int colorSet;
  18.  
  19. int gamma[] = {
  20.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  21.     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,
  22.     1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,
  23.     2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,
  24.     5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,
  25.    10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,
  26.    17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,
  27.    25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,
  28.    37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,
  29.    51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,
  30.    69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,
  31.    90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,
  32.   115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,
  33.   144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,
  34.   177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,
  35.   215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };
  36.  
  37. void setup() {
  38.   delay(3000); //power-up safety delay
  39.   stripMin.setBrightness(BRIGHTNESS);
  40.   stripMin.begin();
  41.   stripMin.show();
  42.    
  43.  // Serial.begin(57600);
  44.    if (! rtc.begin()) {
  45.     Serial.println("Couldn't find RTC");
  46.     while (1);
  47.   }
  48.     //sets date and time
  49.     rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  50. }
  51.  
  52. void loop() {
  53.   DateTime now = rtc.now();
  54.  
  55.   //Prints Time
  56.   Serial.print(now.hour(), DEC);
  57.   Serial.print(':');
  58.   Serial.print(now.minute(), DEC);
  59.   Serial.print(':');
  60.   Serial.print(now.second(), DEC);
  61.   Serial.println();
  62.  
  63.   delay(1000);
  64.  
  65.   //Controlling the hour and minute
  66.   mHour = now.hour();
  67.   mMinute = now.minute();
  68.   if(mHour <=24) {
  69.   minColor();
  70.   }
  71. }
  72.  
  73. void breathe(uint32_t c, uint8_t wait) {
  74.   // Make the lights breathe
  75.   for (int i = 0; i < 1200; i++) {
  76.     // Intensity will go from 10 - MaximumBrightness in a "breathing" manner
  77.     float intensity = 100 /2.0 * (1.0 + sin(0.008 * i));
  78.     //stripHour.setBrightness(intensity);
  79.     stripMin.setBrightness(intensity);
  80.     // Now set every LED to that color
  81.     for(uint16_t i=0; i<stripMin.numPixels(); i++) {
  82.     //stripHour.setPixelColor(i, c);
  83.     stripMin.setPixelColor(i, c);
  84.     }
  85.     //Serial.println("loop here");
  86.     //stripHour.show();
  87.     stripMin.show();
  88.     //Wait a bit before continuing to breathe
  89.     delay(5);  
  90.     }
  91.     //Serial.println("did it make it");
  92. }
  93.  
  94. void minColor() {
  95.   DateTime now = rtc.now();
  96.   mMinute = now.minute();
  97.  
  98.   if (mMinute <= 20){
  99.     Twinkle(0xff, 0, 0, 10, 100, false);
  100.     Serial.println("minute twinkle");
  101.   }
  102.   if (mMinute > 20 && mMinute <= 40){
  103.     rainbow(50);
  104.     Serial.println("minute twinkle");
  105.   }
  106.   if (mMinute > 40 && mMinute <= 60){
  107.     breathe(stripMin.Color(0, 0, 0, 255), 60);
  108.     Serial.println("minute twinkle");
  109.   }
  110. }
  111.  
  112. void Twinkle(byte red, byte green, byte blue, int Count, int SpeedDelay, boolean OnlyOne) {
  113.   stripMin.Color(0,0,0);
  114.  
  115.   for (int i=0; i<Count; i++) {
  116.      stripMin.setPixelColor(random(NUM_LEDS),red,green,blue);
  117.      stripMin.show();
  118.      delay(SpeedDelay);
  119.      if(OnlyOne) {
  120.      stripMin.Color(0,0,0);
  121.      }
  122.    }
  123.  
  124.   delay(SpeedDelay);
  125. }
  126.  
  127. void rainbow(uint8_t wait) {
  128.   uint16_t i, j;
  129.  
  130.   for(j=0; j<256; j++) {
  131.     for(i=0; i<stripMin.numPixels(); i++) {
  132.       stripMin.setPixelColor(i, Wheel((i+j) & 255));
  133.     }
  134.     stripMin.show();
  135.     delay(wait);
  136.   }
  137. }
  138.  
  139. uint32_t Wheel(byte WheelPos) {
  140.   WheelPos = 255 - WheelPos;
  141.   if(WheelPos < 85) {
  142.     return stripMin.Color(255 - WheelPos * 3, 0, WheelPos * 3,0);
  143.   }
  144.   if(WheelPos < 170) {
  145.     WheelPos -= 85;
  146.     return stripMin.Color(0, WheelPos * 3, 255 - WheelPos * 3,0);
  147.   }
  148.   WheelPos -= 170;
  149.   return stripMin.Color(WheelPos * 3, 255 - WheelPos * 3, 0,0);
  150. }
  151.  
  152. uint8_t red(uint32_t c) {
  153.   return (c >> 8);
  154. }
  155. uint8_t green(uint32_t c) {
  156.   return (c >> 16);
  157. }
  158. uint8_t blue(uint32_t c) {
  159.   return (c);
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement