おすすめArduinoキットとLESSON記事はこちらから!click here

スクラッチプログラミング 7セグメントLEDディスプレイ点灯制御【Arduino:Lesson11】

スクラッチプログラミングで7セグメントLED点灯制御
  • URLをコピーしました!

こんにちは、せでぃあ(@cediablog)です。

ArduinoプログラミングLESSON11は「押しボタンによる、7セグメントLEDの点灯制御」です。

7セグメント点灯制御回路の配線が完了した状態写真
本LESSONテーマの配線まで完了した状態

本LESSON記事は、プログラミングの学習と電子パーツ「7セグメントLED」の知識を習得するプログラムになっています。

小学生、中学生も安心してプログラミングができるように、スクラッチでのプログラミング方法についても動画付きで紹介しています。

せでぃあ

7セグメントLEDで数字を表示してみよう!

本記事では、スクラッチとArduinoIDEプログラムどちらも紹介しています

この記事を読んでわかること
  • 7セグメントLEDとはどんな機器なのか
  • Arduino IDEでの7セグメントLED点灯プログラミング方法
  • スクラッチ(Scrattino3)を使った7セグメントLED点灯プログラミング方法
この記事をかいた人:せでぃあ

せでぃあはこんな人物です

✅プライム企業に勤める電気・機械設計エンジニア

✅親子の絆を深めるため、夏休みに子供と一緒に電子工作を製作

✅Arduinoプログラミングを用いて作ったプログラミング電子工作「信GO機」が市の発明くふう展で「優秀賞」を受賞

✅本ブログにてArduinoスクラッチプログラミングLESSON記事投稿中

✅YouTubeチャンネル「せでぃあブログちゃんねる」運営中

遊びが勉強に変わる前に!小学生にこそおすすめしたいのがロボットプログラミング教室です!

目次

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

7セグメントLEDの説明

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

7セグメントLEDディスプレイとは、7つのLEDで0~9の数字をあらわずことができる電子パーツです。

今回使用する機器は、7つのLEDと、ドット表示のついた8つのLEDを搭載したものになります。

今回はカソードコモン(GNDラインが各LEDに対して共通線になるタイプ)仕様の機器となります。

アノードコモンタイプとは、共通線の極性が異なるので注意してください

7セグメントLEDの点灯動作の仕組み

7セグメントLEDのピン割り当てと数字を表示するための点灯対照表
表示したい数字と点灯セグメントの対照表(0:消灯、1:点灯)

上下に5本ずつ配線用のピンが搭載されています。

3,8番ピンを除く8本は、7セグメントとドットの8つのLEDにそれぞれつながっています。

3,8番ピンはGNDに接続するピンで、機器内部でつながっているためどちらか一方をGNDに接続すればOKです。

7セグメントLEDディスプレイの内部配線図
7セグメントLEDディスプレイの内部配線図

今回はカソードコモンタイプのため、各LEDのカソード側(マイナス側)が共通線となっています。

点灯したいセグメントLEDに対応したピンに+5Vを印加することで、点灯させることができます。

せでぃあ

LEDは極性があるので、接続間違いに注意しよう!

押しボタンによる、7セグメントLEDの点灯制御の説明

今回の説明する「押しボタンによる、7セグメントLEDの点灯制御動作」は、以下になります。

7セグメントLEDの点灯制御動作の説明
  • プログラム動作を開始すると、7セグメントLEDは「0」を表示する。
  • 押しボタンを押すごとに、セグメント点灯数字が0⇒1⇒2⇒3⇒…⇒9と変化する
  • 点灯数字が「9」のとき、さらに押しボタンを押すと「0」に戻り以降繰り返し動作となる
動作説明とスクラッチプログラミング手順の解説動画
動画での解説内容
  • 押しボタンによる、7セグメントLEDディスプレイ点灯制御動作
  • スクラッチを使ったプログラミング手順

まずは動画を見て、押しボタンによるセグメント点灯切り替え制御動作を確認してください。

また、スクラッチを使ったプログラミングをするためには準備作業が必要です。

動画にて準備作業に必要な手順をくわしく説明しています。

7セグメントLED点灯制御回路の作り方

