【M5】M5StickC_3CHひずみアンプ基板作った<GPIO32,33,36フルで使う>

M5StickCで3軸のひずみゲージ測定用基板を制作しました。今までAD7193で作っていたのですが、原因不明の故障(SPIのクロックがでなくなった)なので、シンプルで確実なLT1167のアナログ信号をAD変換する3CHアンプ基板作りました。


■仕様

 

項目
アンプ 計装アンプ アナログデバイス製 LT1167  3個
CPU M5StickC 使用GPIO:
ADC:1CH=32,2CH=36,3CH=33
ボタン=26
電圧 3.3V~0V  ひずみゼロレベルを1.65Vに設定
測定周期 DISPLAY表示無:8msec(Serial.print命令の時間が4msec程度ある)

DISPLAY表示有:20msec(3行表示が安定する周期)

付属機能 プッシュボタン:GPIO26で押したときに何らかの操作をするため
用意する部品 AnalogueDevice社製 LT1167:3個秋月
可変抵抗:1KΩ 3個 秋月
Grooveピンケーブルセット:SwitchSceience
M5StickC:1個  SwitchScienceマルツ
小型端子台:PCB端子台 2P 2.54mmピッチ6個 
アマゾン

■プログラム
AD変換だけなので、Arduino入門レベルでできます。
https://gist.github.com/dj1711572002/b1d0270c5174a770c8a5c26397ec3001

#include <M5StickC.h>

int PINX=33;
int PINY =36;
int PINZ=32;
int red=26;
int mVX[100];

int mVx;
int mVy;
int mVz;

void setup() {
M5.begin();

M5.Lcd.setRotation( 3 );
M5.Lcd.setTextSize(2);
M5.Lcd.setTextColor(0xFFE0);//Yellow
pinMode(PINX, ANALOG);
pinMode(PINY, ANALOG);
pinMode(PINZ, ANALOG);
//pinMode(red,INPUT_PULLUP);

}

void loop() {
M5.Lcd.fillScreen(BLACK);
i++;
mVx=analogRead(PINX);
mVy=analogRead(PINY);
mVz=analogRead(PINZ);
Serial.printf(“%04d,%04d,%04d,%d\n\r”,mVx,mVy,mVz,millis());

M5.Lcd.setCursor(0, 10);
M5.Lcd.printf(“1Ch:%04d mV\n\r”,mVx);
M5.Lcd.setCursor(0, 26);
M5.Lcd.printf(“2Ch:%04d mV\n\r”,mVy);
M5.Lcd.setCursor(0, 42);
M5.Lcd.printf(“3Ch:%04d mV\n\r”,mVz);
delay(8);

}

■苦労した点備忘録
①M5StickCのGPIO 0と26はAD変換に使えない
LangShip様の解説記事を参考にさせていただきました。

M5StickCのIOについて調べてみた

②使えるGPIOがGrooveコネクタ出力なのでGrooveコネクタ無いと工作ができません。
 

●動作確認
 3軸センサのロードセル3本に接続して、CPLTでグラフみてみました。

 

●以後
SCP用にESP-NOW無線接続と同期させるプログラムを追加します。
記事は、後日SCPカテゴリーのアップします。

2 thoughts on “【M5】M5StickC_3CHひずみアンプ基板作った<GPIO32,33,36フルで使う>”

  1. こんにちはこんにちは、私は南アメリカのコロンビアから来ました、私はこのプロジェクトをやりたいです、あなたは私を助けてくれませんか
    ありがとうございました
    私の番号は+573223897611です
    私のメールpedro.r51@hotmail.com

    1. こんにちわ、現在コロンビアに在住されているのでしょうか?部品は入手できるのでしょうか?部品が入手できれば作れると思います。
      まずは、ご自身がdiyしたい目的を明確にしてご説明してください。目的次第で何をするかが決まります。

コメントを残す

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