#include <Adafruit_NeoPixel.h>
#define PIN0 6 // input pin Neopixel is attached to
#define PIN1 4
#define PIN2 3
#define NUMPIXELS0 24
#define NUMPIXELS1 60
#include <Wire.h>
Adafruit_NeoPixel pixels0 = Adafruit_NeoPixel(NUMPIXELS0, 6, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels1 = Adafruit_NeoPixel(NUMPIXELS1, 4, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels2 = Adafruit_NeoPixel(NUMPIXELS1, 3, NEO_GRB + NEO_KHZ800);
#define DS1307_ADDRESS 0x68
uint8_t hours, minutes, seconds;
uint8_t clear = 0x00;
void beginDS1307()
{
// Read the values (date and time) of the DS1307 module
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(clear);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 0x07);
seconds = bcdToDec(Wire.read());
minutes = bcdToDec(Wire.read());
hours = bcdToDec(Wire.read() & 0xff);
}
uint8_t decToBcd(uint8_t value)
{
return ((value / 10 * 16) + (value % 10));
}
uint8_t bcdToDec(uint8_t value)
{
return ((value / 16 * 10) + (value % 16));
}
void setup(void)
{
Serial.begin(9600);
Wire.begin();
pixels0.begin(); // Initializes the NeoPixel library.
pixels1.begin();
pixels2.begin();
pixels0.setBrightness(100);
pixels1.setBrightness(100);
pixels2.setBrightness(100);
pixels0.show();
pixels1.show();
pixels2.show();
}
void loop(void)
{
Serial.print(minutes);
//delay(5000);
beginDS1307();
pixels0.setPixelColor(hours, pixels0.Color(250,0,0)); // Moderately bright Read color.
pixels1.setPixelColor( minutes, pixels1.Color(250,0,0));
pixels2.setPixelColor(seconds, pixels2.Color(250,0,0));
pixels0.setBrightness(100); // High brightness a
pixels1.setBrightness(100);
pixels2.setBrightness(100);
pixels0.show(); // This sends the updated pixel color to the hardware.
pixels1.show();
pixels2.show();
if(seconds==59)
{
pixels2.clear();
}
if(minutes==59)
{
pixels1.clear();
}
else if(hours==24)
{
pixels0.clear();
}
delay(1000);
}