目次:
arduinotronics.blogspot.com/の精神から
重要なアップデート!
非常に多くの人々がINA125Pに問題を抱えていたので、Hx711 24ビットADCアンプモジュールを使用する新しい改良版を入手しました。
私の目標は、物の計量、部品の計数、さらにはコンベヤシステムでの製品の流れを指示するためのプログラム可能なはかりを作成することでした。
ロードセル、Arduino、そしてアンプが必要でした。
用品:
ステップ1:ロードセル
このロードセル(Accuteck W-8260-86W郵便スケールから)でロードセルから来る4本のワイヤーは以下のとおりです。
赤:興奮+
白:シグナル+
グリーン:シグナル -
黒:興奮 -
これはGSE / NCI / Sensotecの配線方式と一致します。
www.controlweigh.com/loadcell_colors.htm
私はスケール内のコントロールボードから4本のワイヤーを外したので、それらは次のステップに利用できるでしょう。
ステップ2:アンプ
Arduinoがアナログ入力で読み取ることができるようにロードセルの出力を増やすには、INA125Pアンプと10オームの抵抗が必要です。添付の回路図のようにArduinoに接続してください。
データシート:http://www.ti.com/lit/ds/symlink/ina125.pdf
ステップ3:コード
//ロードセルアンプとしてのArduino
// Christian Liljedahl著
// christian.liljedahl.dk
//ロードセルは線形です。したがって、2つのデータペアを確立したら、残りを補間できます。
//ステップ1:このスケッチをあなたのarduinoボードにアップロードする
//よく知っている体重を2つロードする必要があります。この例では、A = 10 kgです。 B = 30 kg
//負荷Aをかける
//表示されているアナログ値を読み取る(これはanalogvalAです)
//負荷Bをかける
//アナログ値Bを読み取る
//自分のアナログ値をここに入力してください
float loadA = 10。 // kg
int analogvalA = 200。 //ロードセルのロードAでアナログ読み
float loadB = 30。 // kg
int analogvalB = 600。 //ロードセルのロードBでアナログ読み取り
//スケッチを再度アップロードし、シリアル出力からのキロ読みが正しいことを確認します
float analogValueAverage = 0;
//どのくらいの頻度で測定を行いますか?
長時間= 0。 //
int timeBetweenReadings = 200; // 200ミリ秒ごとに読みたい。
void setup(){
Serial.begin(9600);
}
void loop(){
int analogValue = analogRead(0);
//移動平均 - 読み取り値を少し滑らかにします
analogValueAverage = 0.99 * analogValueAverage + 0.01 * analogValue;
//印刷する時間ですか?
if(millis()> time + timeBetweenReadings){
float load = analogToLoad(analogValueAverage);
Serial.print( "analogValue:"); Serial.println(analogValueAverage);
Serial.print( "load:"); Serial.println(load、5);
time = millis();
}
}
float analogToLoad(float analogval){
//標準のarduinoマップ関数はintしか使用しないので、カスタムのmap-functionを使用します
float load = mapfloat(analogval、analogvalA、analogvalB、loadA、loadB);
負荷を返します。
}
float mapfloat(float x、float in_min、float in_max、float out_min、float out_max)
{
return(x - in_min)*(out_max - out_min)/(in_max - in_min)+ out_min;
}
ステップ4:校正と使用
シリアルモニタにデータが表示されますが、目盛りを調整するまで意味がありません。校正のためのコードのステップに従うと、このはかりを使用する準備ができました、風袋重量をゼロにするためのボタンのような追加機能、またはプロセス制御のためのサーボとリレーを制御すること。
arduinotronics.blogspot.com/2013/01/working-with-sainsmart-5v-relay-board.html