STEP
必要なものを準備

プログラミングするために、パソコンが必要です。

電子部品等の必要な機器については、このあと説明します。

STEP
Arduinoを使うためのセットアップ

パソコンに統合開発ソフトウェア「ArduinoIDE」のインストールを行います。

Arduinoのセットアップ方法については、以下の記事にて詳しく説明しています。

Arduino IDEでの言語プログラミングも勉強したい方は、プログラミングの流れを理解しておいてください。

以下の記事にて、プログラミングから動作確認までの流れを詳しく説明しています。

STEP
スクラッチでプログラミングするためのセットアップ

パソコンにスクラッチでプログラミングするためのソフトウェア「Scrattino3(スクラッチーノ3)」のインストールを行います。

以下の記事にて詳しく説明しています。

STEP
電気配線

電子部品とジャンパーワイヤの差し込みだけで配線が可能です。

STEP
プログラミング

専用開発ソフトウェア「Arduino IDE」を使います。

私が作成したプログラムをコピペして使ってください。

スクラッチプログラミングについては、動画または後述するプログラミング例を参考にしてください。

STEP
動作確認

プログラムが完成したら動作確認を行います。

動作確認チェックリスト
  • プログラム開始直後のディスプレイ表示は「0」か?
  • 押しボタンを押すごとに、ディスプレイ表示が0⇒1⇒2⇒…9と変化するか?
  • 表示が「9」のとき、さらに押しボタンを押すと「0」に戻り以降繰り返し動作となるか?

動作確認方法については、以下の記事にて詳しく説明しています。

押しボタンによる7セグメントLED表示制御回路で使うもの

押しボタンによる7セグメントLED表示制御回路で使うもの
配線が完了しプログラム転送できる状態写真
準備するもの
  1. パソコン
  2. Arduino本体
  3. USBケーブル
  4. ブレッドボード
  5. 7セグメントLEDディスプレイ
  6. 抵抗(220Ω)×7本
  7. 押しボタンスイッチ
  8. 抵抗(1kΩ)×1本
  9. ジャンパー線(オスーオス)×12本

今回はELEGOO社のスーパースターターに含まれる部品で作ることができますが、Arduino裏面のショート対策としてクリアケースも併せて準備することをおすすめします。

パソコン

プログラムを作成するために必要です。

プログラム制御の演算はArduino側で行うため、パソコンのSPECは一般的なモデルで十分対応可能です。

パソコンのOSはWindows、Macどちらでも対応可能です。

Arduino本体【キット】

Arduino本体
Arduino本体

基本的なエディション「Arduino Uno」の互換機である、ELEGOO社のUNO R3を使用しています。

Arduino本体裏面のショート対策に、別売りのクリアケースの購入をおすすめしています。

各ソケットの役割など、Arduino本体の機能について以下の記事にて詳しく説明しています。

USBケーブル【キット】

必要なUSBケーブルの説明写真
USBケーブル

パソコンとArduinoを接続してプログラムデータのやり取りをするために必要です。

ブレッドボード【キット】

ブレッドボードの機能説明図
ブレッドボードの機能説明図

たくさんの穴が開いていて、部品の端子を穴に差し込むだけで電気的に接続が可能な板です。

説明図は30列のショート版ですが、スーパースターターキットに含まれる63列タイプでも機能面は同じです

7セグメントLEDディスプレイ【キット】

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

キットに含まれる機器は、カソードコモンの7セグメントLEDディスプレイとなります。

LED素子にはプラスマイナスの極性があるため配線時には注意が必要です。

3番または8番ピンにGNDを接続してください

抵抗(220Ω)【キット】

220Ω抵抗とカラーコードによる見分け方
220Ω抵抗と色による見分け方

220Ωの抵抗を使用し、各セグメントLEDに接続します。

LEDは流せる電流値に制約があるため、抵抗を直列つなぎすることでLEDに流れる電流を調節します。

抵抗は極性がないので、配線時に方向を気にする必要はありません。

今回使用する7セグメントLEDのVF・IF値

VF(順電圧):1.8V
IF(順電流):30mA

