arduino arduino基礎

Arduinoを用いて7セグメントで経過時間を表示

投稿日:2018年10月18日 更新日:

こんばんは!
今回は7セグメントディスプレイを使ってタイマーを作っていきたいと思います。

使用するもの

・Arduinoメインボード(https://amzn.to/2TyXG31)
・USBケーブル(https://amzn.to/2TyXG31)
・ブレッドボード(https://amzn.to/2RavGpK)
・ジャンパワイヤ(https://amzn.to/2CfON7I)
・7セグメントディスプレイOSL40562-LR(http://akizukidenshi.com/catalog/g/gI-03673/)

7セグメントディスプレイについて

7セグメントディスプレイ(以下7セグ)とは数値を示す7つとドットを示す1つのLEDが配置されているものです。
部品の耐久性が高いため、幅広い分野で使用されています。
7セグにはアノード(+極)が共通の「アノードコモン」、カソード(ー極)が共通の「カソードコモン」の二つがあります。
アノードコモンとカソードコモンでは配線が異なるので注意が必要です。

7セグは図のようにa~gとdpのLEDが割り振られており、それぞれのLEDのON、OFFによって数字を表現します。

例えばa、b、g、e、dのLEDをONにすると数字の2を表現することができます。

今回は4桁のカソードコモンの7セグを使っていきます。

手順

まずハード側からやっていきます。図のようにジャンパワイヤでarduinoと7セグを接続します。

今回はハード側はこれだけです。次にプログラムを書いていきます。

Arduino IDEを開いて次のコードを書き込んでいきます。

簡単に説明すると
lightNumber関数は数字を表示するためのものです。
1の時は数字の1を表示するためにb、c、2の時は2を表示するためにa、b、d、e、gの部分を光らせるようにしています。
millis()はarduinoを起動してからの経過時間(ms)を読み取るものです。単位がミリ秒なのでmillis()を1000で割れば1秒を測ることができます。
loop関数ではswitch文を使って条件分岐を行い、経過時間を表示するためのコードを記述しています。
カソードコモンの7セグを使ってるためLOWで点灯するので、LED_ONをLOW、LED_OFFをHIGHにしています。
アノードコモンの場合はHIGH,LOW逆になるので注意してください。

マイコンボードに書き込むと

ちゃんと経過時間が表示されました。

まとめ

今回は7セグを使って数字表記をすることができました。
今回は経過時間を測る目的で使用しましたが、温度センサと組み合わせて温度を表示したり、距離センサと組み合わせて距離を表示したりと様々な用途に使えると思います。
今回はこれで終わります。

ではまた!

-arduino, arduino基礎

Copyright© 物を作る者 , 2019 All Rights Reserved Powered by AFFINGER5.