无限镜时钟
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 3 |
关于这个项目
我们的设计很棒,您可以将两者都作为礼物送给自己:Infinity Mirror Clock。你不希望你拥有的镜子有无尽的外观并同时使用吗?我们很高兴与您分享这个使用当今广泛使用的 RGB LED 准备的项目。您可以通过观看视频学习如何制作无限镜时钟。
代码
- Arduino 代码
Arduino 代码Arduino
#include#include #include #ifdef __AVR__ #include #endif#define PIN 8#define NUMPIXELS 60Adafruit_NeoPixelpixels =Adafruit_NeoPixel( NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);Adafruit_NeoPixel strip =Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);namespace {byte ysaat;byte ydak;byte saat;byte dak;byte sn0;byte const int kCePin =5; // 芯片使能常量 int kIoPin =6; // 输入/输出常量 int kSclkPin =7; // 串行时钟 DS1302 rtc(kCePin, kIoPin, kSclkPin); } void printTime() { // 从芯片中获取当前时间和日期。时间 t =rtc.time(); saat=t.hr; dak=t.min; sn=t.sec; if(saat>=12){saat=saat-12;} pixel.setPixelColor(5*saat, pixel.Color(25,25,255)); pixel.setPixelColor(dak, pixel.Color(0,200,10)); pixel.setPixelColor(sn, pixel.Color(255,0,0));像素显示(); //Serial.println(t.sec); //pixels.setPixelColor(t.hr, pixel.Color(0,0,0)); //pixels.setPixelColor(t.sec-1, pixel.Color(0,0,0));像素显示(); if(sn==0) { pixel.setPixelColor(dak-1, pixel.Color(0,0,0)); pixel.setPixelColor(dak, pixel.Color(0,200,10));像素显示(); for(int i=1;i<60;i++) { pixel.setPixelColor(i, pixel.Color(0,0,0)); } } if(dak==0) { pixel.setPixelColor(59, pixel.Color(0,0,0)); }}void animasyon(){ colorWipe(strip.Color(255, 0, 0), 25); // Red colorWipe(strip.Color(0, 255, 0), 25); // 绿色 colorWipe(strip.Color(0, 0, 255), 25);剧院追逐(strip.Color(127、127、127)、50); // 白色的 theatreChase(strip.Color(127, 0, 0), 50); // 红色 theatreChase(strip.Color(0, 0, 127), 50); for(int i=1;i<60;i++) { pixel.setPixelColor(i, pixel.Color(0,0,0)); } } void colorWipe(uint32_t c, uint8_t wait) { for(uint16_t i=0; i
定制零件和外壳
示意图
制造工艺