[UWP] 初心者目線でWindows 10 IoT:004 タクトスイッチを使おう

木曜日 , 26, 5月 2016 Leave a comment

 今回は第一回(初心者目線でRaspberry Pi+WindowsでIoT:001)で組んだLチカサンプルをアプリ側のボタンではなく、タクトスイッチというボタン付きの機器を押したら、LEDが付くように変更しています。

 これで「ポチットな」と動作を制御することができます。

 タクトスイッチはプラス側、マイナス側はありませんが、電気の流れを意識する必要はあるので、刺し方には注意が必要です。

IMG_2395

IMG_2396

裏側。プラスマイナスではないが、向きはあり。

 

 毎度ながらAmazonで揃いをセットで購入したので、型番などはわかりません。検索した感じだとオーソドックスはタクトスイッチの形状のようです。

 

ハック ラズベリーパイ Raspberry Pi 電子工作入門キット。
iteadstudio
売り上げランキング: 11,889

 

 向きについてですが、言葉では上手く説明できないので、画像で紹介。

 (見やすいように一旦機器から外したので、抵抗とLEDのラインとずれてしまっています・・・)

IMG_2398

IMG_2397

 

 

配線

 

 配線は、基本的に第一回のコードの間にスイッチを挟むだけなのですが、スイッチがそのままだとマスを必要とするので、ブレッドボードの中央を挟んで配置します。

 注意するのは、下画像の横並びでいう、抵抗からスイッチに繋がる列と、スイッチからLEDのプラスに繋がる列が一列ずれていることです。同じ列だと常時通電し、列を変えることでスイッチのオンオフによる制御ができるようになります。あーなるほど、だから4つピンがあるのかと理解できると思います。

IMG_2400

配線は抵抗からスイッチの手前のピンに繋がるようにし、スイッチの奥側のピンからLEDに繋がるようにします。

 Raspberry Pi 2側の3.3V電圧からスタートし(画像右下)、ブレッドボードのプラス→抵抗(これは何オームでも良さそう)→スイッチの画面手前右側のピン→スイッチの画面奥左側のピンからLEDのプラス、LEDのマイナスからブレッドボードのマイナスに、ブレッドボードのマイナスからRaspberry Pi 2のGPIO5に接続します。

 

UWPアプリ

 

 プログラムコードは以下。ボタンイベントではなく、初期化時に常に通電するように設定するだけです。

 

    public sealed partial class MainPage : Page
    {
        /**
         * GPIOピン
         */
        private GpioPin pin;

        private GpioPinValue currentValue = GpioPinValue.High;

        public MainPage()
        {
            this.InitializeComponent();

            var gpio = GpioController.GetDefault();

            if (gpio == null)
            {
                pin = null;
                return;
            }
            // GPIOの5番を取得
            pin = gpio.OpenPin(5);

            // GPIOピンの値をHighに設定(HighとLowの二種類あります。Highで消灯、Lowで点灯します)
            // 今回はスイッチで制御するので常にオンにして点灯しておく
            pin.Write(GpioPinValue.Low);

            pin.SetDriveMode(GpioPinDriveMode.Output);
        }
    }

 

 これでスイッチを押すことでLEDをつけたり消したりできます。

 この配置で、スイッチを押さないでもLEDが付いている場合は、先に書いた通り、抵抗→スイッチ→LEDの列が同じ可能性があります。

 


Please give us your valuable comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください