ストレインゲージの出力の増幅
 ストレインゲージの出力値と増幅した値をSANWAのPC710で測定した結果を次に示します。無負荷から11kgまで約2mVの変化でしたが600mVの変化に拡大されました。これで、何とかArduinoのアナログ入力で処理できる範囲になりました。

ardsens200010.jpg

 EXCELでセンサの出力電圧から荷重を求める回帰式を求めます。そのため、次に示すように表の項目の順番を入れ替えました。「増幅後の電圧」、「荷重」の順番にしました。

ardsens200020.jpg  この順番にしますと、次に示すようにEXCELの散布図のグラフに「増幅後の電圧」から荷重を求めることができる回帰式を追加することができます。

ardsens200030.jpg このグラフで、次の回帰式を利用しセンサの出力から荷重を求めるArduinoのスケッチを作ります。
       y=18.715-17.813

Arduinoのスケッチ
 今回作成したArduinoのスケッチを示します。測定結果をLCDに表示しますので、LCDのライブラリを読み込む#include の命令に続いて、スケッチの中で使用する変数を定義しています。その後初期化処理のsetup()関数でシリアル通信の初期化を行っています。シリアル通信はデバッグの時に変数などの確認のためのもので、デバッグ以外に使用していません。
#include 
LiquidCrystal lcd(2,3,4,5,6,7);
float RV=5.01,vf,fg;
int n;
void setup(){
  Serial.begin(9600);
  lcd.begin(16,2); 
}
 アナログ入力1からのセンサの読み取りをn=analogRead(1);で行い、vf=n*RV/1024.0;で電圧に換算し、fg=18.715*vf-17.813;でfgに荷重が求められます。その後は、LCDに表示し500msの待ち時間後繰り返すスケッチになっています。
void loop(){
  n=analogRead(1);
  vf=n*RV/1024.0;
  fg=18.715*vf-17.813;
  lcd.clear();
  lcd.print("n=");
  lcd.print(n);
  lcd.print(" rv=");
  lcd.print(vf*1000);
  lcd.setCursor(0,1);
  lcd.print("G = ");
  lcd.print(fg);
  delay(500); 
}
 Arduino IDEに作成したスケッチを次に示します。

ardsens200040.jpg  このスケッチの実行結果を次に示します。1k以上の荷重ですと荷重に応じた値が示されます。ブレッドボード上の配線のためか、増幅後の電圧の変動が大きくなっています。


ardsens200050.jpg 数V の信号が出力される場合は、直接Arduinoのアナログ入力で処理できブレッドボードでも問題なく利用できます。しかし、数mVの電圧を増幅するには電源、配線、ノイズ対策が必要になります。ブリッジ回路、計装アンプをモジュール化してマイコンで処理できる信号を出力することが必要になります。この件については計装アンプの使い方も含めてあらためて検討します。

 <神崎康宏>


トラックバック(0)

このブログ記事を参照しているブログ一覧: ストレインゲージによる重さの測定(4)

このブログ記事に対するトラックバックURL: http://www.eleki-jack.com/mt/mt-tb.cgi/5995

コメントする





マイコンと電子工作 No.6


マイコンと電子工作 No.4


マイコンと電子工作No.1
サポート・ページはこちら

カテゴリ

このブログ記事について

このページは、kanzakiが2012年1月16日 12:40に書いたブログ記事です。

ひとつ前のブログ記事は「Arduino関連書籍が出ます」です。

次のブログ記事は「RTC-8564NBモジュール(6)日付、時刻の設定(3)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログのライセンスは クリエイティブ・コモンズライセンス.