変数・時間・文字列の概念が勉強できます
今日は、何ができるようになるの?
面白いものが作れたらいいんだけど
今日は、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で割った余りを計算することで、
その分に、経過した秒数を求めることができます。余りなので整数で求まるため、
小数点以下切り捨ては不要です。