NETMF : InputPortの使い方とGR-PEACH / GR-SAKURAでのボタン操作のコード例

.NET Micro Framework の入出力ポートの紹介、第2回。
今回は InputPort がテーマ、GPIO の使い方の2回目です。


InputPort

InputPort はセンサーなどのデバイスのデータを入力するためのポートです。ボタンも入力デバイスの一つです。

InputPort は以下のように宣言します。

var button = new InputPort(<ポート番号>, <グリッチフィルターの設定>, <プルアップ/ダウン抵抗>);

第一引数でどのポートを InputPort として使用するかを指定します。
グリッチフィルターとは、ボタンオン/オフなどの際に、入力値が一時的にパタパタと切り替わるのを防ぐフィルターのこと。true を指定するとグリッチフィルターが有効になります。
プルアップ/ダウン抵抗は、デバイスによって指定が異なります。Port.ResistorMode.Disabled を指定すると、プルアップ抵抗もプルダウン抵抗も使用しないことを意味します。

InputPort は Read メソッドを持っています。
文字通り、ポートの信号を読み出すメソッドです。メソッドを呼びだした時に同期的に信号を読み出すものなので、繰り返しポートの信号を読みたい時にはポーリングする必要があります。

GR-PEACH のボタン

GR-PEACH ではボタンは 0x60 番ポートに接続されています。

組込みに慣れていない方、普段は業務アプリ開発をしている方には直感的に分かりづらい点としては、Read メソッドで取得できる値は負論理である点です。つまりボタンが押されていれば false、離されていれば true が返されます。

GR-SAKURA のボタン

GR-SAKURA ではボタンは 0x57 番ポートに接続されています。


InputPort のコード例 ~ GR-PEACH / GR-SAKURA のボタン操作 ~

本稿の最後に、InputPort のコード例として GR-PEACH のボタン操作のコードを載せます。ボタンを押すとユーザー LED が点灯します。
OutputPort の時と同様、Microsoft.SPOT.Hardware の参照を追加する必要があります。
GR-SAKURA ではコメントを参考に一部書き換えてください。

using System.Threading;
using Microsoft.SPOT.Hardware;

namespace PeachInputPortDemo
{
    public class Program
    {
        // GR-PEACH
        private const Cpu.Pin ButtonPin = (Cpu.Pin)0x60;    // ボタン
        private const Cpu.Pin UserPin = (Cpu.Pin)0x6c;      // ユーザーLED

        // GR-SAKURA
        //private const Cpu.Pin ButtonPin = (Cpu.Pin)0x57;    // ボタン
        //private const Cpu.Pin UserPin = (Cpu.Pin)0x56;      // LED4

        public static void Main()
        {
            var button = new InputPort(ButtonPin, true, Port.ResistorMode.Disabled);
            var led = new OutputPort(UserPin, false);

            (new Thread(() =>
            {
                while (true)
                {
                    var isPressed = !button.Read();

                    led.Write(isPressed);
                    Thread.Sleep(100);
                }
            })).Start();
        }
    }
}
広告
カテゴリー: .NET Micro Framework, IoT, IoT ALGYAN, PinKit タグ: パーマリンク

NETMF : InputPortの使い方とGR-PEACH / GR-SAKURAでのボタン操作のコード例 への4件のフィードバック

  1. ピンバック: NETMF : OutputPortの使い方とGR-PEACH / GR-SAKURAでの LED 点灯のコード例 | 技術との戯れ

  2. ピンバック: NETMF : InterruptPortの使い方とGR-PEACH / GR-SAKURAでのボタン操作のコード例 | 技術との戯れ

  3. ピンバック: NETMF : GR-PEACH, GR-SAKURA の GPIO のピンアサイン | 技術との戯れ

  4. ピンバック: NETMF : GPIO 接続のキャラクターディスプレイの使い方と、GR ファミリー用クラスライブラリへの追加 | 技術との戯れ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中