Components and supplies
Resistor 10k ohm
Arduino Nano R3
Real Time Clock (RTC)
Project description
Code
Arduino Code
arduino
1 2#include <Adafruit_NeoPixel.h> 3#include <stdio.h> 4#include <DS1302.h> 5 6#ifdef 7 __AVR__ 8 #include <avr/power.h> 9#endif 10 11#define PIN 8 12#define 13 NUMPIXELS 60 14Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, 15 NEO_GRB + NEO_KHZ800); 16Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB 17 + NEO_KHZ800); 18namespace { 19 20 21byte ysaat; 22byte ydak; 23byte saat; 24byte 25 dak; 26byte sn; 27byte kontrol=0; 28 const int kCePin = 5; // Chip Enable 29const 30 int kIoPin = 6; // Input/Output 31const int kSclkPin = 7; // Serial Clock 32 33 34DS1302 rtc(kCePin, kIoPin, kSclkPin); 35 36 37} 38 39void printTime() 40 { 41 // Get the current time and date from the chip. 42 Time t = rtc.time(); 43 44 saat=t.hr; 45 dak=t.min; 46 sn=t.sec; 47 if(saat>=12){saat=saat-12;} 48 49 pixels.setPixelColor(5*saat, pixels.Color(25,25,255)); 50 pixels.setPixelColor(dak, 51 pixels.Color(0,200,10)); 52 pixels.setPixelColor(sn, pixels.Color(255,0,0)); 53 54 55 pixels.show(); 56 //Serial.println(t.sec); 57 //pixels.setPixelColor(t.hr, 58 pixels.Color(0,0,0)); 59 //pixels.setPixelColor(t.sec-1, pixels.Color(0,0,0)); 60 61 62 pixels.show(); 63 if(sn==0) 64 { 65 pixels.setPixelColor(dak-1, 66 pixels.Color(0,0,0)); 67 pixels.setPixelColor(dak, pixels.Color(0,200,10)); 68 69 pixels.show(); 70 for(int i=1;i<60;i++) 71 { 72 pixels.setPixelColor(i, 73 pixels.Color(0,0,0)); 74 } 75 } 76 77 if(dak==0) 78 { 79 pixels.setPixelColor(59, 80 pixels.Color(0,0,0)); 81 } 82} 83 84 85void animasyon() 86{ 87 colorWipe(strip.Color(255, 88 0, 0), 25); // Red 89 colorWipe(strip.Color(0, 255, 0), 25); // Green 90 colorWipe(strip.Color(0, 91 0, 255), 25); 92 theaterChase(strip.Color(127, 127, 127), 50); // White 93 94 theaterChase(strip.Color(127, 0, 0), 50); // Red 95 theaterChase(strip.Color(0, 96 0, 127), 50); 97 for(int i=1;i<60;i++) 98 { 99 pixels.setPixelColor(i, 100 pixels.Color(0,0,0)); 101 } 102 103 } 104 void colorWipe(uint32_t c, uint8_t 105 wait) { 106 for(uint16_t i=0; i<strip.numPixels(); i++) { 107 strip.setPixelColor(i, 108 c); 109 strip.show(); 110 delay(wait); 111 } 112} 113 void theaterChase(uint32_t 114 c, uint8_t wait) { 115 for (int j=0; j<10; j++) { //do 10 cycles of chasing 116 117 for (int q=0; q < 3; q++) { 118 for (uint16_t i=0; i < strip.numPixels(); 119 i=i+3) { 120 strip.setPixelColor(i+q, c); //turn every third pixel on 121 122 } 123 strip.show(); 124 125 delay(wait); 126 127 for (uint16_t 128 i=0; i < strip.numPixels(); i=i+3) { 129 strip.setPixelColor(i+q, 0); //turn 130 every third pixel off 131 } 132 } 133 } 134} 135 136 137 void yenisaat() 138 139 { 140 //kontrol=0; 141 saat=ysaat; 142 dak=ydak; 143 Time t(2018, 2, 144 23,ysaat, ydak, 0, Time::kFriday); 145 rtc.time(t); 146 147 } 148 149 150 151 int clockSet =10; 152 int up=11; 153 int down=12; 154void setup() { 155 Serial.begin(9600); 156#if 157 defined (__AVR_ATtiny85__) 158 if (F_CPU == 16000000) clock_prescale_set(clock_div_1); 159#endif 160strip.begin(); 161 162 strip.show(); 163pixels.begin(); 164 165pinMode( clockSet,INPUT); 166 167 168 169 rtc.writeProtect(false); 170 rtc.halt(false); 171} 172 173void loop() { 174 175 176 177 if (kontrol==1) 178 { 179 pixels.setPixelColor(5*ysaat, pixels.Color(25,25,255)); 180 181 pixels.show(); 182 delay(100); 183 pixels.setPixelColor(5*ysaat, pixels.Color(0,0,0)); 184 185 pixels.show(); 186 delay(100); 187if (digitalRead(up)==HIGH) 188{ 189 ysaat++; 190 191 while(digitalRead(up)==HIGH); 192 if(ysaat==12){ysaat=0;} 193} 194if (digitalRead(down)==HIGH) 195{ 196 197 ysaat--; 198 while(digitalRead(down)==HIGH); 199 if(ysaat==255){ysaat=11;} 200} 201 202 203 pixels.setPixelColor(5*ysaat, pixels.Color(25,25,255)); 204 pixels.show(); 205 206 delay(100); 207 pixels.setPixelColor(5*ysaat, pixels.Color(0,0,0)); 208 pixels.show(); 209 210 delay(100); 211 yenisaat(); 212 if(digitalRead(clockSet)==HIGH) 213 { 214 215 while(digitalRead(clockSet)==HIGH) 216 { pixels.setPixelColor(kontrol, pixels.Color(255,255,255)); 217 218 pixels.show(); 219 } 220 pixels.setPixelColor(kontrol, pixels.Color(0,0,0)); 221 222 pixels.show(); 223 kontrol++; 224 ysaat=saat;ydak=dak;} 225 226 } 227 228 if (kontrol==2) 229 { 230 if(digitalRead(clockSet)==HIGH) 231 { 232 kontrol++; 233 234 while(digitalRead(clockSet)==HIGH) 235 { } 236 237 ysaat=saat;ydak=dak; 238 239 } 240 241 if (digitalRead(up)==HIGH) 242{ 243 ydak++; 244 while(digitalRead(up)==HIGH); 245 246 if(ydak==60){ysaat=0;} 247} 248if (digitalRead(down)==HIGH) 249{ 250 ydak--; 251 252 while(digitalRead(down)==HIGH); 253 if(ydak==255){ydak=59;} 254} 255 pixels.setPixelColor(ydak, 256 pixels.Color(0,205,10)); 257 pixels.show(); 258 yenisaat(); 259 delay(100); 260 261 pixels.setPixelColor(ydak, pixels.Color(0,0,0)); 262 pixels.show(); 263 delay(100); 264 265 } 266 if (kontrol==3) 267 { 268 kontrol=0; 269 yenisaat(); 270 271 } 272 while (kontrol==0) 273 { 274 if(digitalRead(up)==HIGH) 275 { 276 animasyon 277 (); 278 } 279 if(digitalRead(clockSet)==HIGH) 280 { 281 kontrol++; 282 283 while(digitalRead(clockSet)==HIGH); 284 ysaat=saat;ydak=dak;} 285 printTime(); 286 287 } 288} 289
Arduino Code
arduino
1 2#include <Adafruit_NeoPixel.h> 3#include <stdio.h> 4#include <DS1302.h> 5 6#ifdef __AVR__ 7 #include <avr/power.h> 8#endif 9 10#define PIN 8 11#define NUMPIXELS 60 12Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); 13Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800); 14namespace { 15 16 17byte ysaat; 18byte ydak; 19byte saat; 20byte dak; 21byte sn; 22byte kontrol=0; 23 const int kCePin = 5; // Chip Enable 24const int kIoPin = 6; // Input/Output 25const int kSclkPin = 7; // Serial Clock 26 27DS1302 rtc(kCePin, kIoPin, kSclkPin); 28 29 30} 31 32void printTime() { 33 // Get the current time and date from the chip. 34 Time t = rtc.time(); 35 saat=t.hr; 36 dak=t.min; 37 sn=t.sec; 38 if(saat>=12){saat=saat-12;} 39 pixels.setPixelColor(5*saat, pixels.Color(25,25,255)); 40 pixels.setPixelColor(dak, pixels.Color(0,200,10)); 41 pixels.setPixelColor(sn, pixels.Color(255,0,0)); 42 43 pixels.show(); 44 //Serial.println(t.sec); 45 //pixels.setPixelColor(t.hr, pixels.Color(0,0,0)); 46 //pixels.setPixelColor(t.sec-1, pixels.Color(0,0,0)); 47 48 pixels.show(); 49 if(sn==0) 50 { 51 pixels.setPixelColor(dak-1, pixels.Color(0,0,0)); 52 pixels.setPixelColor(dak, pixels.Color(0,200,10)); 53 pixels.show(); 54 for(int i=1;i<60;i++) 55 { 56 pixels.setPixelColor(i, pixels.Color(0,0,0)); 57 } 58 } 59 60 if(dak==0) 61 { 62 pixels.setPixelColor(59, pixels.Color(0,0,0)); 63 } 64} 65 66 67void animasyon() 68{ 69 colorWipe(strip.Color(255, 0, 0), 25); // Red 70 colorWipe(strip.Color(0, 255, 0), 25); // Green 71 colorWipe(strip.Color(0, 0, 255), 25); 72 theaterChase(strip.Color(127, 127, 127), 50); // White 73 theaterChase(strip.Color(127, 0, 0), 50); // Red 74 theaterChase(strip.Color(0, 0, 127), 50); 75 for(int i=1;i<60;i++) 76 { 77 pixels.setPixelColor(i, pixels.Color(0,0,0)); 78 } 79 80 } 81 void colorWipe(uint32_t c, uint8_t wait) { 82 for(uint16_t i=0; i<strip.numPixels(); i++) { 83 strip.setPixelColor(i, c); 84 strip.show(); 85 delay(wait); 86 } 87} 88 void theaterChase(uint32_t c, uint8_t wait) { 89 for (int j=0; j<10; j++) { //do 10 cycles of chasing 90 for (int q=0; q < 3; q++) { 91 for (uint16_t i=0; i < strip.numPixels(); i=i+3) { 92 strip.setPixelColor(i+q, c); //turn every third pixel on 93 } 94 strip.show(); 95 96 delay(wait); 97 98 for (uint16_t i=0; i < strip.numPixels(); i=i+3) { 99 strip.setPixelColor(i+q, 0); //turn every third pixel off 100 } 101 } 102 } 103} 104 105 106 void yenisaat() 107 { 108 //kontrol=0; 109 saat=ysaat; 110 dak=ydak; 111 Time t(2018, 2, 23,ysaat, ydak, 0, Time::kFriday); 112 rtc.time(t); 113 114 } 115 116 117 int clockSet =10; 118 int up=11; 119 int down=12; 120void setup() { 121 Serial.begin(9600); 122#if defined (__AVR_ATtiny85__) 123 if (F_CPU == 16000000) clock_prescale_set(clock_div_1); 124#endif 125strip.begin(); 126 strip.show(); 127pixels.begin(); 128 129pinMode( clockSet,INPUT); 130 131 132 rtc.writeProtect(false); 133 rtc.halt(false); 134} 135 136void loop() { 137 138 139 if (kontrol==1) 140 { 141 pixels.setPixelColor(5*ysaat, pixels.Color(25,25,255)); 142 pixels.show(); 143 delay(100); 144 pixels.setPixelColor(5*ysaat, pixels.Color(0,0,0)); 145 pixels.show(); 146 delay(100); 147if (digitalRead(up)==HIGH) 148{ 149 ysaat++; 150 while(digitalRead(up)==HIGH); 151 if(ysaat==12){ysaat=0;} 152} 153if (digitalRead(down)==HIGH) 154{ 155 ysaat--; 156 while(digitalRead(down)==HIGH); 157 if(ysaat==255){ysaat=11;} 158} 159 160 pixels.setPixelColor(5*ysaat, pixels.Color(25,25,255)); 161 pixels.show(); 162 delay(100); 163 pixels.setPixelColor(5*ysaat, pixels.Color(0,0,0)); 164 pixels.show(); 165 delay(100); 166 yenisaat(); 167 if(digitalRead(clockSet)==HIGH) 168 { 169 while(digitalRead(clockSet)==HIGH) 170 { pixels.setPixelColor(kontrol, pixels.Color(255,255,255)); 171 pixels.show(); 172 } 173 pixels.setPixelColor(kontrol, pixels.Color(0,0,0)); 174 pixels.show(); 175 kontrol++; 176 ysaat=saat;ydak=dak;} 177 178 } 179 if (kontrol==2) 180 { 181 if(digitalRead(clockSet)==HIGH) 182 { 183 kontrol++; 184 while(digitalRead(clockSet)==HIGH) 185 { } 186 187 ysaat=saat;ydak=dak; 188 } 189 190 if (digitalRead(up)==HIGH) 191{ 192 ydak++; 193 while(digitalRead(up)==HIGH); 194 if(ydak==60){ysaat=0;} 195} 196if (digitalRead(down)==HIGH) 197{ 198 ydak--; 199 while(digitalRead(down)==HIGH); 200 if(ydak==255){ydak=59;} 201} 202 pixels.setPixelColor(ydak, pixels.Color(0,205,10)); 203 pixels.show(); 204 yenisaat(); 205 delay(100); 206 pixels.setPixelColor(ydak, pixels.Color(0,0,0)); 207 pixels.show(); 208 delay(100); 209 } 210 if (kontrol==3) 211 { 212 kontrol=0; 213 yenisaat(); 214 } 215 while (kontrol==0) 216 { 217 if(digitalRead(up)==HIGH) 218 { 219 animasyon (); 220 } 221 if(digitalRead(clockSet)==HIGH) 222 { 223 kontrol++; 224 while(digitalRead(clockSet)==HIGH); 225 ysaat=saat;ydak=dak;} 226 printTime(); 227 } 228} 229
Downloadable files
Schematic
Schematic
Documentation
dscn6766_2_hpc9JFfozt.jpg
dscn6766_2_hpc9JFfozt.jpg
dscn6764_rvXpiGXZeg.JPG
dscn6764_rvXpiGXZeg.JPG
dscn6767_gAlwC8CJ6h.JPG
dscn6767_gAlwC8CJ6h.JPG
dscn6766_2_hpc9JFfozt.jpg
dscn6766_2_hpc9JFfozt.jpg
dscn6764_rvXpiGXZeg.JPG
dscn6764_rvXpiGXZeg.JPG
dscn6767_gAlwC8CJ6h.JPG
dscn6767_gAlwC8CJ6h.JPG
Comments
Only logged in users can leave comments