2016年

3月

03日

Netduino 2 3個のボタン動作 (Arduino 用の multifunction シールドを使う)

Netduino 2 (Visual Studio 2015 C#) に「Arduino UNO R3 学習向け多機能拡張シールド」を取り付けて動作検証をしています。

 

今回は、シールドについている3個のボタンの動作実験に試みた。

3個のボタンのポートを調べた結果、アナログポート 「InputPort GPIO_PIN_A1,A2,A3」を使用していました。

 

シールド上の3つのLEDを3個のボタンでON/OFFをするようにしてみました。

Visual Studio 2015 C# のソース記述

SwitchLEDShield01

 

//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 SwitchLEDShield01
{
    public class Program
    {
        public static void Main()
        {
            // write your code here
            // シールドLED 
            // 初期状態オフ(false)で、シールドボードLED(Pins.D10,D11,D12)用の変数ledを宣言
            OutputPort led10 = new OutputPort(Pins.GPIO_PIN_D10, false);
            OutputPort led11 = new OutputPort(Pins.GPIO_PIN_D11, false);
            OutputPort led12 = new OutputPort(Pins.GPIO_PIN_D12, false);

            // シールドボタン
            // 初期状態オフ(false)、通常スイッチ(ResistorMode.Disabled)で、

            // シールドプッシュスイッチ入力(Pins.GPIO_PIN_A1,A2,A3)用の変数swを宣言。
            InputPort sw01 = new InputPort(Pins.GPIO_PIN_A1, false, Port.ResistorMode.Disabled);
            InputPort sw02 = new InputPort(Pins.GPIO_PIN_A2, false, Port.ResistorMode.Disabled);
            InputPort sw03 = new InputPort(Pins.GPIO_PIN_A3, false, Port.ResistorMode.Disabled);


            // ボードの電源が切られるまで実行し続けるために無限ループを定義。
            while (true)
            {
                Debug.Print("led  " + led10);

                if (!sw01.Read())
                {
                    Debug.Print("sw01 ON  " + sw01);
                    led10.Write(false);
                }
                else {

                    Debug.Print("sw01 OFF" + sw01);
                    led10.Write(true);
                }

                if (!sw02.Read())
                {
                    Debug.Print("sw02 ON  " + sw02);
                    led11.Write(false);
                }
                else {

                    Debug.Print("sw02 OFF" + sw02);
                    led11.Write(true);
                }

                if (!sw03.Read())
                {
                    Debug.Print("sw03 ON  " + sw03);
                    led12.Write(false);
                }
                else {

                    Debug.Print("sw03 OFF" + sw03);
                    led12.Write(true);
                }
            }

        }

    }
}

 

 

目 次