macsbug

Just another WordPress.com site

HCMS-2921 LED DISPLAY + DS1302 RTC for Arduino UNO

leave a comment »

HCMS-2921 LED DISPLAY を動かしたくなり DS1302 RTC で、デジタル時計を作ってみた。              2015.02.20

HCMS-2921:LED駆動用CMOS ICを搭載した高性能ドットマトリクス表示器で連結使用も可能。
DS1302 RTC:リアルタイムクロック。Seconds, Minutes, Hours, Date of the Month, Month,
_ Day of the Week, and Year with Leap-Year の設定と値を取得できる。
Arduino UNO のスケッチは、記事の下に示します。

tm tn

 

用意するもの:
1. HCMS−2921:サンプル。 2. DS1302 RTC:ebay 1個224円(電池付)。(aitendo=1個395円,電池無し)

2
|
|
|
|
|
|
|
|
|
|
|

3. LED DISPLAY Library: 参考 LedDisplay Library
4. DS1302 RTC virtuabotixRTC Library
5. Arduino UNO。

配線:Arduino LedDisplay Libraryと、HCMS-2921を参照。電源と信号5本(data,rs,clock,enable.reset)。

メモ:
消費電力:320mA。(Arduino UNO+LED+RTC,myDisplay.setBrightness=15)
輝度設定可能:myDisplay.setBrightness(0〜15); 消費電力を下げる事ができる。例:8 -> 220mA。
熱:ディスプレーの表面は暖かい。
DS1302 RTC : RST は、CE と同等の名称です。
Libraryのおかげで、スケッチは短くできました。
Energia MSP430G2 LaunchPad : スケッチは、Pin番号を設定するのみで動作する。
_ LED1列使用時、setBrightness=15 で、190mA, 8で、70mA。

参考:
Arduino:LedDisplay Library。 Arduino:DS1302 Real Time Clock。 GitHub:DS1302 RTC library
fenrir’s memorandum:HCMS-2912を動かす。  Andreas Reinhardt:Teensy 2.0 + HCMS2975
Avago:LED ソリューション。  Digi-key:7413円(20個単位 148261円)

スケッチ:


// HCMS-2921 LED DISPLAY + DS1302 RTC for Arduino UNO       2015.02.20 macsbug
#include <LedDisplay.h>      // https://www.pjrc.com/teensy/td_libs_LedDisplay.html
#include <virtuabotixRTC.h>  // https://www.virtuabotix.com/virtuabotix-ds1302-real-time-clock-module-pin-out-coding-guide/
String year,month,day,hours,minutes,seconds;
LedDisplay myDisplay = LedDisplay(2,3,4,5,6,16);  // dat,reg,clk,ena,rst,dL
virtuabotixRTC myRTC(8,9,10);                     // SCLK,I/O,RST(CE)

void setup() {
 myDisplay.begin();
 myDisplay.setBrightness(8);                      // 0 to 15
 //seconds, minutes, hours, day of the week, day, month, year _ setup
 //myRTC.setDS1302Time(0, 26, 17, 2, 19, 2, 2015);
}

void loop() {
 myRTC.updateTime();
 year    = String(myRTC.year,DEC);  
 month   = st(myRTC.month);
 day     = st(myRTC.dayofmonth);
 hours   = st(myRTC.hours);
 minutes = st(myRTC.minutes);
 seconds = st(myRTC.seconds);
 String t = hours + ":" + minutes + ":" + seconds + year + month + day; 
 myDisplay.home();
 myDisplay.print(t);
}

String st(int data){
 String rt, sp = "";
 if ( data < 10 ){ sp = "0" ;}
 rt = sp + String(data,DEC);
 return rt;
}

Written by macsbug

2月 20, 2015 @ 5:04 am

カテゴリー: Arduino

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。