[Nefry BTとGrove接続実験] ボタンとタッチセンサ

ボタンモジュール

私が購入したGROVEスターターキットV3に入っていたボタンは、Button V1.1というモジュールです。現在スイッチサイエンスさんで単体で販売されているボタンモジュールとは、使われているボタン部品が違ったり、ネジ止め用の穴に対する端子の位置が90度異なるなど違いがありますが、動作は同じだと考えられます。

Groveボタン
Groveボタン(裏)

タッチセンサモジュール

タッチセンサはTouch v1.1です。こちらもスイッチサイエンスさんで販売されているタッチセンサとは、ネジ止め用の穴に対する端子の位置が90度異なります。

Groveタッチセンサ
Groveタッチセンサ(裏)

ボタンとタッチセンサの働き

ボタンとタッチセンサはデジタルモジュールです。ボタンが押されていない(タッチセンサに触れていない)状態では0(LOW)を返し、押されている(触れている)状態では1(HIGH)を返します。

プログラム

シリアルモニタに、通常は0が表示され、ボタンを押している間(タッチセンサの場合は指で触れている間)だけ1が表示されるプログラムです。モジュールを接続するGroveソケットに合わせて、PINの#define文で指定してください。

//Groveケーブルを接続するGroveソケットを1つ選んで#define文に記載してください。
// Nefry BT無印の場合: D0, D2, A0, A2
// Nefry BT R2の場合: D0, D2, D5, A1 (注:A0を使うときはA1を記載します。)
#define PIN D2

void setup() {
  pinMode(PIN, INPUT);
  Serial.print("PIN = ");
  Serial.println(PIN);
}

void loop() {
  Serial.println(digitalRead(PIN));
  delay(300);
}

Nefry BT 無印のGroveソケットの名前は下記のようになっています。

Nefry BT無印のGroveソケット名

Nefry BT R2のGroveソケットの名前は下記のようになっています。

Nefry BT R2のGroveソケット名

A0ソケットを使う場合は、プログラム上ではA1を指定してください。これは、Nefry BT R2の配線がA0とA1が入れ違っているためです。

状態の取得は、digitalRead(PIN )関数で行います。ボタン(あるいはタッチセンサ)の状態が0あるいは1で返ってきます。

プログラムを動作させるとシリアルモニタにこのように表示されます。ボタンを押している間は1が表示されます。

シリアルモニタの出力例

Groveソケットごとの動作状況

4箇所のGroveソケットにボタンを順に接続して、動作をテストしてみました。タッチセンサの場合も同じ結果になります。

Nefry BT無印でのテスト結果はこうなりました。

GROVEソケット名動作状況コメント
I2C(D0)NO液晶ディスプレイとピンを共有しているため動作しません。またソケットにボタンモジュールをつないでいるとNefry BTが起動しません。
D2OK
A0OK
A2OK

 

Nefry BT R2でのテスト結果はこうなりました。

GROVEソケット名動作状況コメント
D0OK
D2OK
D5OK
A2OKプログラムではA0の代わりにA1を指定する

Nefry BT R2のGroveソケットA0は、実際にはA1が配線されているため、プログラムでピンを指定するときA1を指定します。

ピンソケットの利用

Nefry BTにはGroveソケット以外にピンソケットも用意されています。変換ケーブルを使うとGroveモジュールをピンソケットに接続できます。スイッチサイエンスさんにはこんな変換ケーブルがあります。

Grove先ばらケーブル

先端がメスになっているのでオス – オスのジャンパーケーブルを接続して使います。

ケーブルは4本の線があり、ボタンとタッチセンサでは次のように機能が割り振られています。

黒:GRD
赤;VCC
白:未接続
黄:信号

ピンソケットを使う場合は、赤を3.3V、黒をGND、黄色をGPIOソケットに接続します。

Nefry BT 無印のピンソケットの配置は下図のようになっています。

Nefry BT無印のピンソケット配置図

 

 

Nefry BT R2のピンソケットの配置は下図のようになっています。

Nefry BT R2のピンソケット配置図

ピンソケットの動作状況

ボタンを順に接続して、動作をテストしてみました。タッチセンサの場合も同じ結果になります。D0, D1以外のピンソケットで動作しました。

Nefry BT無印でのテスト結果はこうなりました。

ピンソケット動作状況コメント
D0NO液晶ディスプレイと共用のため
D1NO液晶ディスプレイと共用のため
D2OK
D3OK
D4OK
A0OK
A1OK
A2OK
A3OK
A4OK
A5OK
A6OK
A7OK

Nefry BT R2でのテスト結果はこうなりました。全てのピンソケットで動作しました。

ピンソケット動作状況コメント
D0OK
D1OK
D2OK
D3OK
D4OK
D5OK
D6OK
D7OK
D8OK
A0OK
A1OK
A2OK
A3OK

動作テストに使用したプログラムはこちらです。

// Nefry BT無印の場合: D0,D1,D2,D3,D4,A0,A1,A2,A3,A4,A5,A6,A7 
// Nefry BT R2の場合: D0,D1,D2,D3,D4,D5,D6,D7,D8,A0,A1,A2,A3 
#define PIN D2

void setup() {
  pinMode(PIN, INPUT);
  Serial.print("PIN = ");
  Serial.println(PIN);
}

void loop() {
  Serial.println(digitalRead(PIN));
  delay(300);
}

諸元

ボタンの諸元

名称Button
ボタン
バージョンv1.1
Seeed社 Wikihttp://wiki.seeedstudio.com/Grove-Button/
スイッチサイエンス商品ページhttps://www.switch-science.com/catalog/801/
Nefry BT無印 動作ソケットD2, A0, A2
Nefry BT R2 動作ソケットD0, D2, D5, A0(プログラム上はA1)

タッチセンサの諸元

名称Button
ボタン
バージョンv1.1
Seeed社 Wikihttp://wiki.seeedstudio.com/Grove-Touch_Sensor/
スイッチサイエンス商品ページhttps://www.switch-science.com/catalog/811/
Nefry BT無印 動作ソケットD2, A0, A2
Nefry BT R2 動作ソケットD0, D2, D5, A0(プログラム上はA1)

「Nefry BTとGroveモジュール接続実験」 トップページ

コメントを残す

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

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