0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LED环时钟的制作

454398 来源:工程师吴畏 2019-08-20 09:52 次阅读

步骤1:收集零件

我很幸运有一天上班,发现了一个托盘。这个托盘伸出来,因为它看起来不像你的标准,磨机托盘。它是干净的,经过热处理的,并且是最不寻常的坚固橡木。

这个项目是由托盘中的一个制成的。 (在我把它带回家之前我问了老板)

也用过:

12像素ws2812b LED戒指

实时时钟(RTC)模块(使用带有I2C的DS3231)

兼容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
    led
    +关注

    关注

    237

    文章

    22420

    浏览量

    645790
  • 时钟
    +关注

    关注

    10

    文章

    1479

    浏览量

    130295
收藏 人收藏

    评论

    相关推荐

    LED小夜灯的制作和调试

    电子发烧友网站提供《LED小夜灯的制作和调试.pdf》资料免费下载
    发表于 11-06 08:31 2次下载
    <b class='flag-5'>LED</b>小夜灯的<b class='flag-5'>制作</b>和调试

    LED七彩变色灯的制作

    电子发烧友网站提供《LED七彩变色灯的制作.pdf》资料免费下载
    发表于 10-30 11:19 1次下载
    <b class='flag-5'>LED</b>七彩变色灯的<b class='flag-5'>制作</b>

    点阵LED显示屏的原理与制作

    电子发烧友网站提供《点阵LED显示屏的原理与制作.doc》资料免费下载
    发表于 10-30 10:15 2次下载
    点阵<b class='flag-5'>LED</b>显示屏的原理与<b class='flag-5'>制作</b>

    制作RGB HexMatrix物联网时钟

    HexMatrix是具有许多三角形像素的LED矩阵。六个像素组合成一个六边形。FastLED库的矩阵上可以显示许多不同的动画。我还设计了0到9的数字,并为矩阵中的每个数字使用了10个段,并制作了一个IOT时钟
    发表于 09-25 06:58

    LED虚拟制作在电影制作中的重要作用

    随着科技的进步,电影制作技术也在不断提升,其中一个具有革命性的技术改变就是LED虚拟制作的使用。LED虚拟制作的使用已经在革新电影
    的头像 发表于 08-01 17:43 296次阅读

    LED虚拟制作的无限可能性:优势与未来展望

    随着科技的不断进步,LED虚拟制作技术已经成为现代娱乐产业的重要组成部分。LED虚拟制作以其独特的优势,已经在全球范围内改变了影视、直播和舞台表演的
    的头像 发表于 07-21 17:28 280次阅读

    使用ATtiny85制作内部时钟的小型8针Arduino

    电子发烧友网站提供《使用ATtiny85制作内部时钟的小型8针Arduino.zip》资料免费下载
    发表于 07-12 11:33 0次下载
    使用ATtiny85<b class='flag-5'>制作</b>内部<b class='flag-5'>时钟</b>的小型8针Arduino

    使用螺栓模块制作LED玩具

    电子发烧友网站提供《使用螺栓模块制作LED玩具.zip》资料免费下载
    发表于 07-11 16:23 0次下载
    使用螺栓模块<b class='flag-5'>制作</b>的<b class='flag-5'>LED</b>玩具

    使用ESP8266制作基于物联网的数字世界时钟

    电子发烧友网站提供《使用ESP8266制作基于物联网的数字世界时钟.zip》资料免费下载
    发表于 07-05 10:47 36次下载
    使用ESP8266<b class='flag-5'>制作</b>基于物联网的数字世界<b class='flag-5'>时钟</b>

    制作时钟的电容器测量设备

    电子发烧友网站提供《制作时钟的电容器测量设备.zip》资料免费下载
    发表于 07-04 10:16 0次下载
    <b class='flag-5'>制作</b>带<b class='flag-5'>时钟</b>的电容器测量设备

    使用Arduino制作简单的数字时钟

    电子发烧友网站提供《使用Arduino制作简单的数字时钟.zip》资料免费下载
    发表于 06-26 10:48 5次下载
    使用Arduino<b class='flag-5'>制作</b>简单的数字<b class='flag-5'>时钟</b>

    如何制作3D打印的Arduino时钟

    电子发烧友网站提供《如何制作3D打印的Arduino时钟.zip》资料免费下载
    发表于 06-26 09:48 0次下载
    如何<b class='flag-5'>制作</b>3D打印的Arduino<b class='flag-5'>时钟</b>

    为新年倒计时制作的实时时钟

    电子发烧友网站提供《为新年倒计时制作的实时时钟.zip》资料免费下载
    发表于 06-19 10:19 0次下载
    为新年倒计时<b class='flag-5'>制作</b>的实时<b class='flag-5'>时钟</b>

    制作Hexabitz RGB LED项链

    电子发烧友网站提供《制作Hexabitz RGB LED项链.zip》资料免费下载
    发表于 06-12 14:42 0次下载
    <b class='flag-5'>制作</b>Hexabitz RGB <b class='flag-5'>LED</b>项链

    为架子鼓制作动画灯/LED

    电子发烧友网站提供《为架子鼓制作动画灯/LED.zip》资料免费下载
    发表于 06-09 10:48 0次下载
    为架子鼓<b class='flag-5'>制作</b>动画灯/<b class='flag-5'>LED</b>