ボタンモジュール
私が購入したGROVEスターターキットV3に入っていたボタンは、Button V1.1というモジュールです。現在スイッチサイエンスさんで単体で販売されているボタンモジュールとは、使われているボタン部品が違ったり、ネジ止め用の穴に対する端子の位置が90度異なるなど違いがありますが、動作は同じだと考えられます。
タッチセンサモジュール
タッチセンサはTouch v1.1です。こちらもスイッチサイエンスさんで販売されているタッチセンサとは、ネジ止め用の穴に対する端子の位置が90度異なります。
ボタンとタッチセンサの働き
ボタンとタッチセンサはデジタルモジュールです。ボタンが押されていない(タッチセンサに触れていない)状態では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 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が起動しません。 |
D2 | OK | |
A0 | OK | |
A2 | OK |
Nefry BT R2でのテスト結果はこうなりました。
GROVEソケット名 | 動作状況 | コメント |
---|---|---|
D0 | OK | |
D2 | OK | |
D5 | OK | |
A2 | OK | プログラムではA0の代わりにA1を指定する |
Nefry BT R2のGroveソケットA0は、実際にはA1が配線されているため、プログラムでピンを指定するときA1を指定します。
ピンソケットの利用
Nefry BTにはGroveソケット以外にピンソケットも用意されています。変換ケーブルを使うとGroveモジュールをピンソケットに接続できます。スイッチサイエンスさんにはこんな変換ケーブルがあります。
先端がメスになっているのでオス – オスのジャンパーケーブルを接続して使います。
ケーブルは4本の線があり、ボタンとタッチセンサでは次のように機能が割り振られています。
黒:GRD
赤;VCC
白:未接続
黄:信号
ピンソケットを使う場合は、赤を3.3V、黒をGND、黄色をGPIOソケットに接続します。
Nefry BT 無印のピンソケットの配置は下図のようになっています。
Nefry BT R2のピンソケットの配置は下図のようになっています。
ピンソケットの動作状況
ボタンを順に接続して、動作をテストしてみました。タッチセンサの場合も同じ結果になります。D0, D1以外のピンソケットで動作しました。
Nefry BT無印でのテスト結果はこうなりました。
ピンソケット | 動作状況 | コメント |
---|---|---|
D0 | NO | 液晶ディスプレイと共用のため |
D1 | NO | 液晶ディスプレイと共用のため |
D2 | OK | |
D3 | OK | |
D4 | OK | |
A0 | OK | |
A1 | OK | |
A2 | OK | |
A3 | OK | |
A4 | OK | |
A5 | OK | |
A6 | OK | |
A7 | OK |
Nefry BT R2でのテスト結果はこうなりました。全てのピンソケットで動作しました。
ピンソケット | 動作状況 | コメント |
---|---|---|
D0 | OK | |
D1 | OK | |
D2 | OK | |
D3 | OK | |
D4 | OK | |
D5 | OK | |
D6 | OK | |
D7 | OK | |
D8 | OK | |
A0 | OK | |
A1 | OK | |
A2 | OK | |
A3 | OK |
動作テストに使用したプログラムはこちらです。
// 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社 Wiki | http://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社 Wiki | http://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) |