hsr18299 发表于 2015-2-20 13:55:33

DS1307+Arduino 復古的顯示方式

本帖最后由 hsr18299 于 2015-2-20 13:55 编辑

農曆年去哪都人擠人,在家玩玩Arduino也是很好的娛樂!!
先來段視頻,有興趣再往下看,不浪費大家的時間!!
http://v.youku.com/v_show/id_XODk2NTg1Njg0.html

仿指針時鐘


外圈用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如下
#include <Wire.h>
#include <Time.h>
#include <DS1307RTC.h>
#include <FastSPI_LED2.h>

#define NUM_LEDS1 60
#define NUM_LEDS2 24
#define DATA_PIN1 7
#define DATA_PIN2 9

int idex = 0;
int idexs = 0;
int idexm = 0;
int idexh = 0;
int ihue = 0;
int isat = 0;
int ibright = 0;

CRGB smleds;
CRGB hleds;

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

void loop() {
tmElements_t tm;
RTC.read(tm);

idexs = tm.Second;
idexm = tm.Minute;
idexh = tm.Hour;

smleds = CHSV(95, 255, 192);
LEDS.show();

smleds = CHSV(2, 198, 128);
LEDS.show();

if (idexh >12 ) { idexh -= 12;}

if (idexm <= 29) {
    long m = map (idexm, 0,29,0,255);
    hleds = CHSV(164, 255, 255-m);
    hleds[(idexh*2)+1] = CHSV(164, 255, m);
   if (idexh == 12) {
   hleds = CHSV(164, 255, 255-m);
   hleds = CHSV(164, 255, m);}}
else{
    long m = map (idexm, 30,59,0,255);
    hleds[(idexh*2)+1] = CHSV(164, 255, 255-m);
    hleds[(idexh+1)*2] = CHSV(164, 255, m);
   if ((idexh+1)*2 == 24) {
   hleds = CHSV(164, 255, m); }
   if (idexh == 12) {
   hleds = CHSV(164, 255, 255-m);
   hleds = CHSV(164, 255, m);}}
LEDS.show();
delay(1000);
LEDS.clear();
}

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

祝大家新年快樂!!

迷你强 发表于 2015-2-20 17:48:48

做的漂亮、那个灯圈是adafruit买的吧。。。超好看啊

maxims 发表于 2015-2-21 10:15:33

我去,你居然抢先了。
我年前就准备好东西了,结果漏买了屌丝芯片。
所以一直没做出来。表盘我都处理好了

hsr18299 发表于 2015-2-21 11:42:57

maxims 发表于 2015-2-21 10:15 static/image/common/back.gif
我去,你居然抢先了。
我年前就准备好东西了,结果漏买了屌丝芯片。
所以一直没做出来。表盘我都处理好了

呵呵!!
我還再想盤面要畫些什麼?
有沒推薦什麼錶廠的錶盤?

迷你强 发表于 2015-2-21 19:53:19

:lol简单,找名表的表盘,矢量绘图,打印

Maxwell.moojw 发表于 2015-2-23 16:13:13

真是不错不错滴

dReamX 发表于 2015-2-23 18:21:39

楼主的装备不错,看到博世的电起子....

gxlynn 发表于 2015-3-23 11:25:41

啊,我也正打算做个晃眼的钟,你用的零件不错啊

hsr18299 发表于 2015-3-23 16:26:39

gxlynn 发表于 2015-3-23 11:25 static/image/common/back.gif
啊,我也正打算做个晃眼的钟,你用的零件不错啊

呵呵!!
要用好一點的DS1307,我的DS1307時間越跑越快:funk:

喵了咪的薛定谔 发表于 2015-3-24 06:59:51

hsr18299 发表于 2015-3-23 16:26 static/image/common/back.gif
呵呵!!
要用好一點的DS1307,我的DS1307時間越跑越快

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

hsr18299 发表于 2015-3-25 08:17:45

喵了咪的薛定谔 发表于 2015-3-24 06:59 static/image/common/back.gif
我教你一个办法把时间调好:
你拿两根漆包线绞成双绞线焊在DS1307的晶振两脚上,这就相当于并联了一个 ...

感謝您,偷學到一招了!!;P
页: [1]
查看完整版本: DS1307+Arduino 復古的顯示方式