macsbug

Just another WordPress.com site

HCMS-2921 LED DISPLAY + DS1307 RTC for Arduino UNO

leave a comment »

前回は、DS1302 RTC でしたが、今回は、DS1307 RTC を使用してみました。
DS1307は、配線、時間の設定、共に、DS1302 より使い易いです。

LED_TIME DS1307

 

準備するもの:
1. Arduino UNO
2. HCMS-2921 LED Display (他のDisplayでも良い)
3. I2C RTC DS1307:ebayで、1個105円。aitendoは、1個395円。
4. 電池:CR3032:1個291円(コンビニ)
5. DS1307RTC Libraly
6. LedDisplay Libraly

配線:DS1307 , VCC=5V, GND=GND, SDA=A4, SCL=A5(UNO)

時間の設定:
DS1307RTC Libraly 内にある、SetTimeで行います。時間は、開発マシンの時間を使う様です。
DS1302RTC の場合は、プログラム上で時間を宣言する為に、秒が少しずれます。

感想:DS1302との対比では、配線が1本少ない、時間の設定が簡単、電池容量が大、が利点。
_ 大きさは一回り大きめです(電池の大きさで決まった感じ)。
_ I2Cの便利さを体験しました。
_ 電池代が一番高かった。

スケッチ:


// UNO + HCHS-2921 LED DISPLAY + I2C DS1307 RTC     2015.03.07 s.ono
// UNO A4=SDA, A5=SCL
#include <LedDisplay.h>      // https://www.pjrc.com/teensy/td_libs_LedDisplay.html
#include <Wire.h>
#include <Time.h>
#include <DS1307RTC.h>       // https://www.pjrc.com/teensy/td_libs_DS1307RTC.html
String year_,month_,day_,hours,minutes,seconds;
LedDisplay myDisplay = LedDisplay(2,3,4,5,6,16);  // dat,reg,clk,ena,rst,dL

void setup() {
  myDisplay.begin();
  myDisplay.setBrightness(8);
}

void loop() {
  tmElements_t tm;
  if (RTC.read(tm)) {
    year_   = String(tmYearToCalendar(tm.Year),DEC);
    month_  = st(tm.Month);
    day_    = st(tm.Day);
    hours   = st(tm.Hour);
    minutes = st(tm.Minute);
    seconds = st(tm.Second); 
    String t = hours + ":" + minutes + ":" + seconds + year_ + month_ + day_;
    Serial.println(t);
    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

3月 7, 2015 @ 12:28 pm

カテゴリー: Arduino

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中

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