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();
}
接線部分應該不用多說了(我承認是我太懶了)
祝大家新年快樂!!
做的漂亮、那个灯圈是adafruit买的吧。。。超好看啊 我去,你居然抢先了。
我年前就准备好东西了,结果漏买了屌丝芯片。
所以一直没做出来。表盘我都处理好了 maxims 发表于 2015-2-21 10:15 static/image/common/back.gif
我去,你居然抢先了。
我年前就准备好东西了,结果漏买了屌丝芯片。
所以一直没做出来。表盘我都处理好了
呵呵!!
我還再想盤面要畫些什麼?
有沒推薦什麼錶廠的錶盤? :lol简单,找名表的表盘,矢量绘图,打印 真是不错不错滴 楼主的装备不错,看到博世的电起子.... 啊,我也正打算做个晃眼的钟,你用的零件不错啊 gxlynn 发表于 2015-3-23 11:25 static/image/common/back.gif
啊,我也正打算做个晃眼的钟,你用的零件不错啊
呵呵!!
要用好一點的DS1307,我的DS1307時間越跑越快:funk: hsr18299 发表于 2015-3-23 16:26 static/image/common/back.gif
呵呵!!
要用好一點的DS1307,我的DS1307時間越跑越快
我教你一个办法把时间调好:
你拿两根漆包线绞成双绞线焊在DS1307的晶振两脚上,这就相当于并联了一个小电容(pf级别的),晶振就会变慢了。然后根据变慢的程度剪短双绞线,直到时间准确为止。 喵了咪的薛定谔 发表于 2015-3-24 06:59 static/image/common/back.gif
我教你一个办法把时间调好:
你拿两根漆包线绞成双绞线焊在DS1307的晶振两脚上,这就相当于并联了一个 ...
感謝您,偷學到一招了!!;P
页:
[1]