步驟1:收集零件
我很幸運有一天上班,發現了一個托盤。這個托盤伸出來,因為它看起來不像你的標準,磨機托盤。它是干凈的,經過熱處理的,并且是最不尋常的堅固橡木。
這個項目是由托盤中的一個制成的。 (在我把它帶回家之前我問了老板)
也用過:
12像素ws2812b LED戒指
兼容Arduino Nano v3.0
亞克力板(5mm)
彩色電線
工具:
電鉆
路由器
可調節扁平木頭
電動打磨機
手鋸
烙鐵
熱膠槍
砂紙
丹麥油
打磨
我開始使用電動打磨機來拉直和清潔塊木材直到所有的邊緣干凈,光滑。我留下了一些可見的瑕疵,并且它不是完全筆直或正方形,因為我希望能夠看到木材中的一些歷史。
標記和切割孔
布線和電纜孔
使用12mm位的路由器,我在塊的底部劃出一個凹槽來隱藏RTC和Arduino 。它的深度約為15毫米,距離任何邊緣都不小于5毫米。我從底部標記了中心(ish),并使用10mm鉆頭向上鉆了一半,以便允許LED線。然后使用從LED凹槽中心鉆出的5mm鉆頭,以便從底部鉆出10mm的孔。
后面還有一個4mm的孔,用于接通電源并使用較小的路由器鉆頭為LED環背面的電線制作一個通道,完成木工。
第2步:丙烯酸圈
為了制作時鐘前面的丙烯酸,我說切割正方形比它必須填充的洞要大的那塊。然后使用電動打磨機開始我開始移除角落,直到它的形狀和大小正確。然后我移動到手上打磨,所以我沒有過度射擊,不得不重新開始。
這是一個緩慢而乏味的試驗和錯誤過程,直到它恰到好處但我認為最終結果是值得的它。我完成了使用非常精細的砂紙給丙烯酸的前面一個磨砂的外觀。
第3步:焊接
我喜歡在這個場合使用顏色系統來選擇:
紅色為力量(5v)
白色為地
黃色為數據
綠色為時鐘
我首先使用上面的系統將3根必要的導線焊接到LED環上,然后將導線向下推入孔中。由于它不應該暴露于任何真正的強迫,我使用一點點熱膠將環固定到位。 (我可能需要在某個時候更換它)并在邊緣附近只用一點熱膠安裝丙烯酸樹脂。
然后我使用上面的系統將4根電線焊接到RTC上。為了讓事情變得更整潔,我決定從Arduino為RTC提供動力。然后將所有東西連接到Arduino并焊接1根電線用于電源,另一根用于焊接到Arduino。
RTC
SCL(時鐘)到模擬引腳5
SDA(數據)至模擬引腳4
VCC至5V
GND至Arduino上的任何GND
LED戒指
Din to Digital Pin 6
我有一根舊的USB線掛在身邊決定用它來為時鐘供電。我切斷了通常連接到somthing的末端并將其推過后面的洞。然后在將VCC焊接到Arduino并將LED環焊接到正極側并將地線從Arduino和LED焊接到地之前剝去并剝去端部。我以后幾乎沒有熱縮,它看起來很好,
熱膠槍回來后一直保持下來。我決定離開Arduino足夠的游戲,以便我將來可以訪問USB端口進行編程,但不會太多,以至于我可能會失敗。
第4步:代碼
您現在應該可以將此代碼上傳到Arduino。
如果RTC沒有運行,這段代碼將根據編譯代碼的時間設置時間,所以一定要點擊上傳按鈕而不是驗證。
這也是非常適合設置時間。
https://www.instructables.com/id/Setting-the-DS130 。..
我從這里借來的大部分代碼Adafruit NeoPixel庫和一些來自我發現的RTC庫和一些我自己制作的。
// include the library code:
#include
#include
#include
// define pins
#define PIN 6
#define BRIGHTNESS 20 // set max brightness
#define r 5
#define g 5
#define b 5
RTC_DS3231 rtc; // Establish clock object
Adafruit_NeoPixel strip = Adafruit_NeoPixel(12, PIN, NEO_GRB + NEO_KHZ800); // strip object
void setup () {
Wire.begin(); // Begin I2C
rtc.begin(); // begin clock
Serial.begin(9600);
// set pinmodes
pinMode(PIN, OUTPUT);
if (rtc.lostPower()) {
Serial.println(“RTC lost power, lets set the time!”);
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
strip.begin();
strip.show(); // Initialize all pixels to ‘off’
DateTime theTime = rtc.now(); // takes into account DST
byte secondval = theTime.second(); // get seconds
byte minuteval = theTime.minute(); // get minutes
int hourval = theTime.hour();
dot(strip.Color(0,g,0), 50);
}
void loop () {
// get time
DateTime theTime = rtc.now(); // takes into account DST
int minuteval = theTime.minute(); // get minutes
int hourval = theTime.hour(); // get hours
int secondval = theTime.second();
if (minuteval 《= 4 && minuteval 》 0) {
strip.setPixelColor(0, r,0,0);
strip.show();}
else if (minuteval 《= 9) {
strip.setPixelColor(1, r,0,0);
strip.show();}
else if (minuteval 《= 14) {
strip.setPixelColor(2, r,0,0);
strip.show();}
else if (minuteval 《= 19) {
strip.setPixelColor(3, r,0,0);
strip.show();}
else if (minuteval 《= 24) {
strip.setPixelColor(4, r,0,0);
strip.show();}
else if (minuteval 《= 29) {
strip.setPixelColor(5, r,0,0);
strip.show();}
else if (minuteval 《= 34) {
strip.setPixelColor(6, r,0,0);
strip.show();}
else if (minuteval 《= 39) {
strip.setPixelColor(7, r,0,0);
strip.show();}
else if (minuteval 《= 44) {
strip.setPixelColor(8, r,0,0);
strip.show();}
else if (minuteval 《= 49) {
strip.setPixelColor(9, r,0,0);
strip.show();}
else if (minuteval 《= 54) {
strip.setPixelColor(10, r,0,0);
strip.show();}
else if (minuteval 《=59) {
strip.setPixelColor(11, r,0,0);
strip.show();}
delay(1000);
for (int i=0; i《12; i++){
strip.setPixelColor(i, 0,0,0);
strip.show();
}
if (hourval == 0) {
strip.setPixelColor(0, 0,0,b);
strip.show();}
else if (hourval == 1) {
strip.setPixelColor(1, 0,0,b);
strip.show();}
else if (hourval == 2) {
strip.setPixelColor(2, 0,0,b);
strip.show();}
else if (hourval == 3) {
strip.setPixelColor(3, 0,0,b);
strip.show();}
else if (hourval == 4) {
strip.setPixelColor(4, 0,0,b);
strip.show();}
else if (hourval == 5) {
strip.setPixelColor(5, 0,0,b);
strip.show();}
else if (hourval == 6) {
strip.setPixelColor(6, 0,0,b);
strip.show();}
else if (hourval == 7) {
strip.setPixelColor(7, 0,0,b);
strip.show();}
else if (hourval == 8) {
strip.setPixelColor(8, 0,0,b);
strip.show();}
else if (hourval == 9) {
strip.setPixelColor(9, 0,0,b);
strip.show();}
else if (hourval == 10) {
strip.setPixelColor(10, 0,0,b);
strip.show();}
else if (hourval == 11) {
strip.setPixelColor(11, 0,0,b);
strip.show();}
else if (hourval == 12) {
strip.setPixelColor(0, 0,0,b);
strip.show();}
else if (hourval == 13) {
strip.setPixelColor(1, 0,0,b);
strip.show();}
else if (hourval == 14) {
strip.setPixelColor(2, 0,0,b);
strip.show();}
else if (hourval == 15) {
strip.setPixelColor(3, 0,0,b);
strip.show();}
else if (hourval == 16) {
strip.setPixelColor(4, 0,0,b);
strip.show();}
else if (hourval == 17) {
strip.setPixelColor(5, 0,0,b);
strip.show();}
else if (hourval == 18) {
strip.setPixelColor(6, 0,0,b);
strip.show();}
else if (hourval == 19) {
strip.setPixelColor(7, 0,0,b);
strip.show();}
else if (hourval == 20) {
strip.setPixelColor(8, 0,0,b);
strip.show();}
else if (hourval == 21) {
strip.setPixelColor(9, 0,0,b);
strip.show();}
else if (hourval == 22) {
strip.setPixelColor(10, 0,0,b);
strip.show();}
else if (hourval == 23) {
strip.setPixelColor(11, 0,0,b);
strip.show();}
delay(1000);
for (int i=0; i《12; i++){
strip.setPixelColor(i, 0,0,0);
strip.show();
}
// for serial debugging
Serial.print(hourval, DEC);
Serial.print(‘:’);
Serial.print(minuteval, DEC);
Serial.print(‘:’);
Serial.println(secondval, DEC);
}
void dot(uint32_t c, uint8_t wait) {
for (int j=0; j《3; j++) {
for(int i=0; i《12; i++){
strip.setPixelColor(i, c);
strip.show();
delay(wait);
for(int i=0; i《12; i++){
strip.setPixelColor(i, 0, 0, 0);
strip.show();}
}
}
}
第5步:丹麥油
最后和可選步驟是在木材上涂抹一些丹麥油。我真的很喜歡它帶來的顆粒加上它提供了一些防止污漬和水分的保護。所以我強烈推薦它。
你可以刷它或者我只是用舊布擦拭它。
現在剩下的就是把它插上來欣賞。
-
led
+關注
關注
242文章
23780瀏覽量
672235 -
時鐘
+關注
關注
11文章
1891瀏覽量
133009
發布評論請先 登錄
時空刻度:LED電子時鐘系統如何重塑現代節奏

開源項目!手把手教你制作一個互動式LED墻壁時鐘!
LMK04816具有雙環PLL的三輸入低噪聲時鐘抖動消除器數據表

LMK04208具有雙環PLL的低噪聲時鐘抖動消除器數據表

評論