見出し画像

Python で抵抗値を計算して回路図を出力するプログラム作成(Schem Draw)

本記事では、抵抗の分圧回路を例に、Pythonで抵抗値を計算し、導出した抵抗定数を回路図に記載して出力するプログラムを書いてみたので、その内容を記載します。

以前に描いた記事で、Python で回路図を描けるライブラリ Schem Draw を使って回路図を作成する方法を解説しました。

しかし、正直に言うと、単純に回路図を描くだけなら回路CADを使った方が直感的で扱いやすいと思います。

では、Schem Draw を使うメリットは何か?

Schem Draw を使うメリットは、Python のプログラミングで回路図を描ける点です。Pythonの得意とする数値演算と組み合わせると Schem Draw の特長を生かせると思います。

そこで、簡単な例として、抵抗の分圧回路で、定数計算と回路図出力を組み合わせたプログラムを作成してみることにしました。

回路図作成結果

今回、Schem Draw で作成した回路図は以下になります。入力するパラメータを Vin, R1, Vout とし、分圧抵抗 R2 の定数を計算して、導出した定数を回路図に記載して出力するプログラムです。また、抵抗の許容電力は適当に固定値で 5W としていますが、分圧抵抗の計算を応用して、抵抗の許容電力もプログラムで計算させることができると思います。

画像1

ソースコード

Python のソースコードは下記になります。上記の分圧抵抗演算と、回路図作成くらいであれば、30行弱のコードで書けました。

# =================================================
#           ライブラリインポート
# =================================================

# 回路図作成ライブラリ
import SchemDraw
import SchemDraw.elements as elm


# =================================================
#           メイン
# =================================================

#---------- パラメータ入力 ----------#
Vin = 10        # [V]
Vout = 2.5      # [V]
R1 = 120        # [Ω]

#---------- 抵抗値計算 ----------#
R2 = (Vout / (Vin - Vout)) * R1

#---------- ラベル作成 ----------#
label_R1 = 'R1\n' + str(R1) + '$\Omega$ / ' + str(5) + 'W'
label_R2 = 'R2\n' + str(R2) + '$\Omega$ / ' + str(5) + 'W'
label_E1 = 'Vin\n' + str(Vin) + 'V'
label_E2 = 'Vout\n'+str(Vout)+'V'

#---------- 回路図作成 ----------#
d = SchemDraw.Drawing(unit=1.5, inches_per_unit=2.5)
d.add(elm.Line(d='up'))
d.add(elm.Line(d='right'))
d.add(elm.Resistor(d='down', label=label_R1))
d.add(elm.Dot())
d.push()
d.add(elm.Line(d='right'))
d.add(elm.Dot(open=True))

d.pop()
d.add(elm.Resistor(d='down', label=label_R2))
d.add(elm.Dot())
d.push()
d.add(elm.Line(d='left'))
d.add(elm.BatteryCell(d='up', reverse=True, label=label_E1))

d.pop()
d.add(elm.Line(d='right'))
d.add(elm.Dot(open=True))
d.add(elm.Gap('up', label=['-', label_E2, '+']))

#---------- 回路図出力 ----------#
d.draw()

以上

何かお役に立てたら、サポートしていただけると嬉しいです!モチベーションを高めて、アウトプットしていきます!