オペアンプと分圧器アプリケーションの抵抗ペアの選択方法


APDahlen Applications Engineer

抵抗はしばしばペアで選ばれます。分圧器は代表的な例です。もう1つの例は、オペアンプで使われる入力と帰還のペアです。これらの抵抗ペアの選択は、単純な割り算で比率がわかるので、本質的に難しいことは何もありません。しかし、テストすべき組み合わせが非常に多いため、利用可能な最良の比率を見つけるのは容易ではありません。

例として、ゲインを5にしたい反転オペアンプを考えてみましょう。反転オペアンプのゲインは次のように決まるので、抵抗の比率は5:1であることがわかります。

Gain = -\dfrac{R_F}{R_{In}}

直感的には、5kΩと1 kΩの単純な抵抗の組み合わせを選ぶと思いますが、実際には、5kΩは標準値ではないという問題があります。DigiKeyは、50万個のスルーホール抵抗器を取り揃えていますが、1/4W、5%、5kΩのスルーホール抵抗器は販売していません!

それは標準的な部品ではありません。こちらをご覧ください。最も仕様が近く入手できる抵抗器は1/2Wであることがわかります。

それを使わないで、期待する5:1という比率を実現するために、標準的な値の部品から選択しなければなりません。7.5kΩと1.5kΩの抵抗を選択することで、許容差5%のシリーズで期待する比率を見つけることができます。これは、5%の許容範囲に含まれる唯一の実現可能なペアです。

これらの抵抗ペアの選択は簡単ではありません。300通り(1:1 の比率を含めて)の組み合わせを検討する必要があるからです。このプロセスは、1%許容差の抵抗器に移行するとさらに扱いにくくなり、0.5%許容差ではさらに悪化します。

この記事では、適切な抵抗ペアを選択するのに役立つ実践的な方法を示しています。 まず5%の許容値に対するマトリクス法を紹介します。そして、標準的な1%と0.5%の部品から抵抗ペアを選択するのに役立つ簡単なコンピュータプログラムを紹介します。

標準的な値

抵抗器やコンデンサやインダクタなどのその他のデバイスは、対数表記のナンバリングシステムを使って分類されます。そのビン(区分け)は許容差を考慮した大きさになっています。 例えば、5%の部品はE-24シリーズのビンによって定義されます。この分類法では、10倍ごとに24のビンがあります。

E-24シリーズ: 1.0、1.1、1.2、1.3、1.5、1.6、1.8、2.0、2.2、2.4、2.7、3.0、3.3、3.6、3.9、4.3、4.7、5.1、5.6、6.2、6.8、7.5、8.2、9.1

よりよく理解するために、3.0Ωの抵抗器とその直近の抵抗器を考えてみましょう。

  • 2.7Ωの5%抵抗の場合:2.565 < R < 2.835

  • 3.0Ωの5%抵抗の場合:2.850 < R < 3.150

  • 3.3Ωの5%抵抗の場合:3.135 < R < 3.465

ご覧のとおり、各ビンはE-24の数値を中心として ±5%の範囲の広がりをもって並んでいます。各ビン間の重なりが少なく、また隙間がほとんどないような数値が選ばれています。許容差がより厳しい部品には、1%、0.5%、およびそれ以上のものがあります。1%許容差の抵抗はE-96シリーズとして、0.5%許容差の抵抗はE-192シリーズとして入手可能です。

E-96シリーズ: 1.00、1.02、1.05、1.07、1.10、1.13、1.15、1.18、1.21、1.24、1.27、1.30、1.33、1.37、1.40、1.43、1.47、1.50、1.54、1.58、1.62、1.65、1.69、1.74、1.78、1.82、1.87、1.91、1.96、2.00、2.05、2.10、2.15、2.21、2.26、2.32、2.37、2.43、2.49、2.55、2.61、2.67、2.74、2.80、2.87、2.94、3.01、3.09、3.16、3.24、3.32、3.40、3.48、3.57、3.65、3.74、3.83、3.92、4.02、4.12、4.22、4.32、4.42、4.53、4.64、4.75、4.87、4.99、5.11、5.23、5.36、5.49、5.62、5.76、5.90、6.04、6.19、6.34、6.49、6.65、6.81、6.98、7.15、7.32、7.50、7.68、7.87、8.06、8.25、8.45、8.66、8.87、9.09、9.31、9.53、9.76