LEDを点灯させるために接続する抵抗の選び方については、こちらの記事で詳しく説明しています。

押しボタン【キット】

押しボタンの説明
押しボタンの説明

今回のLESSONでは、押しボタンスイッチを使用します。

押しボタンは押されている間のみ、上記写真での2点が内部でつながります。

このようなボタンをモーメンタリボタンといいます。

今回は扱いませんが、ボタンから手を離してもONしたままになるボタンをオルタネイトボタンといいます。

モーメンタリ・オルタネイトボタンについては以下記事にて詳しく説明しています。

抵抗(1kΩ)【キット】

1kΩ抵抗と色による見分け方
1kΩ抵抗と色による見分け方

1kΩの抵抗を1本使用し、押しボタンスイッチに接続します。

抵抗を接続するのは、押しボタンがOFFのときにArduino本体がノイズによる誤検出することを避けるためです。

この記事では詳しく説明しませんが、ボタンを押していないのに押されたと誤認識されることを避ける目的であるということだけ覚えておいてください。

ジャンパー線(オスーオス)【キット】

キットに同梱されているジャンパー線(オスーオス)の説明
ジャンパー線

ジャンパー線を12本使用します。

Arduino本体とブレッドボードの接続や、ブレッドボードの共通電源ライン(GNDまたは5V)からブレッドボード内の配線系統穴に差し込んで接続するのに使います。

スターターキットに含まれる機器に関しては、以下の記事にて詳しく紹介しています。

配線のやり方

配線完了時の状態写真
配線完了時の状態写真
押しボタンによる7セグメントLED点灯制御回路の配線説明図
押しボタンによる7セグメントLED点灯制御回路の配線説明図(fritzingを用いて作成)

上図が配線説明図となりますので、これと同じ配線をすれば完成します。

今回、7セグメントLEDディスプレイのGNDコモン配線は8番側を接続していますが、3番側を接続してもOKです。

3番と8番はパーツ内部で接続されています。

必要な配線作業
  • 7セグメントLEDをブレッドボードに差し込む
  • 押しボタンをブレッドボードに差し込む
  • 220Ω抵抗をブレッドボードに差し込む(LED用)
  • 1kΩ抵抗をブレッドボードに差し込む(押しボタン用)
  • ジャンパー線をブレッドボードとArduinoソケットに差し込む
  • ジャンパー線をブレッドボード内で配線する
    (押しボタン-5V、7セグメントLED-GND)

7セグメントLEDや抵抗、ジャンパー線はArduinoのソケットやブレッドボード穴に差し込むだけでOKです。

押しボタンは端子が飛び出ている側がブレッドボード長手側になるように差し込みます。

抵抗は極性がありません。

機器故障させないためにも、USBケーブルを抜いた「通電OFF」状態にて配線を行ってください

プログラミングのやり方

Arduino IDEとスクラッチの両方について、プログラミング方法とプログラムを説明します。

2つのプログラミングの特徴は以下の通り。

ArduinoIDE:文字列による命令語形式
スクラッチ:ブロックによるビジュアル形式

文字列を使わないスクラッチの方が、直感的で分かりやすく小学生におすすめのプログラミング方法になります。

スクラッチを使ってプログラミングをする方は、スクラッチの説明まで読み飛ばしてください。

Arduino IDE

Arduino IDEとは統合開発ソフトウェアで、C言語のような文字列を用いたプログラミング方法です。

プログラミングするにあたり、ある程度の命令語を知っておく必要があります。

スクラッチプログラミングをする場合でも、Arduino IDEを使ったファームウェア書き込みが必要ですがプログラミング技術は必要ありません。

Arduino IDEのインストール方法については、以下の記事で詳しく説明しています。

プログラミング方法

Arduino IDEでのプログラミング画面(LESSON11)
Arduino IDEでのプログラミング画面

Arduino IDEを使って、文字列プログラミングを行います。

Arduino IDEを使ったプログラミング~動作確認方法については、以下の記事で詳細説明しています。

Arduino IDEプログラム

/* 作品名:LESSON11 */
/* 作成者:せでぃあ https://cediablog.com */
/* 1ケタ7セグメントLEDディスプレイ */

