인피니티 미러 시계: 끝없는 우아함과 정확한 시간의 만남
부품 및 소모품
부품
수량
RTC (실시간 시계) 모듈
1
아두이노 나노 R3
1
10kΩ 저항
3
프로젝트 소개
자신에게 선물하거나 남에게 주기에도 완벽한 멋진 디자인, 인피니티 미러 시계입니다. 거울이 무한히 깊어 보이는 효과를 내면서 동시에 시계 기능도 한다면 좋지 않을까요? 오늘날 널리 쓰이는 RGB LED로 제작한 이 프로젝트를 여러분과 공유하게 되어 기쁩니다. 영상을 보며 인피니티 미러 시계 만드는 법을 배워보세요.
코드
아두이노 코드
#include
#include
#include
#ifdef __AVR__
#include
#endif
#define PIN 8
#define NUMPIXELS 60
Adafruit_NeoPixel pixels = 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 sn; byte kontrol=0;
const int kCePin = 5; // Chip Enable
const int kIoPin = 6; // Input/Output
const int kSclkPin = 7; // Serial Clock
DS1302 rtc(kCePin, kIoPin, kSclkPin);
}
void printTime() {
Time t = rtc.time();
saat = t.hr; dak = t.min; sn = t.sec;
if(saat >= 12) { saat = saat - 12; }
pixels.setPixelColor(5*saat, pixels.Color(25,25,255)); // 시침 - 파란색
pixels.setPixelColor(dak, pixels.Color(0,200,10)); // 분침 - 녹색
pixels.setPixelColor(sn, pixels.Color(255,0,0)); // 초침 - 빨간색
pixels.show();
if(sn == 0) {
pixels.setPixelColor(dak-1, pixels.Color(0,0,0));
pixels.setPixelColor(dak, pixels.Color(0,200,10));
pixels.show();
for(int i=1; i<60; i++) {
pixels.setPixelColor(i, pixels.Color(0,0,0));
}
}
if(dak == 0) {
pixels.setPixelColor(59, pixels.Color(0,0,0));
}
}
void animasyon() {
colorWipe(strip.Color(255, 0, 0), 25); // 빨강
colorWipe(strip.Color(0, 255, 0), 25); // 초록
colorWipe(strip.Color(0, 0, 255), 25); // 파랑
theaterChase(strip.Color(127, 127, 127), 50); // 흰색
theaterChase(strip.Color(127, 0, 0), 50); // 빨강
theaterChase(strip.Color(0, 0, 127), 50); // 파랑
for(int i=1; i<60; i++) {
pixels.setPixelColor(i, pixels.Color(0,0,0));
}
}
void colorWipe(uint32_t c, uint8_t wait) {
for(uint16_t i=0; i
커스텀 부품 및 인클로저
회로도