E-192シリーズ: 1.00、1.01、1.02、1.04、1.05、1.06、1.07、1.09、1.10、1.11、1.13、1.14、1.15、1.17、1.18、1.20、1.21、1.23、1.24、1.26、1.27、1.29、1.30、1.32、1.33、1.35、1.37、1.38、1.40、1.42、1.43、1.45、1.47、1.49、1.50、1.52、1.54、1.56、1.58、1.60、1.62、1.64、1.65、1.67、1.69、1.72、1.74、1.76、1.78、1.80、1.82、1.84、1.87、1.89、1.91、1.93、1.96、1.98、2.00、2.03、2.05、2.08、2.10、2.13、2.15、2.18、2.21、2.23、2.26、2.29、2.32、2.34、2.37、2.40、2.43、2.46、2.49、2.52、2.55、2.58、2.61、2.64、2.67、2.71、2.74、2.77、2.80、2.84、2.87、2.91、2.94、2.98、3.01、3.05、3.09、3.12、3.16、3.20、3.24、3.28、3.32、3.36、3.40、3.44、3.48、3.52、3.57、3.61、3.65、3.70、3.74、3.79、3.83、3.88、3.92、3.97、4.02、4.07、4.12、4.17、4.22、4.27、4.32、4.37、4.42、4.48、4.53、4.59、4.64、4.70、4.75、4.81、4.87、4.93、4.99、5.05、5.11、5.17、5.23、5.30、5.36、5.42、5.49、5.56、5.62、5.69、5.76、5.83、5.90、5.97、6.04、6.12、6.19、6.26、6.34、6.42、6.49、6.57、6.65、6.73、6.81、6.90、6.98、7.06、7.15、7.23、7.32、7.41、7.50、7.59、7.68、7.77、7.87、7.96、8.06、8.16、8.25、8.35、8.45、8.56、8.66、8.76、8.87、8.98、9.09、9.20、9.31、9.42、9.53、9.65、9.76、9.88

ゲイン5の反転オペアンプに戻りますが、標準の推奨品番には5kΩの抵抗器がないため、依然として実用的でない状況にあります。

グリッド検索

以下のマトリクスに示すように、図式的な方法を用いて抵抗ペアを選択することができます。ここでは、E-24シリーズの値が各行、各列に表示されています。各セルは抵抗間の比率を示します。対角線上に1:1の比率があります。1:1より大きい比率はチャートの上部にあります。1:1未満の比率は、チャートの下部にあり灰色で表示されています。このグラフの下部は有効数字が2桁であるのに対し上部は3桁なので、下部は使用を避けるべきです。例として、8.2対1.1のセルを考えてみましょう。対応する比率は7.45です。しかし、1.1対8.2セルの比率は0.13です。この数は互いに逆数ですが、2桁の有効数字と3桁の有効数字を比べてもすぐにはわかりません。

この図式的な方法は、少し頭の体操が必要であることに注意してください。昔の計算尺を使うように、チャートとは無関係に十の位を把握しなければなりません。また、比率を自由に反転させ、数字が1より大きくなるようにしなければなりません。例として、3:50の比率を求めるとします。これにはいくつかのステップが必要です。

  1. 10の位を覚えておき、比率を3:50から3:5に変更します。
  2. 比を5:3に反転します。
  3. 1.67に最も近い比率を探します。
  4. E-24シリーズの値2と1.2を最も近い値として選びます。
  5. 数値の1.2と2を交換します。
  6. 10のべき乗を修正して、1.2:20にします。

技術的なヒント: 有効数字に注意してください。E-24シリーズの抵抗器は、有効数字が2桁です。チャート内の3桁の有効数字については、割り引いて考えてください。特に各ペアの最良の場合と最悪の場合の許容差を考慮すると、結果として得られる抵抗ペアの有効数字は2桁に制限されます。

