Components and supplies
PC monitor holder
Resistor 330 ohm
NeoPixel Ring: WS2812 5050 RGB LED
3d Printed parts
Hardener
DS3231MPMB1 Peripheral Module
HC-05 Bluetooth Module
Epoxy Resin
Arduino Nano R3
Tools and machines
Soldering iron (generic)
3D Printer (generic)
Apps and platforms
Android Things
Project description
Code
epoxy clock code.ino
arduino
1#include <DS3231.h> 2#include <Adafruit_NeoPixel.h> 3#ifdef __AVR__ 4 #include <avr/power.h> 5#endif 6 7#define PIN 5 8#define PIN2 7 9 10 11#define NUMPIXELS 60 12DS3231 rtc(SDA, SCL); 13Time t; 14int hr; 15int mnt; 16int sc; 17char data; 18char color_select; 19int h_red_deger=255; 20int h_green_deger=0; 21int h_blue_deger=0; 22int m_red_deger=0; 23int m_green_deger=255; 24int m_blue_deger=0; 25int s_red_deger=255; 26int s_green_deger=255; 27int s_blue_deger=0; 28Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); 29Adafruit_NeoPixel pixels2 = Adafruit_NeoPixel(12, PIN2, NEO_GRB + NEO_KHZ800); 30Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800); 31Adafruit_NeoPixel strip2 = Adafruit_NeoPixel(12, PIN2, NEO_GRB + NEO_KHZ800); 32 33 34int delayval = 10; 35 36void setup() { 37 Serial.begin(9600); 38 rtc.begin(); 39 40#if defined (__AVR_ATtiny85__) 41 if (F_CPU == 16000000) clock_prescale_set(clock_div_1); 42#endif 43 // End of trinket special code 44 45 pixels.begin(); // This initializes the NeoPixel library. 46 pixels2.begin(); 47 strip.begin(); 48 strip.show(); 49 strip2.begin(); 50 strip2.show(); 51// 52} 53 54void loop() { 55 56 while(Serial.available() > 0) // balant kuruluyken 57 { 58 delay(10); 59 char c = Serial.read(); 60 data=c; 61 if(data=='m') 62 { 63 data=' '; 64 t = rtc.getTime(); 65 hr=t.hour; 66 mnt=t.min; 67 sc=t.sec; 68 while(data!='m') 69 { 70 data=Serial.read(); 71 if(data=='+') 72 { 73 hr++; 74 } 75 if(data=='-') 76 { 77 hr--; 78 } 79 for(int i=0;i<12;i++){pixels2.setPixelColor(i, pixels2.Color(0,255,10));} 80 pixels2.show(); 81 if(hr>=12){hr=hr-12;} 82 if(hr<0){hr=hr+12;} 83 pixels2.setPixelColor(hr, pixels2.Color(255,0,0)); 84 pixels2.show(); 85 delay(100); 86 pixels2.setPixelColor(hr, pixels2.Color(0,0,0)); 87 pixels2.show(); 88 delay(100); 89 } 90 rtc.setTime(hr,mnt,sc); 91 if(data=='m') 92 { 93 data=' '; 94 t = rtc.getTime(); 95 hr=t.hour; 96 mnt=t.min; 97 sc=t.sec; 98 while(data!='m') 99 { 100 data=Serial.read(); 101 if(data=='+') 102 { 103 mnt++; 104 if(mnt==60) 105 {mnt=0;} 106 } 107 if(data=='-') 108 { 109 if(mnt==0) 110 {mnt=60;} 111 112 mnt--; 113 } 114 for(int k=0;k<60;k++){pixels.setPixelColor(k, pixels.Color(0,0,0));} 115 for(int k=0;k<60;k++){pixels.setPixelColor(k, pixels.Color(25,25,255));k=k+4;} 116 117 pixels.setPixelColor(mnt, pixels.Color(0,250,0)); 118 pixels.show(); 119 delay(100); 120 pixels.setPixelColor(mnt, pixels.Color(0,0,0)); 121 pixels.show(); 122 delay(100); 123 } 124 } 125 126 rtc.setTime(hr,mnt,sc); 127 data=' '; 128 } 129 130 131 132 133 if(data=='H') 134 { 135 color_select=data; 136 } 137 if(data=='M') 138 { 139 color_select=data; 140 } 141 if(data=='S') 142 { 143 color_select=data; 144 } 145 if(data=='A') 146 { 147 data=' '; 148 colorWipe(strip.Color(255, 0, 0), 50); // Red 149 colorWipe(strip.Color(0, 255, 0), 50); // Green 150 colorWipe(strip.Color(0, 0, 255), 50); // Blue 151//colorWipe(strip.Color(0, 0, 0, 255), 50); // White RGBW 152 // Send a theater pixel chase in... 153 theaterChase(strip.Color(127, 127, 127), 50); // White 154 theaterChase(strip.Color(127, 0, 0), 50); // Red 155 theaterChase(strip.Color(0, 0, 127), 50); // Blue 156 157 rainbow(20); 158 rainbowCycle(20); 159 theaterChaseRainbow(50); 160 } 161 if(data=='r'&&color_select=='H') 162 { 163 h_red_deger=Serial.parseInt(); 164 pixels2.setPixelColor(hr, pixels2.Color(h_red_deger,h_green_deger, h_blue_deger)); 165 pixels2.show(); 166 167 168 } 169 170 if(data=='g'&&color_select=='H') 171 { h_green_deger=Serial.parseInt(); 172 pixels2.setPixelColor(hr, pixels2.Color(h_red_deger,h_green_deger, h_blue_deger)); 173 pixels2.show(); 174 } 175 if(data=='b'&&color_select=='H') 176 { 177 h_blue_deger=Serial.parseInt(); 178 pixels2.setPixelColor(hr, pixels2.Color(h_red_deger,h_green_deger, h_blue_deger)); 179 pixels2.show(); 180 } 181 182 183 184 if(data=='r'&&color_select=='M') 185 { 186 m_red_deger=Serial.parseInt(); 187 pixels.setPixelColor(mnt, pixels.Color(m_red_deger,m_green_deger,m_blue_deger)); 188 pixels.show(); 189 190 191 } 192 193 if(data=='g'&&color_select=='M') 194 { m_green_deger=Serial.parseInt(); 195 pixels.setPixelColor(mnt, pixels.Color(m_red_deger,m_green_deger,m_blue_deger)); 196 pixels.show(); 197 } 198 if(data=='b'&&color_select=='M') 199 { 200 m_blue_deger=Serial.parseInt(); 201 pixels.setPixelColor(mnt, pixels.Color(m_red_deger,m_green_deger,m_blue_deger)); 202 pixels.show(); 203 } 204 205 206if(data=='r'&&color_select=='S') 207 { 208 s_red_deger=Serial.parseInt(); 209 pixels.setPixelColor(sc, pixels.Color(s_red_deger,s_green_deger,s_blue_deger)); 210 pixels.show(); 211 212 213 } 214 215 if(data=='g'&&color_select=='S') 216 { s_green_deger=Serial.parseInt(); 217 pixels.setPixelColor(sc, pixels.Color(s_red_deger,s_green_deger,s_blue_deger)); 218 pixels.show(); 219 } 220 if(data=='b'&&color_select=='S') 221 { 222 s_blue_deger=Serial.parseInt(); 223 pixels.setPixelColor(sc, pixels.Color(s_red_deger,s_green_deger,s_blue_deger)); 224 pixels.show(); 225 } 226 227 228 229 230 231 } 232 t = rtc.getTime(); 233 hr=t.hour; 234 mnt=t.min; 235 sc=t.sec; 236 237 238 pixels.setPixelColor(sc, pixels.Color(s_red_deger,s_green_deger,s_blue_deger)); 239 pixels.setPixelColor(mnt, pixels.Color(m_red_deger,m_green_deger,m_blue_deger)); 240 pixels.show(); 241 242 for(int i=0;i<12;i++){ 243 if(i==hr) 244 {i++;} 245 pixels2.setPixelColor(i, pixels2.Color(0,0,0));} 246 pixels2.show(); 247 if(hr>=12){hr=hr-12;} 248 pixels2.setPixelColor(hr, pixels2.Color(h_red_deger,h_green_deger,h_blue_deger)); 249 pixels2.show(); 250 delay(10); 251 pixels.setPixelColor(sc, pixels.Color(0,0,0)); 252 for(int k=0;k<60;k++){pixels.setPixelColor(k, pixels.Color(0,0,0));} 253 for(int k=0;k<60;k++){pixels.setPixelColor(k, pixels.Color(10,10,10));k=k+4;} 254 pixels.setPixelColor(mnt, pixels.Color(0,0,0)); 255 pixels.show(); 256 257 258 259 260} 261 262 263 264 265 266 267 268 269 270 271 272 273 274void colorWipe(uint32_t c, uint8_t wait) { 275 for(uint16_t i=0; i<strip.numPixels(); i++) { 276 strip.setPixelColor(i, c); 277 strip.show(); 278 279 strip2.setPixelColor(i, c); 280 strip2.show(); 281 delay(wait); 282 } 283} 284 285void rainbow(uint8_t wait) { 286 uint16_t i, j; 287 288 for(j=0; j<256; j++) { 289 for(i=0; i<strip.numPixels(); i++) { 290 strip.setPixelColor(i, Wheel((i+j) & 255)); 291 strip2.setPixelColor(i, Wheel((i+j) & 255)); 292 } 293 strip2.show(); 294 295 strip.show(); 296 delay(wait); 297 } 298} 299 300// Slightly different, this makes the rainbow equally distributed throughout 301void rainbowCycle(uint8_t wait) { 302 uint16_t i, j; 303 304 for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel 305 for(i=0; i< strip.numPixels(); i++) { 306 strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255)); 307 strip2.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255)); 308 } 309 strip.show(); 310 strip2.show(); 311 delay(wait); 312 } 313} 314 315//Theatre-style crawling lights. 316void theaterChase(uint32_t c, uint8_t wait) { 317 for (int j=0; j<10; j++) { //do 10 cycles of chasing 318 for (int q=0; q < 3; q++) { 319 for (int i=0; i < strip.numPixels(); i=i+3) { 320 strip.setPixelColor(i+q, c); //turn every third pixel on 321 strip2.setPixelColor(i+q, c); 322 } 323 strip2.show(); 324 strip.show(); 325 326 delay(wait); 327 328 for (int i=0; i < strip.numPixels(); i=i+3) { 329 strip.setPixelColor(i+q, 0); //turn every third pixel off 330 strip2.setPixelColor(i+q, 0); 331 } 332 } 333 } 334} 335 336//Theatre-style crawling lights with rainbow effect 337void theaterChaseRainbow(uint8_t wait) { 338 for (int j=0; j < 256; j++) { // cycle all 256 colors in the wheel 339 for (int q=0; q < 3; q++) { 340 for (int i=0; i < strip.numPixels(); i=i+3) { 341 strip.setPixelColor(i+q, Wheel( (i+j) % 255)); //turn every third pixel on 342 strip2.setPixelColor(i+q, Wheel( (i+j) % 255)); 343 } 344 strip2.show(); 345 strip.show(); 346 347 delay(wait); 348 349 for (int i=0; i < strip.numPixels(); i=i+3) { 350 strip.setPixelColor(i+q, 0); //turn every third pixel off 351 strip2.setPixelColor(i+q, 0); 352 } 353 } 354 } 355} 356 357// Input a value 0 to 255 to get a color value. 358// The colours are a transition r - g - b - back to r. 359uint32_t Wheel(byte WheelPos) { 360 WheelPos = 255 - WheelPos; 361 if(WheelPos < 85) { 362 return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3); 363 } 364 if(WheelPos < 170) { 365 WheelPos -= 85; 366 return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3); 367 } 368 WheelPos -= 170; 369 return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0); 370} 371 372 373
Downloadable files
Fritzing
Fritzing
Fritzing
Fritzing
Documentation
Solidworks Drawing
Solidworks Drawing
Solidworks Drawing
Solidworks Drawing
Comments
Only logged in users can leave comments
TheTNR
0 Followers
•0 Projects
Table of contents
Intro
5
0