int SEG_A_SOCKET = 2;         //セグメントA(7)の出力ソケット番号
int SEG_B_SOCKET = 3;         //セグメントB(6)の出力ソケット番号
int SEG_C_SOCKET = 4;         //セグメントC(4)の出力ソケット番号
int SEG_D_SOCKET = 5;         //セグメントD(2)の出力ソケット番号
int SEG_E_SOCKET = 6;         //セグメントE(1)の出力ソケット番号
int SEG_F_SOCKET = 7;         //セグメントF(9)の出力ソケット番号
int SEG_G_SOCKET = 8;         //セグメントG(10)の出力ソケット番号
int BUTTON_SOCKET = 13;       //押しボタンスイッチの入力ソケット番号

int SEGNUM = 0;               //セグメント点灯数字

void setup() {
  // put your setup code here, to run once: プログラム起動時1回だけ処理される回路

  //入出力の割り当て

  pinMode(SEG_A_SOCKET, OUTPUT);      //2番ピンは出力として使用
  pinMode(SEG_B_SOCKET, OUTPUT);      //3番ピンは出力として使用
  pinMode(SEG_C_SOCKET, OUTPUT);      //4番ピンは出力として使用
  pinMode(SEG_D_SOCKET, OUTPUT);      //5番ピンは出力として使用
  pinMode(SEG_E_SOCKET, OUTPUT);      //6番ピンは出力として使用
  pinMode(SEG_F_SOCKET, OUTPUT);      //7番ピンは出力として使用
  pinMode(SEG_G_SOCKET, OUTPUT);      //8番ピンは出力として使用

  pinMode(BUTTON_SOCKET, OUTPUT);     //13番ピンは入力として使用

}

