常に4095が表示される。プログラムでは、A0ではなくA1を使う。R2ではA0だけ使えるという結果になりましたが、これには理由があります。Converter)が行います。BTのCPUであるESP-WROOM-32には2系統のADCがありADC1、ADC2と呼ばれています。ADCが使えるGPIOピンは決まっています。BT無印のGroveソケットでは、A2でADC1が、A0でADC2が使えることになりますが、A2は動作しますが、A0は動作しません。R2のGroveソケットでは、A0でADC1が、D5でADC2が使えることになりますが、A0は動作しますがD5は動作しません。これは、Wifiが動作しているときはADC2は使えないという制限がESP-WROOM-32にあるためです。GuideのADCの項を参照してください。R2のD5も使えると思いますが、まだ実験していません。R2のピンソケットA0、A1、A2、A3にも接続されているので使えると思いますが、こちらもまだ実験していません。V1.1というモジュールです。現在スイッチサイエンスさんで単体で販売されているボタンモジュールとは、使われているボタン部品が違ったり、ネジ止め用の穴に対する端子の位置が90度異なるなど違いがありますが、動作は同じだと考えられます。こちらもスイッチサイエンスさんで販売されているタッチセンサとは、ネジ止め用の穴に対する端子の位置が90度異なります。GroveタッチセンサGroveタッチセンサ(裏)ボタンとタッチセンサの働きボタンとタッチセンサはデジタルモジュールです。ボタンが押されていない(タッチセンサに触れていない)状態では0(LOW)を返し、押されている(触れている)状態では1(HIGH)を返します。プログラムシリアルモニタに、通常は0が表示され、ボタンを押している間(タッチセンサの場合は指で触れている間)だけ1が表示されるプログラムです。モジュールを接続するGroveソケットに合わせて、PINの#define文で指定してください。Button//Groveケーブルを接続するGroveソケットを1つ選んで#define文に記載してください。(注:A0を使うときはA1を記載します。}123456789101112131415//Groveケーブルを接続するGroveソケットを1つ選んで#define文に記載してください。(注:A0を使うときはA1を記載します。無印のGroveソケットの名前は下記のようになっています。R2のGroveソケットの名前は下記のようになっています。R2のGroveソケット名A0ソケットを使う場合は、プログラム上ではA1を指定してください。R2の配線がA0とA1が入れ違っているためです。ボタン(あるいはタッチセンサ)の状態が0あるいは1で返ってきます。プログラムを動作させるとシリアルモニタにこのように表示されます。ボタンを押している間は1が表示されます。シリアルモニタの出力例Groveソケットごとの動作状況4箇所のGroveソケットにボタンを順に接続して、動作をテストしてみました。タッチセンサの場合も同じ結果になります。BT無印でのテスト結果はこうなりました。液晶ディスプレイとピンを共有しているため動作しません。R2でのテスト結果はこうなりました。R2のGroveソケットA0は、実際にはA1が配線されているため、プログラムでピンを指定するときA1を指定します。BTにはGroveソケット以外にピンソケットも用意されています。変換ケーブルを使うとGroveモジュールをピンソケットに接続できます。スイッチサイエンスさんにはこんな変換ケーブルがあります。オスのジャンパーケーブルを接続して使います。ケーブルは4本の線があり、ボタンとタッチセンサでは次のように機能が割り振られています。黄:信号ピンソケットを使う場合は、赤を3.3V、黒をGND、黄色をGPIOソケットに接続します。無印のピンソケットの配置は下図のようになっています。R2のピンソケットの配置は下図のようになっています。R2のピンソケット配置図ピンソケットの動作状況ボタンを順に接続して、動作をテストしてみました。タッチセンサの場合も同じ結果になります。D1以外のピンソケットで動作しました。BT無印でのテスト結果はこうなりました。R2でのテスト結果はこうなりました。全てのピンソケットで動作しました。OK動作テストに使用したプログラムはこちらです。V1.2というモジュールです。スイッチサイエンスさんの単体販売ページに掲載されているものと同じです。Groveブザーモジュール(表)Groveブザーモジュール(裏)ブザーモジュールの動作ブザーモジュールはデジタル出力モジュールです。1(HIGH)を送るとブザーが鳴り、0(LOW)を送るとブザーが止まります。音量の調整はできません。大きな音が出るので、静かな部屋だとびっくりします。プログラム1秒間音を鳴らした後1秒間音を止めるという動作を繰り返すプログラムです。(注:A0を使うときはA1を記載します。(注:A0を使うときはA1を記載します。OUTPUT)で、GPIOピンを出力に設定しています。HIGH)でHIGHを出力して音を鳴らし、delay(1000)で1秒間待ちます。LOW)でLOWを出力して音を止め、delay(1000)で1秒間待ちます。Wikiページにはブザーでメロディーを演奏するプログラムが掲載されています。BTで動作するように、19行目のBUZZER_PINの設定をコメントアウトし、24行目でBUZZER_PINの値を変更してあります。(注:A0を使うときはA1を記載します。(注:A0を使うときはA1を記載します。)が、指定された高さの音を鳴らす関数です。‘d’,・・・で音の高さを指定します。引数durationはその音を鳴らす時間をmsで指定します。second単位で覚えています。duration)が実際に音を鳴らしている関数です。secondだけ待ちます。secondだけ待ちます。secondが非常に短い時間なので、このOn/Offの繰り返しで音の高さを調整しています。音を鳴らしている時間の調整は52行目で行なっています。実行してみると、綺麗な音ではありませんが、一応メロディーに聞こえます。BTが供給する3.3Vでは回路が壊れる可能性があります。筆者の環境では下記の内容で動作しましたが、壊れないことを保証するものではありません。V1.2というモジュールです。スイッチサイエンスさんの単体販売ページに掲載されているものと同じです。右側の黒い箱がリレーです。左にある緑色部分にOn/Offしたい機器のケーブルを接続します。ケーブルの固定は上部のマイナスネジを回して行います。リレーモジュールの動作1(HIGH)を送ると回路が接続し、0(LOW)を送ると回路を切断します。接続する回路は、リレー上面に記載されている仕様を満たしていなければなりません。リレーモジュールには回路の接続/切断状態を表すLEDが取り付けられています。回路が接続状態のときLEDが点灯し、切断状態のときLEDが消灯します。(注:A0を使うときはA1を記載します。(注:A0を使うときはA1を記載します。LOW);Serial.println(LOW);delay(1000);}1秒ごとに回路の接続・切断を繰り返すプログラムです。使ってHIGHとLOWを交互に設定しています。V1.6というモジュールです。スイッチサイエンスさんの単体販売ページに掲載されているものと同じです。黒い丸い部分がマイクで、その下にあるICはアンプです。音センサモジュールはアナログモジュールです。音の大きさに応じて出力される電圧が変化します。)関数を使って音センサーから読み込んだ値をシリアルモニタに表示するプログラムです。(注:A0を使うときはA1を記載します。(注:A0を使うときはA1を記載します。{Serial.println(analogRead(PIN));delay(100);}このプログラムを動作させると、このように数字列が表示されます。数値が激しく変化していますね。音の情報なので変化速度や変化量が大きいためだと思われます。100ms周期でデータを取るのは遅すぎるようです。Seeed社のWikiページに掲載されているプログラムは次のようになっています。5;Serial.println(sum);delay(10);}32回測定してその平均を計測結果にしています。計測は10ms周期で行なっています。これだけ短い周期で結果をシリアルモニタに出力すると、値がどんどん流れて行ってしまい、全体の傾向がどうなっているのかがわかりません。シリアルプロッタを使うと、結果をわかりやすく表示できます。シリアルプロッタを開く手順は次の通りです。シリアルモニタが開いている場合は閉じますツールメニューのシリアルプロッタを選択します。ツルーメニューでシリアルプロッタを選択シリアルプロッタには次のようなグラフが表示されます。