NodeMcu (4) ADS1115 & OLED
経緯 アナログ信号を取り込み、TinyWebDBへ送るプログラムを作る予定。サンプリングレートは秒に100回。 WeMos miniは使いやすいから愛用しているが、2月から、WeMos miniの開発中も頻繁にリブートしています。デバイストライバのバージョンを変えたり、OSを変えたりしても改善しない。結局原因がわからず、仕方なく開発中書き込み直前にUSBケーブル接続、書き込み終わったらすぐUSBケーブ抜く方法で運がよければリブート回避する状態が続て、悩んでいます。 ADS1115プログラムを作るため、安定したNodeMcuできることならこちらで凌ぎ。 ADS1115とは ADS1115 は、16-Bit ADC – 4 Channel with Programmable Gain Amplifier 特徴:広い電源電圧範囲:2.0V ~ 5.5V。低消費電流: 連続モード:150μA。 _ プログラマブルゲインアンプ内蔵。プログラミング可能なコンパレータ。 _ 4本のシングルエンド入力。2本の差動入力。I2Cインターフェイス。 _ 最小±256mVから電源電圧までの入力範囲に対応。 ライブラリーでは コマンド送信し 8msec 後に データーの読み込みを行う、サンプリングレートは秒に100回するため、Adafruit_ADS1X15/Adafruit_ADS1015.hのADS1115_CONVERSIONDELAYを8から9に変更する。 結線 普通のI2Cでつなぐだけ。 スケッチ 最初のプログラムは、アナログ読む度に表示してるが、表示できるのは秒に十回未満。そしてOLEDには、1秒間読み取れたデータの個数と、最新のアナログ値を表示すると変更して110回程度読み込みできるようになり。 ADS1115_CONVERSIONDELAYを8から9に変更して、表示の通り、秒に101回って、概ね要求に満たした。 #include <Wire.h> #include <Adafruit_ADS1015.h> // ADS1015,1115 Adafruit_ADS1115 ads(0x48); // 16-bit version #include <Adafruit_GFX.h> // OLED #include <Adafruit_SSD1306.h> // OLED Adafruit_SSD1306 display(0); […]
Arduino NANO (8) ADS1115 & OLED
Arduino NANO (7) ADS1115 for A/D できたので、行きよいでOLEDの表示も追加した。 ( WeMos (b9) ADS1115 for A/D )とほぼ同じプログラムだが、なぜかうまく表示する、どうして? 表示されるのは2本古い電池の電圧を測る値。 今度ピエゾの電圧も測ってみる。
Arduino NANO (7) ADS1115 for A/D
経緯 ADS1115を購入して、生体信号のAD変換に利用するつもりだが、うまくいかない( WeMos (b9) ADS1115 for A/D 参考)、正しい電圧が表示されない。 そこで、Arduino NANOのチュートリアルを探して、検証することに。 ハードウェア ADS1115とArduino NANOはI2Cで接続。 ソフトウェア 「参考1」コードそのまま。 #include <Wire.h> #include <Adafruit_ADS1015.h> Adafruit_ADS1115 ads; // Declare an instance of the ADS1115 int16_t rawADCvalue; // The is where we store the value we receive from the ADS1115 float scalefactor = 0.1875F; // This is the scale factor for the default +/- […]
WeMos (b9) ADS1115 for A/D
ADS1115とは ADS1115 とは4チャンネル16bit A/D 。I2C接続なので、OLEDと共に、WeMos に接続して利用してみる。 結線 SCL, SDA自由に変更可能。U8g2初期化コマンドでSetupする。 code #include <Wire.h> #include <Adafruit_ADS1015.h> #include <U8g2lib.h> #include <math.h> #define WINDOW_SIZE 128 Adafruit_ADS1115 ads; /* Use this for the 16-bit version */ //Adafruit_ADS1015 ads; /* Use thi for the 12-bit version */ // Sets up the display to be the 128px x 32px display U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0, […]