おもしろ工作・プログラミング動画配信中!せでぃあのYouTube

Arduino UNO R4 MinimaでRTC機能を使ったLCD時計表示をさせる

Arduino UNO R4 MinimaでRTC機能を使ったLCD時計表示をさせる
  • URLをコピーしました!

この記事内には、プロモーションが含まれます。

こんにちは、せでぃあ(@cediablog)です。

このたび、Arduino UNO R3の後継機種であるArduino UNO R4 Minimaを購入しました。

今回既存のUNO R3にはなかった新機能「RTC(リアルタイムクロック)」を使ってみたいと思います。

RTC機能とは、かんたんに言うと「カレンダー時計機能」です。

今回、このRTC機能を使って現在の日時をLCD(液晶ディスプレイ)に表示させるプログラムを作ってみました。

RTC機能を確認するための機器配線状態画像
RCT機能を使って、液晶ディスプレイに日時を表示させます
せでぃあ

Arduinoの新機種に興味がある方は、ぜひ最後までご覧ください

この記事を読んでわかること
  • RTC(リアルタイムクロック)機能の使い方
  • LCDディスプレイ表示させるための配線方法
  • Arduino IDEでのプログラミング方法
この記事を書いた人
せでぃあ

せでぃあはこんな人物です

✅プライム企業に勤める電気・機械設計エンジニア

✅親子の絆を深めるため、夏休みに子供と一緒に電子工作を製作

✅Arduinoプログラミングを用いて作ったプログラミング電子工作「信GO機」が市の発明くふう展で「優秀賞」を受賞

✅本ブログにてArduinoスクラッチプログラミングLESSON記事投稿中

✅YouTubeチャンネル「せでぃあブログちゃんねる」運営中

目次

購入方法と価格

Arduino公式サイトからも購入できますが、海外からの発送になるためコストや納期を考えたら国内サイトからの購入がおすすめです!

R4 Minimaが買える国内サイト

スイッチサイエンス:3,410円(税込み)+送料無料
秋月電子通商:3,190円(税込み)+送料

Amazon:3,246円(税込み)+送料

価格は変動することがありますので、リンク先にて現在価格を確認してください。

私は、スイッチサイエンスが在庫なし状態だったので、在庫のある秋月電子通商から購入しました。

せでぃあ

遊べるマイコンとしては、お値打ちなモデルだと思います!

RTC(リアルタイムクロック)機能について

時計

Arduino UNO R4 Minimaの新機能「RTC(リアルタイムクロック)」は、Arduinoに搭載されるルネサス製のコア「RA4M1」のライブラリを使用して使います。

とはいっても、Arduino IDEプログラムを作って動作させるだけなので、特に意識する必要はありません。

RTCで取得できるデータ
  • 日付(年、月、日)
  • 時間(時、分、秒)
せでぃあ

従来のUNO R3では、別途RTCモジュール接続が必要でした

コア「RA4M1」の詳細は、ルネサスの公式ページを参照ください。

RTC機能を使った、LCD表示制御回路で使うもの

RTC機能を使った、LCD表示制御回路で使うもの
配線が完了しプログラム転送できる状態写真
準備するもの
  1. パソコン
  2. Arduino本体
  3. USBケーブル
  4. ブレッドボード
  5. 抵抗(1kΩ)
  6. LCD1602モジュール
  7. ジャンパー線(オスーオス)×14本

今回はELEGOO社のスーパースターターキットに含まれる部品を使っています。

キットに含まれる部品は、機器名後に【キット】と記載しています。

コスパ最強のArduinoキットに含まれる、すべてのパーツを紹介しています。

パソコン

プログラムを作成するために必要です。

プログラム制御の演算はArduino側で行うため、パソコンのSPECは一般的なモデルで十分対応可能です。

パソコンのOSはWindows、Macどちらでも対応可能です。

Arduino UNO R4 Minima本体

Aruino Uno R4 minimaの本体写真
Arduino UNO R4 Minima本体

今回は、Arduino純正品の「Arduino UNO R4 Minima」を使用します。

納期や価格面から、国内から発送される通販サイトからの購入がおすすめです。

R4 Minimaが買える国内サイト

Amazon
スイッチサイエンス
秋月電子通商

Arduino UNO R4 Minimaの始め方は、こちらを参考にしてみてください。

せでぃあ

ピン配置などの基本的な仕様は、UNO R3と同じです!

USBケーブル(TypeC)

TypeC USBケーブル
TypeCのUSBケーブル

UNO R3は本体に接続する側の端子形状が(TypeB)でしたが、R4 MinimaではTypeC形状になります。

パソコンとArduinoを接続してプログラムデータのやり取りをするために必要です。

せでぃあ

USBケーブルは別売りなので、買い忘れに注意してください。

ブレッドボード【キット】

ブレッドボードの機能説明図
ブレッドボードの機能説明図

たくさんの穴が開いていて、部品の端子を穴に差し込むだけで電気的に接続が可能な板です。

説明図は30列のショート版ですが、スーパースターターキットに含まれる63列タイプでも機能は同じです

ブレッドボードだけの購入も可能です。

抵抗(1kΩ)【キット】

1kΩ抵抗と色による見分け方
1kΩ抵抗と色による見分け方

1kΩの抵抗を1本使用します。

今回は、液晶ディスプレイの文字表示コントラスト調節に使います。

LCD1602モジュールには可変抵抗器を使って、コントラスト調節ができる機能がありますが、今回は1kΩ抵抗器を接続してコントラストを固定しています。

LCD1602モジュール【キット】

LCD1602モジュール
LCD1602モジュール

液晶ディスプレイ「LCD(Liquid Crystal Display)」モジュールになります。

