hiro yamamoto works

ESP8266 Web logger
RaspberryPi HiRes Audio
Mini Solar power system
当ブログ掲載内容は無保証です。利用は自己責任でお願いいたします。

 

カレンダー

2020
October
Sun Mon Tue Wed Thu Fri Sat
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

QRコード

検索



このブログを検索

カウンター

本日のアクセス
昨日のアクセス
総アクセス数

ブログサービス

Powered by

teacup.ブログ
RSS

真空センサとADS1015を組み合わせたセンサモジュールを自作

複数の圧力を計測したいので作りました。
I2Cバス接続のADCとMIS-2500-015V圧力センサを
基板に載せてモジュール化しました。
(最大8個の圧力センサが使えます。)
I2Cバスを2mのLANケーブルでマイコンに接続していますが
問題なく測定できました。
長時間の使用でどうなのかは、お客様からのフィードバック
情報を待ちます。2020/12/20更新
製作手順スライド動画をYouTubeへアップしました。2021/03/17

ケースに収納したセンサモジュール
クリックすると元のサイズで表示します

2mLANケーブルでマイコンとI2C接続
クリックすると元のサイズで表示します

秋月電子取扱 Cタイプユニバーサル基板にレイアウト
しました。(サイズ 72.0x47.5mm)試作品の写真
クリックすると元のサイズで表示します

試作品の写真
クリックすると元のサイズで表示します

基板裏配線
クリックすると元のサイズで表示します
試作ではラジアルリードの積層セラミックコンデンサを
使いましたが、本製作ではチップコンデンサを使いました。
AE-ADS1015のプルアップ抵抗は使わずに、4.7Kを外付け
しました。

試作配線図
表から見た図と裏から見た図
クリックすると元のサイズで表示します
赤点線の交わるところにチップコンデンサが載っています。

無保証自己責任でお願いします。
0
投稿者:管理人

MMA8451とBME280を2個づつ使う

ESP-WROOM-02 MMA8451とBME280を2個づつないで測定できました。
再編集


当初正常動作できるセンサケーブル長の合計は3m程度でした
が、I2C-Busバッファを追加することで合計10m可能となりま
した。(CAT5フラットタイプLANケーブルで2種センサのセッ
トを5m延長でそれぞれ接続し動作を確認)

バッファについては下記リンクの記事を見て下さい。
作ってみたI2C-BusバッファPCA9600
PCA9600 I2C-Bus Buffer改

クリックすると元のサイズで表示します

センサについて
・Adafruit MMA8451 Accelerometer Breakout
 レギュレータ,レベル変換搭載 5V電源とロジック可
 I2Cプルアップ抵抗10kΩ付き
 I2Cアドレス 初期設定は0x1D、A端子をGND接続で0x1C

・BME280センサモジュール アマゾンで購入3個入1,880円
 レギュレータ,レベル変換搭載 5V電源とロジック可
 I2Cプルアップ抵抗10kΩ付き
 I2Cアドレス 初期設定は0x76
   パターンカットはんだブリッジで0x77(下画像)
クリックすると元のサイズで表示します
 (ジャンパーパッド左と中央間のパターンをカット
 中央と右をはんだでブリッジする。)

MMA8451、BME280センサ
クリックすると元のサイズで表示します

スケッチは一部修正が必要かも知れませんが参考まで
また、各センサ用のライブラリはArduinoIDEのメニューから
「スケッチ」「ライブラリをインクルード」「ライブラリを
管理」センサ名で検索しインストールして下さい。
ありがたく使わせていただきます。

#include行の<>記号は半角へ修正して下さい。
#include <Wire.h>
#include "Adafruit_MMA8451.h"
#include <Adafruit_Sensor.h>

#include "SparkFunBME280.h"
BME280 mySensor1;
BME280 mySensor2;

Adafruit_MMA8451 mma1 = Adafruit_MMA8451();
Adafruit_MMA8451 mma2 = Adafruit_MMA8451();


void setup(void) {
Serial.begin(115200);
Serial.println("");
Serial.println("Reading basic values from MMA8451 and BME280");

Wire.begin(4, 5); // //デフォルトは0x1D
if (! mma1.begin(0x1D) || ! mma2.begin(0x1C)) {
//mmaのbegin()の中でwire.begin()してた
Serial.println("MMA8451 Couldnt start");
while (1);
}
Serial.println("MMA8451 found!");

mySensor1.setI2CAddress(0x76);//default 0x76
mySensor2.setI2CAddress(0x77);
if (! mySensor1.beginI2C() || ! mySensor2.beginI2C() ) {
//Begin communication over I2C
Serial.println("BME280 did not respond. Please check wiring.");
while (1); //Freeze
}

mma1.setRange(MMA8451_RANGE_2_G);
mma2.setRange(MMA8451_RANGE_2_G);

Serial.print("MMA1 Range = ");
Serial.print(2 << mma1.getRange());
Serial.println("G");
Serial.print("MMA2 Range = ");
Serial.print(2 << mma2.getRange());
Serial.println("G");
}


シリアルモニタ表示
クリックすると元のサイズで表示します

Arduino UNO等でもできると思います。
興味がある方はお試し下さい。

無保証自己責任でよろしくお願いします。
0
投稿者:管理人
1 | 《前のページ | 次のページ》
/1 
 
AutoPage最新お知らせ