Arduino

Arduinoを用いて7セグメントディスプレイでタイマーを作ってみる

2018年10月18日

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

使用するもの

・Arduinoメインボード(https://amzn.to/2vkPIUH)
・USBケーブル(https://amzn.to/2UHhntl)
・ブレッドボード(https://amzn.to/38eNi8u)
・ジャンパワイヤ (https://amzn.to/39uBU8T)
・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セグを使っていきます。

手順

まずハード側からやっていきます。OSL40562-LRのデータシートを見てArduinoボードと接続します。

データシートはこちらから見ることができます。

http://akizukidenshi.com/catalog/g/gI-03673/

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

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

簡単に説明すると

segNumber関数は数字を表示するためのものです。
1の時は数字の1を表示するためにbとc、2の時は2を表示するためにa、b、d、e、gの部分を光らせるようにしています。

digit関数はけた数を決定するための関数です。入力された数字に応じてけた数を決定できるようになっています。

lightNumber関数で数字を表示するための処理を記述しています。

millis()はarduinoを起動してからの経過時間(ms)を読み取るものです。単位がミリ秒なのでmillis()を1000で割れば1秒を測ることができます。

カソードコモンの7セグを使ってるためLOWで点灯するので、LED_ONをLOW、LED_OFFをHIGHにしています。
アノードコモンの場合はHIGH,LOW逆になるので注意してください。

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

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

まとめ

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

ではまた!

-Arduino

Copyright© 物を作る者 , 2024 All Rights Reserved.