2016-09-26 9 views
0

私はAdafruit INA219モジュールを使用してリニアアクチュエータの電圧と電流を測定していますが、自分の状況に合わせてモジュールを最適に較正する方法について質問があります。Adafruit INA219モジュール、シャント電圧値と較正

私は10Aの最大電流定格を持つ12Vの電源(ノートパソコン用の電源レンガに似ています)を持っています。アクチュエータの最大定格は12V @ 5Aで、35ポンドの力を供給します。私はMegaMotoドライバシールドを使用してアクチュエータを駆動し、Arduino Nanoをコントローラとして使用しています。

INA219モジュールのデフォルトのキャリブレーションは、32V @ 2Aのようですが、その他の設定は関数呼び出しhereで利用できますが、12V @ 5Aの状況に適合するものは見当たりません。 INA219を較正するための新しい関数を書く場合は、さまざまな値に何を使用するのかを確かめてください。誰でも私が何を使うことができるか知っていますか?

私は、このモジュールのボックスの中から必要なものを正確に読み取ることを望んでいましたが、かなり広い値のスイングといくつかの奇妙な(?)シャント電圧値を得ています(または、私はちょうどそれらを理解していない)。たとえば、アクチュエータを動かすときには、モジュールから15msの間、1msごとに値を読み取ってから、電力使用量を平均化して、それをフィルタリングして一般的な電力使用量を確認します。私は、サンプルコードから方程式を使用しています:ここで

shuntvoltage = ina219.getShuntVoltage_mV(); 
busvoltage = ina219.getBusVoltage_V(); 
current_mA = ina219.getCurrent_mA(); 
loadvoltage = busvoltage + (shuntvoltage/1000); 
power = current_mA * loadvoltage; 

は読書の例です:

shuntvoltage:-31.76 busvoltage:12.16 current_mA:-258.60 loadvoltage:12.13 パワー:-3137.40

shuntvoltage:-59.12 busvoltage:12.16 current_mA:-548.50 loadvoltage:12.10 パワー:-6637.33

shuntvoltage:-52.00 busvoltage:12.18 current_mA:-691.30 loadvoltage:12.12 パワー:-8381.32

shuntvoltage:-32.09 busvoltage:12.12 current_mA:-936.60 loadvoltage :12.09 パワー:-11321.54

shuntvoltage:-27.42 busvoltage:12.11 current_mA:-286.00 loadvoltage:12.08 パワー:-3455.05

shuntvoltage:-86.82 busvoltage:12.11 current_mA:-338.90 loadvoltage:12.03 パワー:-4075.33

shuntvoltage:-67.63 busvoltage:12.16 current_mA。 -620.90 loadvoltage:12.09 パワー:-7508.15

shuntvoltage:-30.81 busvoltage:12.18 current_mA:-874。 60 loadvoltage:12.15 力:-10625。68

shuntvoltage:-30.31 busvoltage:12.11 current_mA:-346.90 loadvoltage:12.08 パワー:-4189.75

shuntvoltage:-71.75 busvoltage:12.16 current_mA:-557.00 loadvoltage:12.09 電源:-6733.16

shuntvoltage:-48.03 busvoltage:12.18 current_mA:-668.70 loadvoltage:12.13 パワー:-8112.65

shuntvoltage:-31.90 busvoltage:12.18 current_mA:-938.20 loadvoltage:12.15 パワー:-11397.35

shuntvoltage:-30.14 busvoltage:12.12 current_mA:-627.20 loadvoltage :12.09 パワー:-7580.25

shuntvoltage:-31.42 busvoltage:12.14 current_mA:-430.20 loadvoltage:12.10 パワー:-5207.39

shuntvoltage:-66.28 busvoltage:12.17 current_mA:-643.70 loadvoltage:12.10 パワー:-7789.88

shuntvoltage:-30.93 busvoltage:12.18 current_mA: - 880.00 loadvoltage:12.15 パワー:-10694.70

これは愚かな質問であってもよいが、なぜシャント電圧あること否定的な価値観?そして現在の値は?たぶん私は極性を逆にする必要があるかもしれません。

ありがとうございました!

[編集]:ここhttp://www.progressiveautomations.com/media/catalog/pdf/Linear_Actuator_with_Potentiometer_PA-14P.pdf

+0

適切なユニットを使用してください。ポンドは質量のためのいくつかの奇妙なmedievel単位です。米国外(はい、そこには何かがあります)には、誰もがニュートンを力の単位として使用しています。その2016 .... – Piglet

+0

少なくとも私は石を使用していない? =)すべての公平さの中で、私はちょうどアクチュエーターの製造業者(ムリカ近くのいくつかの国、私はホワイト・ホワイト・ノースで思っています)を使用しています、そして私のポストを編集して仕様へのリンクを入れました。 –

+0

