极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 19494|回复: 10

DS1307+Arduino 復古的顯示方式

[复制链接]
发表于 2015-2-20 13:55:33 | 显示全部楼层 |阅读模式
本帖最后由 hsr18299 于 2015-2-20 13:55 编辑

農曆年去哪都人擠人,在家玩玩Arduino也是很好的娛樂!!
先來段視頻,有興趣再往下看,不浪費大家的時間!!


仿指針時鐘


外圈用4個Adafruit NeoPixel 1/4 60 Ring - WS2812 5050 RGB LED w/ Integrated Drivers 模擬分針跟秒針
內圈用1個Adafruit NeoPixel Ring - 24 x WS2812 5050 RGB LED with Integrated Drivers 模擬時針移動


可畫上自己喜歡的面板


sketch用上兩個庫DS1307及FastLED,一併附上



sketch如下
  1. #include <Wire.h>
  2. #include <Time.h>
  3. #include <DS1307RTC.h>
  4. #include <FastSPI_LED2.h>

  5. #define NUM_LEDS1 60
  6. #define NUM_LEDS2 24
  7. #define DATA_PIN1 7
  8. #define DATA_PIN2 9

  9. int idex = 0;
  10. int idexs = 0;
  11. int idexm = 0;
  12. int idexh = 0;
  13. int ihue = 0;
  14. int isat = 0;
  15. int ibright = 0;

  16. CRGB smleds[NUM_LEDS1];
  17. CRGB hleds[NUM_LEDS2];

  18. void setup() {
  19.   FastLED.addLeds<WS2812B, DATA_PIN1, RGB>(smleds, NUM_LEDS1);  
  20.   FastLED.addLeds<WS2812B, DATA_PIN2, RGB>(hleds, NUM_LEDS2);
  21. }

  22. void loop() {
  23.   tmElements_t tm;
  24.   RTC.read(tm);
  25.   
  26.   idexs = tm.Second;
  27.   idexm = tm.Minute;
  28.   idexh = tm.Hour;

  29.   smleds[idexm] = CHSV(95, 255, 192);
  30.   LEDS.show();
  31.   
  32.   smleds[idexs] = CHSV(2, 198, 128);
  33.   LEDS.show();

  34.   if (idexh >12 ) { idexh -= 12;}
  35.   
  36.   if (idexm <= 29) {
  37.     long m = map (idexm, 0,29,0,255);
  38.     hleds[idexh*2] = CHSV(164, 255, 255-m);
  39.     hleds[(idexh*2)+1] = CHSV(164, 255, m);
  40.      if (idexh == 12) {
  41.      hleds[0] = CHSV(164, 255, 255-m);
  42.      hleds[1] = CHSV(164, 255, m);}}
  43.   else  {
  44.     long m = map (idexm, 30,59,0,255);
  45.     hleds[(idexh*2)+1] = CHSV(164, 255, 255-m);
  46.     hleds[(idexh+1)*2] = CHSV(164, 255, m);
  47.      if ((idexh+1)*2 == 24) {
  48.      hleds[0] = CHSV(164, 255, m); }
  49.      if (idexh == 12) {
  50.      hleds[1] = CHSV(164, 255, 255-m);
  51.      hleds[2] = CHSV(164, 255, m);}}
  52.   LEDS.show();
  53.   delay(1000);
  54.   LEDS.clear();
  55. }
复制代码


接線部分應該不用多說了(我承認是我太懶了)

祝大家新年快樂!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-2-20 17:48:48 | 显示全部楼层
做的漂亮、那个灯圈是adafruit买的吧。。。超好看啊
回复 支持 反对

使用道具 举报

发表于 2015-2-21 10:15:33 | 显示全部楼层
我去,你居然抢先了。
我年前就准备好东西了,结果漏买了屌丝芯片。
所以一直没做出来。表盘我都处理好了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-21 11:42:57 | 显示全部楼层
maxims 发表于 2015-2-21 10:15
我去,你居然抢先了。
我年前就准备好东西了,结果漏买了屌丝芯片。
所以一直没做出来。表盘我都处理好了

呵呵!!
我還再想盤面要畫些什麼?
有沒推薦什麼錶廠的錶盤?
回复 支持 反对

使用道具 举报

发表于 2015-2-21 19:53:19 | 显示全部楼层
简单,找名表的表盘,矢量绘图,打印
回复 支持 反对

使用道具 举报

发表于 2015-2-23 16:13:13 | 显示全部楼层
真是不错不错滴
回复 支持 反对

使用道具 举报

发表于 2015-2-23 18:21:39 | 显示全部楼层
楼主的装备不错,看到博世的电起子....
回复 支持 反对

使用道具 举报

发表于 2015-3-23 11:25:41 | 显示全部楼层
啊,我也正打算做个晃眼的钟,你用的零件不错啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-23 16:26:39 | 显示全部楼层
gxlynn 发表于 2015-3-23 11:25
啊,我也正打算做个晃眼的钟,你用的零件不错啊

呵呵!!
要用好一點的DS1307,我的DS1307時間越跑越快
回复 支持 反对

使用道具 举报

发表于 2015-3-24 06:59:51 | 显示全部楼层
hsr18299 发表于 2015-3-23 16:26
呵呵!!
要用好一點的DS1307,我的DS1307時間越跑越快


我教你一个办法把时间调好:
你拿两根漆包线绞成双绞线焊在DS1307的晶振两脚上,这就相当于并联了一个小电容(pf级别的),晶振就会变慢了。然后根据变慢的程度剪短双绞线,直到时间准确为止。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-25 08:17:45 | 显示全部楼层
喵了咪的薛定谔 发表于 2015-3-24 06:59
我教你一个办法把时间调好:
你拿两根漆包线绞成双绞线焊在DS1307的晶振两脚上,这就相当于并联了一个 ...

感謝您,偷學到一招了!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 17:25 , Processed in 0.044288 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表