プログラム検索

図式的な方法は、手計算するよりも優れています。しかし、可能性の海の中で最良の数字を見逃しやすいため、依然としてエラーが発生しやすくなっています。E-96とE-192の値についても、同様の表を作成できることは間違いありません。しかし、その大きさと人間の能力の限界から、実用的ではありません。より良い解決策は、プログラムを書くことです。

このノートの最後には、OnlineGDBのようなオンラインコンパイラで使用するために設計された、C言語で書かれた初歩的なプログラムを掲載しています。

プログラムを操作するには、浮動小数点数で希望の比率を入力し、実行を押します。この例では、引き続き3:50の比率を探します。チャートの時と同じ考え方で、数字を反転させ、小数点位置に注意し5.0:3.0の比率を検索します。プログラムはいくつかの解決策を提案します。

  • E-24:1.2:20
  • E-96 : なし
  • E-192:1.2:20あるいは1.26:21.0

まとめ

この情報が役に立ち、今後の時間の節約になることを信じています。抵抗器の選択がこれほど複雑だとは誰が知っていたでしょう。実際には、選ばれたペアに対する許容度の影響について話すべきでしょう。しかし、それはまた別の機会にします。

ご意見、ご感想は下記にお願いします。また、お時間があれば、プログラムに改善点を添付してください。

ご健闘をお祈りします。

APDahlen


#include <stdio.h>
#include <math.h>