数字や文字などを表示させることが可能です。

LCDの機能については、こちらのLESSON記事にて詳しく説明しています。

ジャンパー線(オスーオス)【キット】

キットに同梱されているジャンパー線(オスーオス)の説明
ジャンパー線

ジャンパー線を14本使用します。

Arduino本体とブレッドボードの接続や、ブレッドボードの共通電源ライン(GNDまたは5V)からブレッドボード内の配線系統穴に差し込んで接続するのに使います。

RTC機能を確認するプログラム

RTC機能を確認するための機器配線状態画像

配線が完了したところで、LCD(液晶ディスプレイ)に日時表示させるプログラムを作っていきます。

ボードマネージャのインストール

Arduino IDEにR4 Minimaのボードマネージャをインストールします。

今回はArduino IDE 1.8でのインストール方法を紹介します。

Arduino IDEのインストールから始める方は、こちらの記事を参考にしてください。

STEP
ツール→ボード→ボードマネージャを選択します。
①ツール→ボード→ボードマネージャを選択します。
STEP
検索窓に「minima」と入力して、Arduino UNO R4 Boadsをインストールします。
②検索窓に「minima」と入力して、Arduino UNO R4 Boadsをインストールします。
STEP
ツール→ボード→Arduino Renesas UNO R4 Boards→Arduino UNO R4 Minimaを選択して完了です。
③ツール→ボード→Arduino Renesas UNO R4 Boards→Arduino UNO R4 Minimaを選択して完了です。

動作プログラム

/* 作品名:UNO R4 Minima RTC */
/* 作成者:せでぃあ https://cediablog.com */
/* RTC機能によるLCDへの日時表示プログラム */
#include <RTC.h>
#include <LiquidCrystal.h>
const int LCD_D4_SOCKET   = 4;   //データビットD4入力ソケット番号
const int LCD_D5_SOCKET   = 5;   //データビットD5入力ソケット番号
const int LCD_D6_SOCKET   = 6;   //データビットD6入力ソケット番号
const int LCD_D7_SOCKET   = 7;   //データビットD7入力ソケット番号
const int LCD_RS_SOCKET   = 8;   //レジスタ選択入力ソケット番号
const int LCD_E_SOCKET    = 9;   //イネーブル入力ソケット番号
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);  //LCD制御ピンの割り当て
  
void setup() {
  // put your setup code here, to run once: プログラム起動時1回だけ処理される回路
  RTC.begin();                          //時刻の初期化
  //開始時刻の設定
  RTCTime startTime(27, Month::JULY, 2023, 19, 57, 00, DayOfWeek::THURSDAY, SaveLight::SAVING_TIME_ACTIVE);
  RTC.setTime(startTime);               //時刻の設定
  lcd.begin(16, 2);                     //LCDの桁数と行数を指定
}
void loop() {
  // put your main code here, to run repeatedly: プログラム起動後ループ処理される回路
  RTCTime currentTime;                  //時刻の格納先
  RTC.getTime(currentTime);             //RTCから時計データを取得
  lcd.clear();                          //LCDディスプレイをクリア
  lcd.setCursor(0,0);                   //LCDカーソルを上段一番左に配置
  lcd.print(currentTime.getYear());     //「年」
  lcd.print("/");
  lcd.print(Month2int(currentTime.getMonth())); //「月」
  lcd.print("/");
  lcd.print(currentTime.getDayOfMonth());//「日」
  lcd.setCursor(0,1);                    //LCDカーソルを下段一番左に配置
  lcd.print(currentTime.getHour());      //「時」
  lcd.print(":");
  lcd.print(currentTime.getMinutes());   //「分」
  lcd.print(":");
  lcd.print(currentTime.getSeconds());   //「秒」
  delay(200);                            //0.2秒ディレイ
}

LCDディスプレイに日時を表示するプログラムです。

本題のRTC機能とは関係ないのですが、「秒」などの要素が2ケタから1ケタに変わるときに2ケタ時の数値が残る問題が発生しました。

59秒→0秒になるときに、下記問題が発覚しました。

「58」→「59」→「09」→「19」と9の表示が残ってしまいます。

対策として、毎スキャンディスプレイ表示をクリアすることにしました。

LCD表示のクリア命令

lcd.clear();

せでぃあ

Arduino公式ページ記載のサンプルをアレンジして作成しました

RTC制御の命令文については、公式ページで詳しく解説されています。

>>Arduino公式のRTC機能解説ページ

RTC動作確認動画はこちら!

いいね!と思ったらチャンネル登録していただけますと嬉しいです!

まとめ

Arduino UNO R4 MinimaはRTC機能が内蔵されているため、R3で必要だったRTCモジュールが不要です。

そのため、ブレッドボードを占有することなくRTC機能が使えるので、大変便利ですね!

秋月電子通商での税込み販売価格は以下となっており、R4のほうが安いです。

・R3:3630円+送料
・R4:3190円+送料 

純正品を買うならR4 Minimaの購入がおすすめです。

以上で、Arduino UNO R4 MinimaのRTC機能の紹介を終わります。

せでぃあ

その他の新機能も試してみたいです!

最後まで読んでいただき、ありがとうございました。

Arduino R3互換品キットなら、本体と30以上の電子パーツが入って5,000円程度と高コスパです。

ELEGOOのArduino互換キットは本ブログのLESSONシリーズでも活用しています。

Arduino UNO R4 Minimaの購入方法や価格を知りたい方は、こちらの記事もおすすめです!

応援ありがとうございます(^^)/

Arduino UNO R4 MinimaでRTC機能を使ったLCD時計表示をさせる

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次