未分類

micro:bitで経過時間を画面(LCD)に表示する方法

変数・時間・文字列の概念が勉強できます

黒白ねこ

今日は、何ができるようになるの?
面白いものが作れたらいいんだけど

今日は、micro:bitを使ってLCDという画面に
起動してからの起動時間を画面に表示します。
変数の概念、時間の計算の仕方、文字列の概念が学習できます。

ロボ
黒白ねこ

それは楽しそうだな。
応用したら、ストップウォッチとか時計が作れるようになるかもしれないね。

そうだね。
今日の勉強で、きっちり基本が身に着いたら
いろいろなことに応用できるよ!

ロボ
黒白ねこ

たのしみ!今日も勉強がんばっていこう!

経過した時間を時:分:秒の形で、LCDに表示します

電源を入れてからの経過時間をLCDに表示します。
時間:分:秒のように、経過時間が何時間何分何秒かを表示します。

LCDに経過時間を表示するために必要なもの

micro:bit本体
LCD 1602
センサーシールド
の3つが必要となります。

micro:bitとLCDの配線

下記記事で紹介しているので参考にしてください。

経過した時間を時:分:秒の形で、LCDに表示するプログラム作成

下記リンクにプログラミングを置いておきます。

https://makecode.microbit.org/_hdPXvr2dqM3pLCD初期化

LCDの初期化・変数の初期化

最初だけブロックでは、LCDの初期化を行います。
詳細は、下記記事を参考にしてください。
そのあとで、何秒経過したかを格納する変数「second」を宣言し、0で初期化します。

経過時間のカウントとLCD表示を常時行う

やっていることを上から紹介します。
一時停止で1000ms(1s)何もせずに待ったあと、
1秒経過したので、secondという変数を1だけ増やします。
LCD1602 showブロックで経過時間をLCDに表示します。

プログラムの実行を一時的に停止します。
停止する時間をミリ秒で指定します。
この場合は、1秒停止したいので、1000を設定しています。

1秒経過したので、経過時間を表す
secondという変数を1だけ増やします。
second変数には、電源を入れてから経過した秒数が入ります。

LCDには文字列しか表示することができません。
数値と文字列は別物で、数値は文字列に変換してからでないと
LCDに表示することができません。
「文字列をつなげる」ブロックで、複数の文字列をつなげています。

:は時間と分、分と秒の区切りに使用しています。
また、経過した秒数から、経過時間・経過分数・経過秒数を計算して、それぞれ文字列に変換して
LCDに表示します。

文字列をLCD1602ブロックに渡すことで、指示した文字列がLCDに表示されます。

経過した秒数を表すsecondを3600で割ることで、時間単位で経過した時間をを求めることができます。
1時間は、1時間×60分×60秒で、3600秒なので、secondを3600で割ります。
3600で割った結果は小数になるので、小数点以下を切り捨てすることで、経過時間が求められます。

経過した時間を分単位で求めます。
secondを3600で割った余りは、その時間に経過した秒数となります。
これをさらに60で割ることで、経過した分数になります。
経過した分数は小数になるので、小数点以下を切り捨てすることで、経過した分数が求められます。

経過した時間であるsecondを、60で割った余りを計算することで、
その分に、経過した秒数を求めることができます。余りなので整数で求まるため、
小数点以下切り捨ては不要です。

-未分類