Arduinoで7セグメントLEDを使う方法【数字や文字を表示】

どうも、なかしーです。

僕は自動車のマイコンにプログラミングをする組み込みエンジニアとして働きつつ、YouTubeでArduinoの使い方を解説しています。
>>なかしーの電子工作部

Arduino初心者
Arduino初心者

Arduinoを使って7セグメントLEDで数字や文字を表示するにはどうしたらいいんだろう?

という悩みを解決します。

7セグメントLEDはセンサーの値や時間を表示するときに使われる電子部品です。

7セグメントLEDの中にLEDが7個入っているのでLEDについて知っていれば簡単に制御できますよ!

なかしー
なかしー

小数点付きだと8個LEDが入っています!

この記事では「Arduinoで7セグメントLEDを使う方法」について紹介します。

ちなみに、動画でも解説していますよ!

7セグメントLEDの特徴

7セグメントLEDはLEDが複数入っているだけではなく、カソードかアノードが共通化されています。

LEDを7個使おうとするとカソードとアノード合計して14本の配線が必要です。

しかし、7セグメントLEDはカソードもしくはアノードのどちらかが共通化されているので使う配線は8本です。

Arduinoに7セグメントLEDを接続する

Arduinoのデジタルピンを7セグメントLEDに直接つなぐと壊れてしまうので、抵抗を繋げましょう。

まずは抵抗値を選定します!

Arduinoから出力電流は最大で100mAまでとなっています。

この電流を7つのLEDに分けて流すので、1つあたりの電流値は

100mA / 7個 = 約14mA/個

と計算することが出来ます。

Arduino UNOの場合は出力電圧が5V、LEDの順方向電圧は2Vなので、オームの法則で抵抗値を求めると

R = V / I = (5 – 2) / 14mA = 214Ω

となります。

電流を少なくすれば壊れることはないので、抵抗値は214Ωより高い物を選びます。

Arduinoの入門キットに入っていた220Ω(赤 赤 黒 黒)の抵抗を使います。

カソードコモンの7セグメントLEDを使って回路を作りました。

7セグメントLEDは左下から反時計回りに番号が振ってあります。

ピン番号役割
1e
2d
3カソード
4c
5DP(小数点)
6b
7a
8カソード
9f
10g

アルファベットのa~gがLEDに対応していて、上から時計回りになっています。

繋ぎ方は下の画像を参考にしてください。

Arduinoで7セグメントLEDを動かすプログラム

7セグメントLEDに数字を表示するプログラムを作りました。

Arduinoのスケッチ
unsigned char data[10][7] = {
  {1,1,1,1,1,1,0},  //0
  {0,1,1,0,0,0,0},  //1
  {1,1,0,1,1,0,1},  //2
  {1,1,1,1,0,0,1},  //3
  {0,1,1,0,0,1,1},  //4
  {1,0,1,1,0,1,1},  //5
  {1,0,1,1,1,1,1},  //6
  {1,1,1,0,0,0,0},  //7
  {1,1,1,1,1,1,1},  //8
  {1,1,1,1,0,1,1}}; //9

void setup() {
  pinMode(2,OUTPUT);  //a
  pinMode(3,OUTPUT);  //b
  pinMode(4,OUTPUT);  //c
  pinMode(5,OUTPUT);  //d
  pinMode(6,OUTPUT);  //e
  pinMode(7,OUTPUT);  //f
  pinMode(8,OUTPUT);  //g
}

void loop() {
  int i = 0;
  int j = 0;

  for (i = 0; i < 10; i++) {
    for (j = 0; j < 7; j++) {
      digitalWrite((j + 2),data[i][j]);
    }

    delay(1000); 
  }
}

7セグメントLEDに表示する数字や文字は配列で用意すると便利です!

アノードコモンの場合はハイとローが反転するのでご注意を!

Arduinoで7セグメントLEDを使う方法|まとめ

この記事では「Arduinoで7セグメントLEDを使う方法」について紹介しました。

7セグメントLEDは内部に7つもしくは8つのLEDが入っており、カソードかアノードのどちらかが共通(コモン)になっています。

7セグメントLEDを使う時はArduinoの出力電流が合計で100mA超えないようにする必要があるので抵抗値を選ぶ際に注意してください。

プログラムはデジタルピンのハイとローの組み合わせで表示パターンを作ります。

表示パターンには配列を使うと便利ですよ!

7セグメントLEDを2個以上使う時はArduinoから出力する電流だけでは足りません。

また、別の記事で紹介します。

7セグメントLEDの参考になる動画を下に貼っておきます。
>>なかしーの電子工作部

当ブログで人気のArduino入門キット

第1位:Arduino UNO スターターキット
Arduino UNOのスタータキットです。電子工作でよく使う部品が一式揃っており、バラバラで購入するより格段に安いです。
第2位:ELEGOO Arduino用のUNO R3 最終版スタータキット
こちらも電子工作によく使う部品が第一位のスタータキットよりたくさん入っています。とてもお買い得です。
第3位:ELEGOO Arduino MEGA 2560 R3
UNOの上位互換版MEGAのスターターキットです。これだけ入っていれば十分に電子工作の基本をマスターできることでしょう。
エンジニアが教えるArduino入門講座のまとめ【解説動画付き】