void loop() {
  // put your main code here, to run repeatedly: プログラム起動後ループ処理される回路

  if(digitalRead(BUTTON_SOCKET) == HIGH){       //押しボタンスイッチがONのとき
    if(SEGNUM <= 8){                            //セグメントディスプレイ表示が8以下のとき
      SEGNUM = SEGNUM + 1 ;                     //セグメントディスプレイ表示値を+1する
  }else{                                        //セグメントディスプレイ表示が9のとき
    SEGNUM = 0 ;                                //セグメントディスプレイ表示を0にする
  }
    while(digitalRead(BUTTON_SOCKET) == HIGH){  //押しボタンスイッチが押されたままのときに待機させる
    }
  }

  if(SEGNUM == 0){                              //セグメントディスプレイ表示「0」
    digitalWrite(SEG_A_SOCKET , HIGH);          //セグメントAの出力をON
    digitalWrite(SEG_B_SOCKET , HIGH);          //セグメントBの出力をON
    digitalWrite(SEG_C_SOCKET , HIGH);          //セグメントCの出力をON
    digitalWrite(SEG_D_SOCKET , HIGH);          //セグメントDの出力をON
    digitalWrite(SEG_E_SOCKET , HIGH);          //セグメントEの出力をON
    digitalWrite(SEG_F_SOCKET , HIGH);          //セグメントFの出力をON
    digitalWrite(SEG_G_SOCKET , LOW);           //セグメントGの出力をOFF
  }
  else if(SEGNUM == 1){                         //セグメントディスプレイ表示「1」
    digitalWrite(SEG_A_SOCKET , LOW);           //セグメントAの出力をOFF
    digitalWrite(SEG_B_SOCKET , HIGH);          //セグメントBの出力をON
    digitalWrite(SEG_C_SOCKET , HIGH);          //セグメントCの出力をON
    digitalWrite(SEG_D_SOCKET , LOW);           //セグメントDの出力をOFF
    digitalWrite(SEG_E_SOCKET , LOW);           //セグメントEの出力をOFF
    digitalWrite(SEG_F_SOCKET , LOW);           //セグメントFの出力をOFF
    digitalWrite(SEG_G_SOCKET , LOW);           //セグメントGの出力をOFF
  }
  else if(SEGNUM == 2){                         //セグメントディスプレイ表示「2」
    digitalWrite(SEG_A_SOCKET , HIGH);          //セグメントAの出力をON
    digitalWrite(SEG_B_SOCKET , HIGH);          //セグメントBの出力をON
    digitalWrite(SEG_C_SOCKET , LOW);           //セグメントCの出力をOFF
    digitalWrite(SEG_D_SOCKET , HIGH);          //セグメントDの出力をON
    digitalWrite(SEG_E_SOCKET , HIGH);          //セグメントEの出力をON
    digitalWrite(SEG_F_SOCKET , LOW);           //セグメントFの出力をOFF
    digitalWrite(SEG_G_SOCKET , HIGH);          //セグメントGの出力をON
  }
  else if(SEGNUM == 3){                         //セグメントディスプレイ表示「3」
    digitalWrite(SEG_A_SOCKET , HIGH);          //セグメントAの出力をON
    digitalWrite(SEG_B_SOCKET , HIGH);          //セグメントBの出力をON
    digitalWrite(SEG_C_SOCKET , HIGH);          //セグメントCの出力をON
    digitalWrite(SEG_D_SOCKET , HIGH);          //セグメントDの出力をON
    digitalWrite(SEG_E_SOCKET , LOW);           //セグメントEの出力をOFF
    digitalWrite(SEG_F_SOCKET , LOW);           //セグメントFの出力をOFF
    digitalWrite(SEG_G_SOCKET , HIGH);          //セグメントGの出力をON
  }
  else if(SEGNUM == 4){                         //セグメントディスプレイ表示「4」
    digitalWrite(SEG_A_SOCKET , LOW);           //セグメントAの出力をOFF
    digitalWrite(SEG_B_SOCKET , HIGH);          //セグメントBの出力をON
    digitalWrite(SEG_C_SOCKET , HIGH);          //セグメントCの出力をON
    digitalWrite(SEG_D_SOCKET , LOW);           //セグメントDの出力をOFF
    digitalWrite(SEG_E_SOCKET , LOW);           //セグメントEの出力をOFF
    digitalWrite(SEG_F_SOCKET , HIGH);          //セグメントFの出力をON
    digitalWrite(SEG_G_SOCKET , HIGH);          //セグメントGの出力をON
  }
  else if(SEGNUM == 5){                         //セグメントディスプレイ表示「5」
    digitalWrite(SEG_A_SOCKET , HIGH);          //セグメントAの出力をON
    digitalWrite(SEG_B_SOCKET , LOW);           //セグメントBの出力をOFF
    digitalWrite(SEG_C_SOCKET , HIGH);          //セグメントCの出力をON
    digitalWrite(SEG_D_SOCKET , HIGH);          //セグメントDの出力をON
    digitalWrite(SEG_E_SOCKET , LOW);           //セグメントEの出力をOFF
    digitalWrite(SEG_F_SOCKET , HIGH);          //セグメントFの出力をON
    digitalWrite(SEG_G_SOCKET , HIGH);          //セグメントGの出力をON
  }
  else if(SEGNUM == 6){                         //セグメントディスプレイ表示「6」
    digitalWrite(SEG_A_SOCKET , HIGH);          //セグメントAの出力をON
    digitalWrite(SEG_B_SOCKET , LOW);           //セグメントBの出力をOFF
    digitalWrite(SEG_C_SOCKET , HIGH);          //セグメントCの出力をON
    digitalWrite(SEG_D_SOCKET , HIGH);          //セグメントDの出力をON
    digitalWrite(SEG_E_SOCKET , HIGH);          //セグメントEの出力をON
    digitalWrite(SEG_F_SOCKET , HIGH);          //セグメントFの出力をON
    digitalWrite(SEG_G_SOCKET , HIGH);          //セグメントGの出力をON
  }
  else if(SEGNUM == 7){                         //セグメントディスプレイ表示「7」
    digitalWrite(SEG_A_SOCKET , HIGH);          //セグメントAの出力をON
    digitalWrite(SEG_B_SOCKET , HIGH);          //セグメントBの出力をON
    digitalWrite(SEG_C_SOCKET , HIGH);          //セグメントCの出力をON
    digitalWrite(SEG_D_SOCKET , LOW);           //セグメントDの出力をOFF
    digitalWrite(SEG_E_SOCKET , LOW);           //セグメントEの出力をOFF
    digitalWrite(SEG_F_SOCKET , LOW);           //セグメントFの出力をOFF
    digitalWrite(SEG_G_SOCKET , LOW);           //セグメントGの出力をOFF
  }
  else if(SEGNUM == 8){                         //セグメントディスプレイ表示「8」
    digitalWrite(SEG_A_SOCKET , HIGH);          //セグメントAの出力をON
    digitalWrite(SEG_B_SOCKET , HIGH);          //セグメントBの出力をON
    digitalWrite(SEG_C_SOCKET , HIGH);          //セグメントCの出力をON
    digitalWrite(SEG_D_SOCKET , HIGH);          //セグメントDの出力をON
    digitalWrite(SEG_E_SOCKET , HIGH);          //セグメントEの出力をON
    digitalWrite(SEG_F_SOCKET , HIGH);          //セグメントFの出力をON
    digitalWrite(SEG_G_SOCKET , HIGH);          //セグメントGの出力をON
  }
  else if(SEGNUM == 9){                         //セグメントディスプレイ表示「9」
    digitalWrite(SEG_A_SOCKET , HIGH);          //セグメントAの出力をON
    digitalWrite(SEG_B_SOCKET , HIGH);          //セグメントBの出力をON
    digitalWrite(SEG_C_SOCKET , HIGH);          //セグメントCの出力をON
    digitalWrite(SEG_D_SOCKET , HIGH);          //セグメントDの出力をON
    digitalWrite(SEG_E_SOCKET , LOW);           //セグメントEの出力をOFF
    digitalWrite(SEG_F_SOCKET , HIGH);          //セグメントFの出力をON
    digitalWrite(SEG_G_SOCKET , HIGH);          //セグメントGの出力をON
  }
  delay(100);                                   //0.1秒ウェイト 
}

