Relative Content

Daily Archives: 2018年9月30日

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); […]