int main(){
    
// CAUTION: Use floats such as 5.0/3.0 or else the program defaults to interger math.

    double desired_ratio = 5.0/3.0;  

    double E_24_R_values[] = {1.0、1.1、1.2、1.3、1.5、1.6、1.8、2.0、
                              2.2、2.4、2.7、3.0、3.3、3.6、3.9、4.3、
                              4.7、5.1、5.6、6.2、6.8、7.5、8.2、9.1};

    double E_96_R_values[] = {1.00、1.02、1.05、1.07、1.10、1.13、1.15、1.18、
                              1.21、1.24、1.27、1.30、1.33、1.37、1.40、1.43、
                              1.47、1.50、1.54、1.58、1.62、1.65、1.69、1.74、
                              1.78、1.82、1.87、1.91、1.96、2.00、2.05、2.10、
                              2.15、2.21、2.26、2.32、2.37、2.43、2.49、2.55、
                              2.61、2.67、2.74、2.80、2.87、2.94、3.01、3.09、
                              3.16、3.24、3.32、3.40、3.48、3.57、3.65、3.74、
                              3.83、3.92、4.02、4.12、4.22、4.32、4.42、4.53、
                              4.64、4.75、4.87、4.99、5.11、5.23、5.36、5.49、
                              5.62、5.76、5.90、6.04、6.19、6.34、6.49、6.65、
                              6.81、6.98、7.15、7.32、7.50、7.68、7.87、8.06、
                              8.25、8.45、8.66、8.87、9.09、9.31、9.53、9.76};
                              
    double E_192_R_values[] = {1.00、1.01、1.02、1.04、1.05、1.06、1.07、1.09,
                               1.10、1.11、1.13、1.14、1.15、1.17、1.18、1.20、
                               1.21、1.23、1.24、1.26、1.27、1.29、1.30、1.32、
                               1.33、1.35、1.37、1.38、1.40、1.42、1.43、1.45、
                               1.47、1.49、1.50、1.52、1.54、1.56、1.58、1.60、
                               1.62、1.64、1.65、1.67、1.69、1.72、1.74、1.76、
                               1.78、1.80、1.82、1.84、1.87、1.89、1.91、1.93、
                               1.96、1.98、2.00、2.03、2.05、2.08、2.10、2.13、
                               2.15、2.18、2.21、2.23、2.26、2.29、2.32、2.34、
                               2.37、2.40、2.43、2.46、2.49、2.52、2.55、2.58、
                               2.61、2.64、2.67、2.71、2.74、2.77、2.80、2.84、
                               2.87、2.91、2.94、2.98、3.01、3.05、3.09、3.12、
                               3.16、3.20、3.24、3.28、3.32、3.36、3.40、3.44、
                               3.48、3.52、3.57、3.61、3.65、3.70、3.74、3.79、
                               3.83、3.88、3.92、3.97、4.02、4.07、4.12、4.17、
                               4.22、4.27、4.32、4.37、4.42、4.48、4.53、4.59、
                               4.64、4.70、4.75、4.81、4.87、4.93、4.99、5.05、
                               5.11、5.17、5.23、5.30、5.36、5.42、5.49、5.56、
                               5.62、5.69、5.76、5.83、5.90、5.97、6.04、6.12、
                               6.19、6.26、6.34、6.42、6.49、6.57、6.65、6.73、
                               6.81、6.90、6.98、7.06、7.15、7.23、7.32、7.41、
                               7.50、7.59、7.68、7.77、7.87、7.96、8.06、8.16、
                               8.25、8.35、8.45、8.56、8.66、8.76、8.87、8.98、
                               9.09、9.20、9.31、9.42、9.53、9.65、9.76、9.88};                          

    int i、j;
    double ratio = 1;
    double best_delta = 1;
    double delta;
   
   printf("Search for the resistor pair closest to %f\n\n"、desired_ratio); 

   best_delta = 1;
   printf("For the E-24 series:\n"); 
    
    for (i = 0; i < 24; i++){
        
        for (j = 0; j < 24; j++){
            
            ratio = E_24_R_values[i] / E_24_R_values[j];  
            
            delta = fabs(desired_ratio - ratio);
            
            if (delta <= best_delta){
                best_delta = delta; 
                printf("\tbest_delta = %f for R1 = %f、and R2 = %f\n"、ratio、E_24_R_values[i] 、E_24_R_values[j] );
            }
        }
    }



   best_delta = 1;
   printf("\nFor the E-96 series:\n"); 
    
    for (i = 0; i < 96; i++){
        
        for (j = 0; j < 96; j++){
            
            ratio = E_96_R_values[i] / E_96_R_values[j];  
            
            delta = fabs(desired_ratio - ratio);
            
            if (delta <= best_delta){
                best_delta = delta; 
                printf("\tbest_delta = %f for R1 = %f、and R2 = %f\n"、ratio、E_96_R_values[i] 、E_96_R_values[j] );
            }
        }
    }

best_delta = 1;
 printf("\nFor the E-196 series:\n"); 

    for (i = 0; i < 192; i++){
        
        for (j = 0; j < 192; j++){
            
            ratio = E_192_R_values[i] / E_192_R_values[j];  
            
            delta = fabs(desired_ratio - ratio);
            
            if (delta <= best_delta){
                best_delta = delta; 
                printf("\tbest_delta = %f for R1 = %f、and R2 = %f\n"、ratio、E_192_R_values[i] 、E_192_R_values[j] );
            }
        }
    }

    return 0;
} // end main




heke Trusted Contributor

興味深い記事です!

これに関連して、ちょっとした妙技が頭に浮かびました。抵抗ベースの分圧器を作る必要がある場合、例えば電圧を10分の1に分圧したい場合、1:9の抵抗比が必要ですが、手元にはE12の抵抗しかありません。どうすればいいでしょう。
解決策は、電圧比に応じて抵抗器を選び、「上側」の抵抗器に並列に、前に加えた抵抗器からそれぞれ10倍した数の抵抗器を順次加えるか、「下側」の抵抗器に直列に、前の抵抗器からそれぞれ10で割った数の抵抗器を順次加えることです。

例:10:1の電圧分割の場合、「下側」抵抗を1kΩ、「上側」抵抗を10kΩとします。それから

  1. 10kΩの抵抗に100kΩの抵抗、1MΩの抵抗、10MΩの抵抗…を並列に加えていくと、「上側」抵抗が実質的に9kΩになります → 9:1の比率になります。
    あるいは
  2. 1kΩの 「下側」抵抗に100Ω、10Ω、1Ω…と直列に加えていくと、10:1.111…→9:1の比率になります。

おつかれさま、heke




オリジナル・ソース(English)