現在4chのロガーの入力チャンネル数を12ch(最大16ch)へ
増やす方法を探していたら、SparkFunのADS1015用ライブ
ラリでできそうなことがわかりました。
さらに調べていたら、MCP23017を複数使うスケッチを
見つけ、まねてやってみたらうまく行きましたましたので
紹介します。
ライブラリのインストール
Arduino IDEメニューから「スケッチ」、
「ライブラリをインクルード」、「ライブラリの管理」
と進み、ADS1015 で検索、SparkFanを選んでインストール
スケッチ例が追加されます。
サンプルスケッチ
動作はI2Cアドレス順、チャンネル順にADC変換データを
カンマ区切りでシリアルモニタへ出力します。
ADS1015 I2Cアドレス設定方法
ADDRピンをGND,VDD,SDA,SCLに接続して4つのアドレス
を選択します。
Adafruit ADS1015,AE-ADS1015はADDR端子無接続でも、
内部10KでGND接続されているため48となります。
ADDRとそれぞれの端子間を直接つなぎます。
ADDR-GND 48(Adafruit ADS1015,AE-ADS1015は開放)
ADDR-VDD 49
ADDR-SDA 4A
ADDR-SCL 4B
※お詫び#include行の""を<>に書き換えてください。
#include "SparkFun_ADS1015_Arduino_Library.h"
#include "Wire.h"
ADS1015 adcSensor1;
ADS1015 adcSensor2;
ADS1015 adcSensor3;
void setup() {
Wire.begin();
Serial.begin(9600);
adcSensor1.begin(0x48);
adcSensor2.begin(0x49);
adcSensor3.begin(0x4A);
adcSensor1.setGain(ADS1015_CONFIG_PGA_TWOTHIRDS);// +/- 6.144v
adcSensor2.setGain(ADS1015_CONFIG_PGA_TWOTHIRDS);
adcSensor3.setGain(ADS1015_CONFIG_PGA_TWOTHIRDS);
}
void loop() {
for (int i = 0; i < 4 ; i++) {
Serial.print(adcSensor1.getSingleEnded(i));
Serial.print(",");
}
for (int i = 0; i < 4 ; i++) {
Serial.print(adcSensor2.getSingleEnded(i));
Serial.print(",");
}
for (int i = 0; i < 4 ; i++) {
Serial.print(adcSensor3.getSingleEnded(i));
Serial.print(",");
}
Serial.println();
delay(2000);
}
製品パッケージ、Seeeduino XIAOの外観、
ボードマネージャのインストール方法を紹介したいと思い
ます。
小さくて安くてSeeeduino XIAOいいと思います。
デザインというか・・・なんか心惹かれるのは私だけでしょうか?
ボードマネージャのインストール
Arduino IDE 「ファイル」 => 「環境設定」
追加のボードマネージャのURL テキストボックス右のボ
タンをクリック
追加のボードマネージャのURLダイアログのクリックし
て非公式ボードをサポートするURLのリストを表示の文
字をクリック
webページが表示されたら、「Seeed SAMD Boards:」を探
し、その次の行の上で右クリック、メニューから「リン
クのアドレスをコピー」を選ぶ。※右クリックメニュー
内容や操作はWebブラウザで違う可能性があります。
追加のボードマネージャのURLダイアログへ戻り、テキ
ストボックスにマウスポインタを移動してクリックしま
す。テキストボックスが空行ならそのまま貼り付け(キ
ーボードで[Ctrl]と[V]を押す)、既に別のURLがあれば
その行末にカーソルを移動して、[Enter]キー押で改行
してから貼り付けます。
先程コピーしたURLの文字が入力されます。[OK]で閉じ
ます。
「ツール」 => 「ボード」 => 「ボードマネージャ」
テキストボックスに seeeduino と入力
Seeeduino SAMD Boards 候補が絞り込まれます。1.7.2
を選んでインストール(1.7.6は私の環境で不具合発生)
インストール中
「INSTALLED」表示でインストール完了
ボードマネージャを設定します。
Seeeduino XIAOが設定されました。
スケッチ例にSeeeduino XIAO用が表示されています。
以上でボードマネージャの設定は終わりです。
やってみた
ICL3232CVZが載ったRS232C-TTLレベル変換基板を2枚
使って、TXD、RXDの他にRTSとDTR信号を出力させました。
(想定外の使い方(?)なので自己責任で)
USBシリアル変換ケーブルと組み合わせて
ESP-WROOM-02スケッチ書き込み専用に使います。
参考
ESP側で
RTSをRESET(10KΩでプルアップ)へ
DTRをIO0(10KΩでプルアップ)へ接続することで
Arduino IDEボードマネージャReset Methodをnodemcuにして
書き込みモードへの移行操作が不要となります。
Arduino IDEの「マイコンボードに書き込む」操作だけで
書き込まれ、スケッチ(プログラム)が動き始めます。