上記が押しボタンによる7セグメントLEDディスプレイ点灯制御回路のプログラムになります。

Arduino IDEのプログラム画面にコピーアンドペーストすることで、動作確認まで進めることができます。

各プログラム列の右側にプログラム内容をコメント記入してありますので参考にしてください。

せでぃあ

プログラムのボリュームは大きいけど、落ち着いてプログラミングしよう

命令語の解説

今回のプログラムで使用した命令文について、解説します。

変数のデータ型指定

変数のデータ型を指定するものです。

今回はピンソケット番号を代入するので整数を扱う「int型」を指定します。

またアナログ出力値は「0~255」の整数を扱いますので、同じく「int型」を指定します。

スクロールできます
データ型説明扱える範囲
int2バイトの整数を代入可能。-32768~32767
long4バイトの整数を代入可能-2,147,483,648~2,147,483,647
float4バイトの小数を代入可能。3.4028235×1038~-3.4028235×1038
char1バイトの値を代入可能。文字列の代入に利用されます。-128~127
boolean0または1のみ代入可能。フラグのON-OFFなどに利用されます。0,1

pinMode(入出力番号,INPUTまたはOUTPUT)

指定したデジタル入出力ソケット番号の機能を指示します。

入力として使用する場合は「INPUT」、出力の場合は「OUTPUT」を指定します。

digitalRead(入出力番号)

指定したデジタル入出力ソケット番号の状態がON、またはOFFであるか確認します。

ONのときは「HIGH」、OFFのときは「LOW」の値が返ってきます。

digitalWrite(入出力ソケット番号,HIGHまたはLOW)

指定したデジタル入出力ソケット番号の電圧をON、またはOFFします。

ONさせたいときは「HIGH」、OFFさせたいときは「LOW」を指定します。

delay(時間)

()内で指定した時間(単位はmsec)だけ、プログラム実行を待たせます。

if 文

条件が成立しているときのみ、{ }内の文が実行されます。

条件が成立しなければ、{ }内の文は処理されず、次の処理に移ります。

if( 条件 ){
 条件成立時に実行する文 ;
}

if else文

条件式が成立しているか否かで、どちらの命令文を実行するか振り分けます。

if( 条件 ){
 条件成立時に実行する文 ;
} else {
 条件不成立時に実行する文 ;
}

