RoboCircuits
Published © CC BY

Ambient Real-Time Clock

Make any wall beautiful!

AdvancedFull instructions provided8 hours4,961
Ambient Real-Time Clock

Things used in this project

Hardware components

Arduino Nano R3
Arduino Nano R3
×1
Real Time Clock (RTC)
Real Time Clock (RTC)
×1
Linear Regulator (7805)
Linear Regulator (7805)
×1
LilyPad Rainbow LED (strip of 7 colors)
SparkFun LilyPad Rainbow LED (strip of 7 colors)
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)

Story

Read more

Schematics

Ambient Real Time Clock by RoboCircuits

RoboCircuits.com

Code

Ambient Real Time Clock by RoboCircuits

C/C++
RoboCircuits.com
/* The Code is Designed by RoboCircuits
 *  Visit our Website http://robocircuits.com for assistance on this code
 *  This code uses DS3231.h Library download it from http://robocircuits.com
 *  For Full Tutorial Watch video on our YouTube Channel https://youtube.com/robocircuits
 */

#include <Adafruit_NeoPixel.h>
#include <DS3231.h>

int i=0,j=0,k=150;

// Init the DS3231 using the hardware interface
DS3231  rtc(SDA, SCL);

#ifdef __AVR__
  #include <avr/power.h>
#endif

// 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      45

// 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);

int delayval = 500; // delay for half a second

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

  pixels.begin(); // This initializes the NeoPixel library.
  // Setup Serial connection
  Serial.begin(115200);
  
  // Initialize the rtc object
  rtc.begin();
  
  // The following lines can be uncommented to set the date and time
  //rtc.setDOW(WEDNESDAY);     // Set Day-of-Week to SUNDAY
  //rtc.setTime(12, 0, 0);     // Set the time to 12:00:00 (24hr format)
  //rtc.setDate(1, 1, 2014);   // Set the date to January 1st, 2014
}

void loop() {
  if(digitalRead(2)==HIGH)
  {
  int a= analogRead(A0);
  int b= analogRead(A1);
  int c= analogRead(A2);
  i=map(a,0,1025,0,150); // Green Color
  j=map(b,0,1025,0,150); // Blue Color
  k=map(c,0,1025,0,150); // Red Color
  }
  else
 {
  i= 0;
  j= 0;
  k= 150;
}

// Code for Backlight
  for(int x=29;x<=45;x++)
{
pixels.setPixelColor(x, pixels.Color(i,j,k));
   pixels.show();
}

// Fetching Real Time from rtc
String x=rtc.getTimeStr();
  // Send time
  Serial.println(rtc.getTimeStr());
  int hour1= x.charAt(0);
  int hour2= x.charAt(1);
  int min1= x.charAt(3);
  int min2= x.charAt(4);
  hour1=hour1-48;
  hour2=hour2-48;
  min1=min1-48;
  min2=min2-48;

  // Displaying time on Clock
switch(hour1)
{
//case 0 : zero(0);
//break;
case 1 : one(0);
break;
case 2 : two(0);
break;
  default : nulll(0);
  break;  
}
switch(hour2)
{
case 0 : zero(7);
break;
case 1 : one(7);
break;
case 2 : two(7);
break;
case 3 : three(7);
break;
case 4 : four(7);
break;
case 5 : five(7);
break;
case 6 : six(7);
break;
case 7 : seven(7);
break;
case 8 : eight(7);
break;
case 9 : nine(7);
break;
  default : nulll(7);
  break;  
}
switch(min1)
{
case 0 : zero(15);
break;
case 1 : one(15);
break;
case 2 : two(15);
break;
case 3 : three(15);
break;
case 4 : four(15);
break;
case 5 : five(15);
break;
  default : nulll(15);
  break;  
}   
switch(min2)
{
case 0 : zero(22);
break;
case 1 : one(22);
break;
case 2 : two(22);
break;
case 3 : three(22);
break;
case 4 : four(22);
break;
case 5 : five(22);
break;
case 6 : six(22);
break;
case 7 : seven(22);
break;
case 8 : eight(22);
break;
case 9 : nine(22);
break;
  default : nulll(22);
  break;  
}
 pixels.setPixelColor(14, pixels.Color(i,j,k));
   pixels.show();
   delay(250);
   pixels.setPixelColor(14, pixels.Color(0,0,0));
   pixels.show();
   delay(250);
}



void zero(int a)
{
  pixels.setPixelColor(a+0, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+1, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+2, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+3, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+4, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+5, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+6, pixels.Color(i,j,k));
   pixels.show();
}
void one(int a)
{
  pixels.setPixelColor(a+0, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+1, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+2, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+3, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+4, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+5, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+6, pixels.Color(i,j,k));
   pixels.show();
}
void two(int a)
{
  pixels.setPixelColor(a+0, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+1, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+2, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+3, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+4, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+5, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+6, pixels.Color(0,0,0));
   pixels.show();
}
void three(int a)
{
  pixels.setPixelColor(a+0, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+1, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+2, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+3, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+4, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+5, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+6, pixels.Color(i,j,k));
   pixels.show();
}
void four(int a)
{
  pixels.setPixelColor(a+0, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+1, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+2, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+3, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+4, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+5, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+6, pixels.Color(i,j,k));
   pixels.show();
}
void five(int a)
{
  pixels.setPixelColor(a+0, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+1, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+2, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+3, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+4, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+5, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+6, pixels.Color(i,j,k));
   pixels.show();
}
void six(int a)
{
  pixels.setPixelColor(a+0, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+1, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+2, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+3, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+4, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+5, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+6, pixels.Color(i,j,k));
   pixels.show();
}
void seven(int a)
{
  pixels.setPixelColor(a+0, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+1, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+2, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+3, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+4, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+5, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+6, pixels.Color(i,j,k));
   pixels.show();
}
void eight(int a)
{
  pixels.setPixelColor(a+0, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+1, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+2, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+3, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+4, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+5, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+6, pixels.Color(i,j,k));
   pixels.show();
}
void nine(int a)
{
  pixels.setPixelColor(a+0, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+1, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+2, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+3, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+4, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+5, pixels.Color(i,j,k));
   pixels.show();
   pixels.setPixelColor(a+6, pixels.Color(i,j,k));
   pixels.show();
}
void nulll(int a)
{
  pixels.setPixelColor(a+0, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+1, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+2, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+3, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+4, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+5, pixels.Color(0,0,0));
   pixels.show();
   pixels.setPixelColor(a+6, pixels.Color(0,0,0));
   pixels.show();
}

Credits

RoboCircuits

RoboCircuits

33 projects • 209 followers
YouTuber, Explorer, Creator, Programmer, Arduino Lover and Engineer

Comments