これは読んでいますか? http://www.ti.com/lit/ds/symlink/ina219.pdf、 – Piglet

答えて

0

をAdafruitコードからの抽出物である:ここで、アクチュエータに仕様をです。パラメータの計算方法を示します。 INA219のデータシートで説明されている情報もあります。 これは、16V 400mA用にICを設定する方法の例です。

void Adafruit_INA219::setCalibration_16V_400mA(void) { 

    // Calibration which uses the highest precision for 
    // current measurement (0.1mA), at the expense of 
    // only supporting 16V at 400mA max. 

    // VBUS_MAX = 16V 
    // VSHUNT_MAX = 0.04   (Assumes Gain 1, 40mV) 
    // RSHUNT = 0.1    (Resistor value in ohms) 

    // 1. Determine max possible current 
    // MaxPossible_I = VSHUNT_MAX/RSHUNT 
    // MaxPossible_I = 0.4A 

    // 2. Determine max expected current 
    // MaxExpected_I = 0.4A 

    // 3. Calculate possible range of LSBs (Min = 15-bit, Max = 12-bit) 
    // MinimumLSB = MaxExpected_I/32767 
    // MinimumLSB = 0.0000122    (12uA per bit) 
    // MaximumLSB = MaxExpected_I/4096 
    // MaximumLSB = 0.0000977    (98uA per bit) 

    // 4. Choose an LSB between the min and max values 
    // (Preferrably a roundish number close to MinLSB) 
    // CurrentLSB = 0.00005 (50uA per bit) 

    // 5. Compute the calibration register 
    // Cal = trunc (0.04096/(Current_LSB * RSHUNT)) 
    // Cal = 8192 (0x2000) 

    ina219_calValue = 8192; 

    // 6. Calculate the power LSB 
    // PowerLSB = 20 * CurrentLSB 
    // PowerLSB = 0.001 (1mW per bit) 

    // 7. Compute the maximum current and shunt voltage values before overflow 
    // 
    // Max_Current = Current_LSB * 32767 
    // Max_Current = 1.63835A before overflow 
    // 
    // If Max_Current > Max_Possible_I then 
    // Max_Current_Before_Overflow = MaxPossible_I 
    // Else 
    // Max_Current_Before_Overflow = Max_Current 
    // End If 
    // 
    // Max_Current_Before_Overflow = MaxPossible_I 
    // Max_Current_Before_Overflow = 0.4 
    // 
    // Max_ShuntVoltage = Max_Current_Before_Overflow * RSHUNT 
    // Max_ShuntVoltage = 0.04V 
    // 
    // If Max_ShuntVoltage >= VSHUNT_MAX 
    // Max_ShuntVoltage_Before_Overflow = VSHUNT_MAX 
    // Else 
    // Max_ShuntVoltage_Before_Overflow = Max_ShuntVoltage 
    // End If 
    // 
    // Max_ShuntVoltage_Before_Overflow = VSHUNT_MAX 
    // Max_ShuntVoltage_Before_Overflow = 0.04V 

    // 8. Compute the Maximum Power 
    // MaximumPower = Max_Current_Before_Overflow * VBUS_MAX 
    // MaximumPower = 0.4 * 16V 
    // MaximumPower = 6.4W 

    // Set multipliers to convert raw current/power values 
    ina219_currentDivider_mA = 20; // Current LSB = 50uA per bit (1000/50 = 20) 
    ina219_powerDivider_mW = 1;  // Power LSB = 1mW per bit 

    // Set Calibration register to 'Cal' calculated above 
    wireWriteRegister(INA219_REG_CALIBRATION, ina219_calValue); 

    // Set Config register to take into account the settings above 
    uint16_t config = INA219_CONFIG_BVOLTAGERANGE_16V | 
        INA219_CONFIG_GAIN_1_40MV | 
        INA219_CONFIG_BADCRES_12BIT | 
        INA219_CONFIG_SADCRES_12BIT_1S_532US | 
        INA219_CONFIG_MODE_SANDBVOLT_CONTINUOUS; 
    wireWriteRegister(INA219_REG_CONFIG, config); 
} 

最大バス電圧から始めましょう。あなたは12Vの電源を使用しているので、16Vを使用します(16Vと32Vの間で選択できます)。 シャント抵抗の値は、Adafruitボードの場合、0.1オームです。 アクチュエータは最大負荷で5Aを引き出します。オームの法則は、最大電流が0.5Vのシャント抵抗の電圧降下を引き起こすので、VSHUNT_MAXは0.5

です。現在の測定のLSB値を計算してください。データシートの式に従って 5A/32767LSB =150μAキャリブレーション・レジスタ

計算(フル解像度を必要としない場合は、もちろん、あなたが何か他のものを選択することができます)LSBあたり: カル= TRUNC(0.04096/0.00015/0。1)= 2730

そんなこと...あなたがポイントを得ることを願っています。

関連する問題