[Nefry BTとGrove接続実験] ボリューム

ボリュームモジュール(可変抵抗モジュール)

私が購入したGROVEスターターキットV3に入っていたボリュームは、Rotary Angle Sensor V1.2 というモジュールです。スイッチサイエンスさんの単体販売ページの中央に写っているものと同じです。同じページの右上の画像のモジュールはボリュームパーツが若干異なるようです。

Groveボリュームモジュール(表)
Groveボリュームモジュール(裏)

ボリュームモジュールの動作

ボリュームモジュールはアナログモジュールです。3.3Vの電源に接続している場合、ノブを回すと0Vから3.3Vまで電圧が連続的に変化します。ノブを時計回りにいっぱい回すと0Vで反時計回りにいっぱい回すと3.3Vが出力されます。なんとなく逆のイメージがありますが、このような動作になっています。

プログラム

ボリュームモジュールから読み込んだ値をシリアルコンソールに表示するプログラムです。値の読み込みはanalogRead(PIN)関数で行なっています。

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

void setup() {
  pinMode(PIN, INPUT);
}

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

プログラムを動作させノブを左右に回すとこのように0〜4095の数字が表示されます。右にいっぱい回すと0、左にいっぱい回すと4095が表示されます。

コンソール出力例

 

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

4箇所のGroveソケットにボリュームモジュールを順に接続して、動作をテストしてみました。

Nefry BT 無印の場合はこうなります。

GROVEソケット名動作状況コメント
D0NOボリュームを接続した状態だとNefry BTが起動しない。起動してから接続すると、常に4095が表示される。
D2NO常に0が表示される。
A0NO常に4095が表示される。
A2OK

Nefry BT R2の場合はこうなります。

GROVEソケット名動作状況コメント
D0NO常に0が表示される。
D2NO常に0が表示される。
D5NO常に4095が表示される。
A0OKプログラムでは、A0ではなくA1を使う。

Nery BT無印ではA2だけ、Nefry BT R2ではA0だけ使えるという結果になりましたが、これには理由があります。

0〜3.3Vの電圧を0〜4095の数値に変換する作業はADC(Analog Digital Converter)が行います。Nefry BTのCPUであるESP-WROOM-32には2系統のADCがありADC1、ADC2と呼ばれています。ADCが使えるGPIOピンは決まっています。

GPIO番号無印 Groveソケット名無印 PIN名R2 Groveソケット名R2 PIN名ADC1ADC2
GPIO0ADC2_CH1
GPIO2ADC2_CH0
GPIO4ADC2_CH2
GPIO12ADC2__CH5
GPIO13A6D7ADC2_CH4
GPIO14A5D8ADC2_CH6
GPIO15ADC2_CH3
GPIO25A0A0D5D5ADC2_CH8
GPIO26A1D6ADC2_CH9
GPIO27A4T4(基板裏)ADC2_CH7
GPIO32A2A2A0A1ADC1_CH4
GPIO33A3A0ADC1_CH5
GPIO34ADC1_CH6
GPIO35A7ADC1_CH7
GPIO36A3ADC1_CH0
GPIO39A2ADC1_CH3

Nefry BT無印のGroveソケットでは、A2でADC1が、A0でADC2が使えることになりますが、A2は動作しますが、A0は動作しません。同様にNefry BT R2のGroveソケットでは、A0でADC1が、D5でADC2が使えることになりますが、A0は動作しますがD5は動作しません。これは、

Wifiが動作しているときはADC2は使えない

という制限がESP-WROOM-32にあるためです。詳しくはESP-IDF Programming GuideのADCの項を参照してください。

Wifiを止めればNefry BT無印のA0とNefry BT R2のD5も使えると思いますが、まだ実験していません。

ADC1は、Nefry BT無印のピンソケットA2、 A3、A7や、Nefry BT R2のピンソケットA0、A1、A2、A3にも接続されているので使えると思いますが、こちらもまだ実験していません。

諸元

名称Rotary Angle Sensor
ボリューム
バージョンv1.2
Seeed社 Wikihttp://wiki.seeedstudio.com/Grove-Rotary_Angle_Sensor/
スイッチサイエンス商品ページhttps://www.switch-science.com/catalog/805/
Nefry BT無印 動作ソケットA2
Nefry BT R2 動作ソケットA0(プログラム上はA1)

参考文献

ESP-IDF Programming Guide – ADC

スイッチサイエンスの記事 「ESP-WROOM-32に関するTIPS」のADCの項

 


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

コメントを残す

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

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