[임시] Neopixel 160개로 시계 만드는 소스

메카 2016-09-21 (수) 10:27 8년전 5698  

// NeoPixel Ring simple sketch (c) 2013 Shae Erisson

// released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library

// Edited by Donghwa Jeong 2016-9-13 for Neopixel Clock with 170 LEDs

 

#include <Wire.h>

#include "RTClib.h"

#include <Adafruit_NeoPixel.h>

#ifdef __AVR__

  #include <avr/power.h>

#endif

 

RTC_DS1307 rtc;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

 

// Which pin on the Arduino is connected to the NeoPixels?

// On a Trinket or Gemma we suggest changing this to 1

#define PIN            6

 

// How many NeoPixels are attached to the Arduino?

#define NUMPIXELS      170

 

// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.

// Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest

// example for more information on possible values.

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

 

 

void setup() {

  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket

#if defined (__AVR_ATtiny85__)

  if (F_CPU == 16000000) clock_prescale_set(clock_div_1);

#endif

  // End of trinket special code

  Serial.begin(57600);

  if (! rtc.begin()) {

    Serial.println("Couldn't find RTC");

    while (1);

  }

   if (! rtc.isrunning()) {

    Serial.println("RTC is NOT running!");

    // following line sets the RTC to the date & time this sketch was compiled

     //rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

    // This line sets the RTC with an explicit date & time, for example to set

    // January 21, 2014 at 3am you would call:

     //rtc.adjust(DateTime(2016, 9, 13, 11, 25, 0));

  }

  pixels.begin(); // This initializes the NeoPixel library.

}

 

int hour = 9;

int minute = 30;

void loop() {

 

  DateTime now = rtc.now();

 

    hour = now.hour();

    minute = now.minute();

//    Serial.print(hour);

//    Serial.print(':');

//    Serial.println(minute);

 

 

 

//12시 30분

//1

     for(int i=12;i<=17;i++){

      pixels.setPixelColor(i, pixels.Color(255,0,0)); 

      pixels.show();

      }

      for(int i=36;i<=41;i++){

      pixels.setPixelColor(i, pixels.Color(255,0,0)); 

      pixels.show();

      }

//2

      for(int i=(48);i<=77;i++){

      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

      }

 pixels.setPixelColor(84,pixels.Color(255,0,0)); pixels.show();

 pixels.setPixelColor(85,pixels.Color(255,0,0)); pixels.show();

 

//3

     for(int i=92;i<=109;i++){

      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

      }

      for(int i=116;i<=127;i++){

      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

      }

 

            for(int i=128;i<=145;i++){

      pixels.setPixelColor(i, pixels.Color(255,0,0));

      pixels.show();  

      }

      for(int i=152;i<=169;i++){

      pixels.setPixelColor(i, pixels.Color(255,0,0));  

      pixels.show();

      }

delay(5000);

pixels.clear();

 

for(int i=0;i<170;i++){

      pixels.setPixelColor(i, pixels.Color(0,0,255)); 

delay(50);

pixels.show();

}

for(int i=0;i<170;i++){

      pixels.setPixelColor(i, pixels.Color(255,0,0)); 

delay(50);

pixels.show();

}

for(int i=0;i<170;i++){

      pixels.setPixelColor(i, pixels.Color(0,255,0)); 

delay(50);

pixels.show();

     }

//     for(int i=12;i<=17;i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0)); 

//      pixels.show();

//      }

//      for(int i=36;i<=41;i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0)); 

//      pixels.show();

//      }

//     delay(1000);

 

 

 

//displayDigit(hour/10,0);

// delay(1000);

// displayDigit(hour%10,42);

// delay(1000);

// 

//   displayDigit(minute/10,86);

//   delay(1000);

//  displayDigit(minute%10,128);

//  delay(1000);

}

 

void displayDigit(int num, int pos) // num is number, pos is position

{

  if(num == 0)

  {

      for(int i=(pos+0);i<=(pos+17);i++){

      pixels.setPixelColor(i, pixels.Color(255,0,0));

      pixels.show();  

      }

      for(int i=(pos+24);i<=(pos+41);i++){

      pixels.setPixelColor(i, pixels.Color(255,0,0));  

      pixels.show();

      }

     

  }

       

  else if (num == 1)

  {

      for(int i=(pos+12);i<=(pos+17);i++){

      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

      }

      for(int i=(pos+36);i<=(pos+41);i++){

      pixels.setPixelColor(i, pixels.Color(255,0,0)); pixels.show();

      } 

  }

 else if (num == 2)

{

      for(int i=(pos+6);i<=(pos+35);i++){

      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

      }

}

 

//    case 3:

//      for(int i=(pos+6);i<=(pos+23);i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

//      }

//      for(int i=(pos+30);i<=(pos+41);i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

//      }

//    break;

//

//    case 4:

//      for(int i=(pos+0);i<=(pos+5);i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

//      }

//      for(int i=(pos+12);i<=(pos+23);i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

//      }

//      for(int i=(pos+36);i<=(pos+41);i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

//      }

//    break;

//

//    case 5:

//      for(int i=(pos+0);i<=(pos+11);i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

//      }

//      for(int i=(pos+18);i<=(pos+23);i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

//      }

//      for(int i=(pos+30);i<=(pos+41);i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

//      }

//    break;

//    

//    case 6:

//      for(int i=(pos+0);i<=(pos+11);i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

//      }

//      for(int i=(pos+18);i<=(pos+41);i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

//      }

//    break;

//     case 7:

//      for(int i=(pos+6);i<=(pos+17);i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

//      }

//      for(int i=(pos+36);i<=(pos+41);i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

//      }

//    break;

//    case 8:

//      for(int i=(pos+0);i<=(pos+41);i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

//      }

//    break;

//    case 9:

//      for(int i=(pos+0);i<=(pos+23);i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

//      }

//      for(int i=(pos+36);i<=(pos+41);i++){

//      pixels.setPixelColor(i, pixels.Color(255,0,0));  pixels.show();

//      }

//    break;

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

메카리워즈 Image Map


모바일 버전으로 보기