while 文

( )内の条件が成立している間は、{ }内の文を繰り返し実行します。

while( 条件 ){
 繰り返し実行する文 ;
}

比較演算子

スクロールできます
比較演算子説明
A == BAとBが等しい場合に成立
A != BAとBが等しくない場合に成立
A < BAがBより小さい場合に成立
A <= BAがB以下の場合に成立
A > BAがBより大きい場合に成立
A >= BAがB以上の場合に成立
比較演算子の説明

筆者おすすめのArduinoの参考書を紹介しています。

スクラッチ

Scrattino3(スクラッチーノ3)によるスクラッチプログラミングの説明(LESSON11)
スクラッチを使ったプログラミング

Scrattino3(スクラッチーノ3)というソフトウェアを使って、プログラミングする方法です。

Scrattino3のインストール方法やプログラミング、動作確認方法については、以下の記事にて詳しく説明しています。

プログラミング、動作確認方法については、本記事の説明動画でも紹介しています

せでぃあ

動画を参考にプログラミングしてみよう

スクラッチプログラム(Scrattino3|スクラッチーノ3)

Scrattino3(スクラッチーノ3)によるスクラッチプログラミングの詳細解説(LESSON11)
Scrattino3(スクラッチーノ3)によるスクラッチプログラミングの詳細解説(LESSON11)
LESSON11のスクラッチプログラミングと解説

上記がスクラッチのプログラミングとなります。

Scrattino3(スクラッチーノ3)でのスクラッチプログラミングの作り方について、本記事冒頭の動画にて詳しく説明しています。

Arduinoをプログラミング制御するときは、USBケーブルの常時接続が必要です

Arduino専用ブロックについては、以下の記事にて詳しく説明しています。

Scrattino3での変数指定方法

Scrattino3(スクラッチーノ3)での変数作成方法
Scrattino3(スクラッチーノ3)での変数作成方法例

今回のプログラムでは「セグメント点灯数字」が変数となります。

上記説明手順に沿って、変数を作成してください。

動作確認方法

7セグメントLED制御動作回路の配線状態
配線状態説明図
動作確認チェックリスト
  • プログラム開始直後のディスプレイ表示は「0」か?
  • 押しボタンを押すごとに、ディスプレイ表示が0⇒1⇒2⇒…9と変化するか?
  • 表示が「9」のとき、さらに押しボタンを押すと「0」に戻り以降繰り返し動作となるか?

上記項目について確認していきましょう。

プログラム開始直後のディスプレイ表示は「0」か?

プログラム動作開始直後は必ず、ディスプレイ表示が「0」になることを確認してください。

押しボタンを押すごとに、ディスプレイ表示が0⇒1⇒2⇒…9と変化するか?

押しボタンスイッチを押すごとに、ディスプレイ表示が0⇒1⇒2⇒…9と変化することを確認してください。

表示が「9」のとき、さらに押しボタンを押すと「0」に戻り以降繰り返し動作となるか?

ボタンスイッチを押すたびに0⇒1⇒2⇒…9⇒0⇒…と0~9の数字が順番に表示されることを確認してください。

せでぃあ

動作がうまくいかないときは、冷静になってプログラムを見直してみよう

LESSON11:7セグメントLED制御回路のまとめ

この記事の内容をまとめると
  • 7セグメントLEDディスプレイは各LEDを個別点灯制御可能な機器
  • 各LEDの点灯制御で数字を表すことが可能
  • アノードコモン、カソードコモンタイプによって配線が異なるので注意

小学生のお子様には断然、スクラッチでのプログラミングがおすすめです!

せでぃあ

4桁7セグメントLEDディスプレイについてもチャレンジしてみよう!

小学生のお子様には、プログラミング教室での基礎学習をおすすめしています!

Arduinoスクラッチプログラミングのおすすめ参考書について詳しく説明しています。

Arduinoプログラミング(スクラッチも)を使った電子工作を紹介しています。

\タイムセール祭り開催中!/
Amazon

応援ありがとうございます(^^)/

スクラッチプログラミングで7セグメントLED点灯制御

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次