つれづれなる備忘録

日々の発見をあるがままに綴る

TinkercadによるArduinoシミュレーション30 ~ 7セグメントディスプレイ

1. 7セグメントディスプレイ

 今回はArduinoを用いて7セグメントディスプレイの表示を行う。Arduinoから直接ディスプレイに接続する場合、7つのデジタルピンを使用するため、今回は7セグメントデコーダーを利用して7セグメントディスプレイを表示させる。

2. 7セグメントデコーダ

 Tinkercad上のコンポーネント-すべてから7セグメントデコーダーCD4511*1を利用することができる。CD4511の端子割り当てを下に示す。

CD4511端子割り当て
CD4511端子割り当て

基本的には0-9までの4bitバイナリの各ビットをDCBAに入力すると、7セグメント表示するための7bitバイナリを出力する。7セグメントディスプレイの表示位置と7bit出力(abcdefg)の割り当てを下に示す。

7セグメントディスプレイ
7セグメントディスプレイ

また入力(10進)と7bit出力の真理表を下に示す。

入力 a b c d e f g
0 1 1 1 1 1 1 0
1 0 1 1 0 0 0 0
2 1 1 0 1 1 0 1
3 1 1 1 1 0 0 1
4 0 1 1 0 0 1 1
5 1 0 1 1 0 1 1
6 1 0 1 1 1 1 1
7 1 1 1 0 0 0 0
8 1 1 1 1 1 1 1
9 1 1 1 1 0 1 1

単に表示するだけであればLT(Lamp Test), BL(Blanking)はHIGH(5V), LE(Latch Enable)はGNDにしておく。

3. 7セグメントディスプレイの接続

 7セグメントディスプレイの接続タイプとしてカソードコモンとアノードコモンがある。アノードコモンの回路図は下のようになっており、コモン端子を電源(ex:5V)に接続し、各端子はGND(LOW)にすることで電流が流れて各セグメントのLEDが点灯する。

アノードコモン回路図
アノードコモン回路図

一方でカソードコモンは、コモン端子がGNDになっており、各端子はHIGHにすることで電流が流れてLEDが点灯する。

カソードコモン回路図
カソードコモン回路図

Tinkercad上は7セグメントディスプレイをクリックして"陽極"(アノードコモン)または"陰極"(カソードコモン)を選択する。(実物はどちらかのタイプになる)今回はカソードコモン接続とする。

4. Arduino、7セグデコーダー、ディスプレイの接続

 7セグメントドライバCD4511と7セグメントディスプレイはabcdefg端子同士を接続し、ディスプレイのコモン端子はGNDに接続する。CD4511とArduinoは、ABCD端子はArduinoの2,3,4,5ピンに接続し、VDD, LT, BE端子は5Vに、またLEはGNDに接続する。今回の処理は0-9までを順次7セグメントディスプレイに表示する。 スケッチは以下に示す。

boolean a1,a2,a3,a4;
int cnt;
void setup()
{
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  cnt=0;
}

void loop()
{
 a1=bitRead(cnt,0);
 a2=bitRead(cnt,1);
 a3=bitRead(cnt,2);
 a4=bitRead(cnt,3);
 digitalWrite(2, a1);
 digitalWrite(3, a2);
 digitalWrite(4, a3);
 digitalWrite(5, a4);
 cnt++;
 delay(500);
  if(cnt>9){
    cnt=0;
  } 
}

表示させたい10進数の数値をbitRead(num,n)を用いてビットに変換する。numは10進数、nは最下位からnビット目を読み取る。4ビットに変換したい場合はnを0-3まで逐次実行すればよい。今回はCD4511に入力するピンに対してbitRead(cnt,n);(n:0-3)で読み取った2値を用いてdigitalWrite()でLOWまたはHIGHを出力する。cntは10以上になったら0にリセットするようにしている。

Tinkercad上での実行例を下に示す。

7セグメントディスプレイ表示実行例
7セグメントディスプレイ表示実行例

5. まとめ

 今回はArduinoと7セグメントデコーダーを利用して7セグメントディスプレイを表示させる方法について紹介した。