2016年

3月

09日

Netduino 2 C# 1桁の7セグメントLEDで0表示(C#ソース その1)

Netduino 2 (Visual Studio 2015 C#) に1桁の7セグメントLEDで0表示の動作検証をしています。

回路図を使って、7セグメント発光ダイオードを点灯させるソースを見ていきます。

0(ゼロ)を表示する為のソースです。

ArduinoからVisual Studio 2015 C#の置き換えになりますが上手く表示してくれかと思いましたがこの通り表示しました。C#で7セグメントLED表示基本が習得できれば幸いです。

 

この内容については、「初心者だけど、一歩ずつ Arduino 超小型マイコン電子工作」の「1桁の7セグメント発光ダイオードで表示(スケッチその1)」を参考にしNetduino 2 (Visual Studio 2015 C#) に置き換えて解説しています。このような理解しやすい良い教材があり学ぼうと志している者には大変助かり感謝しております。ありがとうございます。

Visual Studio 2015 C# のソース記述

7LED_1

using System;

using System.Net;

using System.Net.Sockets;

using System.Threading;

using Microsoft.SPOT;

using Microsoft.SPOT.Hardware;

using SecretLabs.NETMF.Hardware;

using SecretLabs.NETMF.Hardware.Netduino;

 

namespace _7LED_1

{

    public class Program

    {

        public static void Main()

        {

            // write your code here

            

            // 初期状態オフ(HIGH)で、7セグLED制御(Pins.GPIO_PIN_D1)

            // 用の変数ledxを宣言。

            // 1~7番ピン デジタル出力へセット

            // 消灯 HIGH

            var led1 = new OutputPort(Pins.GPIO_PIN_D1, true); // HIGH

            var led2 = new OutputPort(Pins.GPIO_PIN_D2, true); // HIGH

            var led3 = new OutputPort(Pins.GPIO_PIN_D3, true); // HIGH

            var led4 = new OutputPort(Pins.GPIO_PIN_D4, true); // HIGH

            var led5 = new OutputPort(Pins.GPIO_PIN_D5, true); // HIGH

            var led6 = new OutputPort(Pins.GPIO_PIN_D6, true); // HIGH

            var led7 = new OutputPort(Pins.GPIO_PIN_D7, false); // 点灯 LOW

 

 

            // ボードの電源が切られるまで実行し続けるために無限ループを定義。

            while (true)

            {

                // 7セグLEDをオンに設定。

                led1.Write(false); // 点灯 LOW

                led2.Write(false); // 点灯 LOW

                led3.Write(false); // 点灯 LOW

                led4.Write(false); // 点灯 LOW

                led5.Write(false); // 点灯 LOW

                led6.Write(false); // 点灯 LOW

                led7.Write(true); // 消灯 HIGH

            }

        }

    }

}

C#ソースの解説です。 
Main上部では、使用する1番ピンから7番ピンまでデジタル出力にモードを切り替えています。
while内では、点灯させるピン(LOW)と、消灯させるピン(HIGH)を指定しています。
ここで、点灯させるピンは、LOWです。消灯させるピンは、HIGHです。

なぜ、点灯させるピンをLOWにする必要があるかというと、回路図を見てください。
アノードコモンタイプのLEDなので、LEDの3番ピンはNetduinoの3.3Vに接続されています。
LEDの各端子をLOWにすることで、各端子と3番ピンの間の電圧差が3.3V発生するので、
電流が流れ、 点灯します。

LEDの各端子をHIGHにすると、各端子と3番ピンは3.3Vで同じなので、電流が流れずに消灯します。

共通端子は、Netduinoの3.3V端子へ接続します。
7セグメント発光ダイオードの左下から反時計回りに、抵抗(145Ω)を入れて、Netduinoの1番ピンから7番ピンまで順に接続します。

7セグメントLEDのピン番号 Netduinoのピン番号
                 1      ---------------   1番ピン
                 2      ---------------   2番ピン
                 3      ---------------   5V端子
                 4      ---------------   3番ピン
                 5      ---------------   (未接続)
                 6     ---------------    4番ピン
                 7      ---------------    5番ピン
                 8      ---------------   (未接続)
                 9     ---------------    6番ピン
                 10     ---------------    7番ピン

数字は、ピンの番号、アルファベットは、光るLEDの場所を示しています。

たとえば、下段のAは、上の図の a の場所のLEDを示しています。
ピン番号は7番を示しています。

上の図のaの場所の LEDを光らせたい場合には、3番または8番のピンの+の電圧をかけ、7番にそれより低い電圧をかければ、3番から7番に電流が流れ、aのLEDが光ります。

1を示したいときには、bとcのLEDを光らせるという処理をするわけです。

ところで、プラス側が共通になっている、このタイプをアノードコモンと言います。
逆にマイナス側が共通になっているタイプをカソードコモンと言います。
内部回路上、+と-が逆になっているので、気を付ける必要があります。

電子部品一覧

7セグメントLED(1桁・赤・アノード)【KW1521ASB】 1個
抵抗 145Ω 1/2w 7個

 

抵抗の計算 オームの法則

一般的なLEDには約10mA流すことを考慮して計算

Vf:1.85V

R=V/I

3.3V-18.5V/10mA = 145Ω

今回は、分かり易さに重点を置いて、スケッチを書きましたが、工夫する余地がたくさん残っています。次回は、スケッチを工夫していきます。

 

目 次