查看: 12172|回复: 71

[项目] 基于3D打印+Arduino的LED时钟

  [复制链接]
本帖最后由 chenhanzhong 于 2019-10-9 09:24 编辑

基于3D打印+Arduino的LED时钟

成品效果
开机动画.gif


-----------------------------------------------前言---------------------------------------------------
最近瞎逛Thingiverse找3D模型时,无意间看到某个外国小哥做的Grid LED时钟。觉得挺好看,想到家里刚好缺个时钟。那就动手整个吧。然后开始研究外国小哥的作品,发现他做了好几个版本,还有加长版(如下图),感觉有点长。
43d05f19316f64b07ff985fa9415b428_preview_featured.jpg 91d6e57d731066ea463cacf9e32a94b5_preview_featured.jpg
--------------------------------------------设计思路------------------------------------------------
1、翻看外国小哥的制作说明,一开始想直接用他的模型的,但是他的作品不是太长就是太短。短的显示4位数时间(24小时制)有点紧凑,长的我又不是很喜欢。
2、想要显示4位数时间(24小时制),至少都要17x5点阵。还是自己用solidworks画结构吧。
3、一开始想做锂电池供电式的,后来发现这么多灯珠实在耗电,还是选择做插电式的。
4、用Excel模拟排版,方便灯带安装和编程。
截图201907222224456773.png
-----------------------------------制作过程----------------------------------
一、材料准备
主要材料清单如下:
1. Arduino Nano及数据线 x 1
2.DS3231时钟模块 x 1;(功能很强大的一个时钟模块,精度高,且内置温度测量,但是温度误差±3℃)
3. 电源适配器5V/1A适配器(带
DC5.5孔插头,有多余的usb充电器可以只买个USB转DC5.5电源线) x 1;
4.
DC5.5圆孔插座 x 1;
5.WS2812B灯带2米,规格60灯/米,裸板带背胶;推荐
灯带购买网址
6.电路板、排针、插座、导线若干(最好是22#线,因为这么多灯珠,电流还是蛮大的)。
7.3D打印结构,模型stl文件 LED_clock _STL_by lonnie.zip (139.54 KB, 下载次数: 221)

ebeeb  学徒

发表于 2020-3-17 21:23:13











LED_clock:15:8: error: no matching function for call to 'DS3231::DS3231()'

DS3231 Clock; //定义时钟对象

        ^~~~~

In file included from C:\Users\S7\AppData\Local\Temp\arduino_modified_sketch_447217\LED_clock.ino:2:0:

d:\Users\S7\Documents\Arduino\libraries\DS3231/DS3231.h:80:3: note: candidate: DS3231::DS3231(uint8_t, uint8_t)

   DS3231(uint8_t data_pin, uint8_t sclk_pin);

   ^~~~~~

d:\Users\S7\Documents\Arduino\libraries\DS3231/DS3231.h:80:3: note:   candidate expects 2 arguments, 0 provided

d:\Users\S7\Documents\Arduino\libraries\DS3231/DS3231.h:77:7: note: candidate: constexpr DS3231::DS3231(const DS3231&)

class DS3231

       ^~~~~~

d:\Users\S7\Documents\Arduino\libraries\DS3231/DS3231.h:77:7: note:   candidate expects 1 argument, 0 provided

d:\Users\S7\Documents\Arduino\libraries\DS3231/DS3231.h:77:7: note: candidate: constexpr DS3231::DS3231(DS3231&&)

d:\Users\S7\Documents\Arduino\libraries\DS3231/DS3231.h:77:7: note:   candidate expects 1 argument, 0 provided

C:\Users\S7\AppData\Local\Temp\arduino_modified_sketch_447217\LED_clock.ino: In function 'void ReadDS3231()':

LED_clock:108:20: error: 'class DS3231' has no member named 'getSecond'

   second_now=Clock.getSecond();

                    ^~~~~~~~~

LED_clock:109:20: error: 'class DS3231' has no member named 'getMinute'; did you mean 'getTime'?

   minute_now=Clock.getMinute();

                    ^~~~~~~~~

                    getTime

LED_clock:110:18: error: 'class DS3231' has no member named 'getHour'

   hour_now=Clock.getHour(h12, PM);

                  ^~~~~~~

LED_clock:111:18: error: 'class DS3231' has no member named 'getDate'; did you mean 'setDate'?

   date_now=Clock.getDate();

                  ^~~~~~~

                  setDate

LED_clock:112:19: error: 'class DS3231' has no member named 'getMonth'; did you mean 'getMonthStr'?

   month_now=Clock.getMonth(Century);

                   ^~~~~~~~

                   getMonthStr

LED_clock:113:18: error: 'class DS3231' has no member named 'getYear'; did you mean 'getTemp'?

   year_now=Clock.getYear();

                  ^~~~~~~

                  getTemp

LED_clock:116:20: error: 'class DS3231' has no member named 'getDoW'; did you mean 'setDOW'?

   week_now = Clock.getDoW();//获取星期

                    ^~~~~~

                    setDOW

exit status 1
no matching function for call to 'DS3231::DS3231()'


请问这个是为什么?
回复

使用道具 举报

1528  见习技师

发表于 2020-4-20 18:51:22

改亮度直接可以让时间的显示长一些,不然看时间还要等 一会time_show()中  标红的两个12改大,我试了一下,30比较好.(Adafruit_NeoPixel库亮度范围是0-255),但在这里不要设太大,因为这个程序亮度是渐变的,如果太大的话显示时间会较长,如果要亮度大点的话,可以把循环的步长设大点.

for(int j=0; j < 12; j++)
  {
    strip.clear();//灭掉所有灯
    delay(5);
    brightness = brightness + fadeAmount;
    if (brightness == 0 || brightness == 12)
    {
      fadeAmount = -fadeAmount ;
     }



以下是楼主大神的源码

void time_show()
{
brightness = 0; //LED灯亮度
int fadeAmount = 1;// 亮度渐变值
int R_1;
for(int i=0; i<2; i++)
  {
  for(int j=0; j < 12; j++)
  {
    strip.clear();//灭掉所有灯
    delay(5);
    brightness = brightness + fadeAmount;
    if (brightness == 0 || brightness == 12)
    {
      fadeAmount = -fadeAmount ;
     }
     if(brightness > 5 )
       { R_1 = 1 ;}  
     else
      {  R_1 = 0 ;}
    strip.setPixelColor(25, R_1, brightness, 0);
    strip.setPixelColor(59, R_1, brightness, 0);//显示中间两个点
   
    /*--------------------------*///获取时数十位,发送数据给灯珠
    int H_ten = hour_now / 10 % 10;
    for(int i=1;i<=Hour_ten[H_ten][0];i++)
    {
    strip.setPixelColor(Hour_ten[H_ten], R_1, brightness, 0);
    }
    /*--------------------------*///获取时数个位,发送数据给灯珠
    int H_unit = hour_now / 1 % 10;
    for(int i=1;i<=Hour_unit[H_unit][0];i++)
    {
    strip.setPixelColor(Hour_unit[H_unit], R_1, brightness, 0);
    }
    /*--------------------------*///获取分数十位,发送数据给灯珠
    int M_ten = minute_now / 10 % 10;
    for(int i=1;i<=Min_ten[M_ten][0];i++)
    {
    strip.setPixelColor(Min_ten[M_ten], R_1, brightness, 0);
    }
    /*--------------------------*///获取分数个位,发送数据给灯珠
    int M_unit = minute_now / 1 % 10;
    for(int i=1;i<=Min_unit[M_unit][0];i++)
    {
    strip.setPixelColor(Min_unit[M_unit], R_1, brightness, 0);
    }
    strip.show();//LED显示数据
    delay(100);//延迟
  }
   /*----------------------------------*///整点提示
    if(minute_now == 0)
  {
   if(second_now < 10)
    {
    for(int t = 0; t<3; t++)
      {
    digitalWrite(Buzz,HIGH);
    delay(200);
    digitalWrite(Buzz,LOW);
    delay(200);
       }
     }
   }
   /*-------------------------------------*///整点提示
  }

}
/*-----------------------------------------------------------------*/

LED_clock

LED_clock
回复

使用道具 举报

桃花开了i  见习技师

发表于 2020-4-17 02:43:28

为什么一直提示 吧 Arduino:1.8.12 (Windows 10), 开发板:"Arduino Nano, ATmega328P"

In file included from C:\Users\32003\Documents\arduino代码\LED_clock\LED_clock.ino:3:0:

C:\Users\32003\Documents\Arduino\libraries\DS18B20\src/DS18B20.h:5:10: fatal error: OneWire.h: No such file or directory

#include <OneWire.h>

          ^~~~~~~~~~~

compilation terminated.

exit status 1
为开发板 Arduino Nano 编译时出错。

在文件 -> 首选项开启
“编译过程中显示详细输出”选项
这份报告会包含更多信息。

有哪位大佬告知一下
回复

使用道具 举报

汤果  高级技匠

发表于 2019-7-23 06:34:36

真漂亮啊~~~
回复

使用道具 举报

KIKIYA  管理员

发表于 2019-7-23 10:16:00

首先我要有一个3D打印机
回复

使用道具 举报

gray6666  高级技匠 来自手机

发表于 2019-7-23 18:11:18

chenhanzhong 发表于 2019-7-23 00:08
基于3D打印+Arduino的LED时钟
成品效果


炫酷。。。。。。
回复

使用道具 举报

铁熊  高级技匠

发表于 2019-7-23 19:20:45

好看!
回复

使用道具 举报

屌丝王小明  初级技匠

发表于 2019-7-24 09:44:31

好看又实用
回复

使用道具 举报

#嘉诚欧巴#  中级技师

发表于 2019-7-24 21:24:41

楼主真帅
回复

使用道具 举报

破风而来  初级技师

发表于 2019-7-26 11:27:09

厉害!!
回复

使用道具 举报

江宇瀚  见习技师 来自手机

发表于 2019-7-26 17:40:17

chenhanzhong 发表于 2019-7-23 00:08
基于3D打印+Arduino的LED时钟
成品效果


回复

使用道具 举报

jokerlzn  学徒

发表于 2019-7-27 09:50:52

楼主 灯条控制的库文件 是自己写的吗?可否共享一下?等级不够无法下载!
回复

使用道具 举报

chenhanzhong  高级技师
 楼主|

发表于 2019-7-29 13:59:30

jokerlzn 发表于 2019-7-27 09:50
楼主 灯条控制的库文件 是自己写的吗?可否共享一下?等级不够无法下载! ...

在Arduino IDE 管理库里面搜Adafruit_NeoPixel
回复

使用道具 举报

韩俊  见习技师

发表于 2019-8-1 13:15:22

厉害
回复

使用道具 举报

狂奔稻草  学徒

发表于 2019-8-5 09:55:52

为啥查看不了附件
回复

使用道具 举报

熹宝快睡觉  见习技师

发表于 2019-8-6 15:28:29

顶一个,东西不错,缺个打印机
回复

使用道具 举报

HS0C_9uA  见习技师

发表于 2019-8-7 14:49:53

感谢分享。。
回复

使用道具 举报

开心西奈  见习技师

发表于 2019-8-13 10:03:57

太漂亮了 如何能够下载文件呢
回复

使用道具 举报

huahua_  见习技师

发表于 2019-8-17 04:20:30

回复

使用道具 举报

huahua_  见习技师

发表于 2019-8-17 04:21:35

谢谢,很棒,很想试试,但是等级不够不能下载附件,编程太难不会写,
回复

使用道具 举报

joone  见习技师

发表于 2019-8-17 10:37:58

不错不错,学习了
回复

使用道具 举报

panda  学徒

发表于 2019-8-17 22:43:56

非常不错,准备做一个谢谢分享
回复

使用道具 举报

春风化雨  见习技师

发表于 2019-8-18 19:06:19

学习学习
回复

使用道具 举报

1234下一页
高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail