オペアンプ反転増幅回路、非反転増幅回路の自動計算
この記事では、反転増幅回路と非反転増幅回路の下記自動計算を行う。
入力:
・抵抗R1(入力抵抗)
・抵抗R2(帰還抵抗)
・入力電圧[V]
出力:
・増幅度[倍]
・電圧利得(Gv)[dB]
・出力電圧[V]
また、それぞれの計算方法について記載する。
1. 反転増幅回路と非反転回路の自動計算
・反転増幅回路
・非反転増幅回路
抵抗値R1,R2と、入力電圧を入力してください。
R1入力
R2入力
Vin入力
計算結果
反転増幅回路増幅度 [倍]= [dB]
出力電圧[V]
非反転増幅回路増幅度 [倍]= [dB]
出力電圧[V]
オープンループゲインは∞としている。
2. 反転増幅回路と非反転回路の算出方法
反転増幅回路の計算
・増幅度 = R2の抵抗値[Ω] / R1の抵抗値[Ω]
・電圧利得(Gv) = 20×log(増幅度)
・出力電圧 = - Vin × 増幅度
非反転増幅回路の計算
・増幅度 = 1 + R2の抵抗値[Ω] / R1の抵抗値[Ω]
・電圧利得(Gv) = 20×log(増幅度)
・出力電圧 = Vin × 増幅度
3. 算出プログラム
<!DOCTYPE html> <!-- 概要:反転増幅回路の計算ホームページ ・反転増幅回路の画像を表示 ・抵抗及び、入力電圧記入欄を用意 ・記入した抵抗と、入力電圧から、 増幅度、出力電圧を出力 --> <html lang="ja" dir="ltr"> <head> <meta charset="utf-8"> <title>増幅度計算ページ</title> </head> <body> <p>反転増幅回路、非反転増幅回路の計算ページです</p> <p>抵抗値R1,R2と、入力電圧を入力してください。</p> <!--<img src="画像の名前" width="横幅の値" height="縦幅の名前" alt="画像の読み上げの名前" title="画像の表示名" --> <!--画像表示参考リンク:https://techacademy.jp/magazine/5827 --> <!--反転増幅回路と、非反転増幅回路の画像の表示 --> <img src="jpg/Invertingamplifier.PNG" width="400" height="200"alt="反転増幅回路" title="反転増幅回路"> <img src="jpg/Noninvertingamplifier.PNG" width ="400" height ="200" alt = "非反転増幅回路" title="非反転増幅回路"> <!--増幅回路の入力フォーム --> <p> R1入力 <input type="text" size="15" id="R1" value="0"></p> <p> R2入力 <input type="text" size="15" id="R2" value="0"></p> <p> Vin入力<input type="text" size="15" id="Vin" value="0"></p> <p> 反転増幅回路増幅度 <input type="text" size="15"id="Invertingamplifier_times" value=0> [倍]= <input type="text" id="Invertingamplifier_log" size="15" value=0>[dB]</p> <p> 出力電圧<input type="text" id="Invertingamplifire_Vout" size="15" value=0>[V]</p> <p> 非反転増幅回路増幅度 <input type="text" id="Noninvertingamplifier_times" size="15" value=0>[倍]= <input type="text" id="Noninvertingamplifier_log" size="15" value=0>[dB]</p> <p> 出力電圧<input type="text" id="Noninvertingamplifier_Vout" size="15" value=0>[V]</p> <br> <script> const GAIN = 20; //R1とR2のidを取得 let lr1id = document.getElementById("R1"); let lr2id = document.getElementById("R2"); let lvinid = document.getElementById("Vin"); let livertingamplifier_timesid = document.getElementById("Invertingamplifier_times"); let linvertingamplifier_logid = document.getElementById("Invertingamplifier_log"); let linvertingamplifire_Voutid = document.getElementById("Invertingamplifire_Vout"); let lnoninvertingamplifier_timesid = document.getElementById("Noninvertingamplifier_times"); let lnoninvertingamplifier_logid = document.getElementById("Noninvertingamplifier_log"); let lnoninvertingamplifier_Voutid = document.getElementById("Noninvertingamplifier_Vout"); //R1とR2の数値を取得 let lr1 = parseInt(lr1id.value); let lr2 = parseInt(lr2id.value); let lvin = parseInt(lvinid.value); lr1id.addEventListener("change",Calc); lr2id.addEventListener("change",Calc); lvinid.addEventListener("change",Calc); function Calc(){ console.log("関数実行"); //R1,R2,Vinの値を再取得 lr1 = parseFloat(lr1id.value); lr2 = parseFloat(lr2id.value); lvin = parseFloat(lvinid.value); //反転増幅回路計算 //増幅度 = R1/R2 livertingamplifier_timesid.value = (lr2/lr1).toPrecision(3); //GAIN = 20*log(増幅度) linvertingamplifier_logid.value = parseFloat(GAIN*Math.LOG10E * Math.log( parseFloat(livertingamplifier_timesid.value))).toPrecision(3); //出力電圧 = - Vin * 増幅度 linvertingamplifire_Voutid.value = -lvin * parseFloat(livertingamplifier_timesid.value).toPrecision(3); //非反転増幅回路計算 //増幅度 = 1+R1/R2 lnoninvertingamplifier_timesid.value = (1+lr2/lr1).toPrecision(3); //GAIN = 20*log(増幅度) lnoninvertingamplifier_logid.value =parseFloat(GAIN*Math.LOG10E * Math.log(parseInt(lnoninvertingamplifier_timesid.value))).toPrecision(3); //出力電圧 = Vin * 増幅度 lnoninvertingamplifier_Voutid.value = lvin * parseFloat(lnoninvertingamplifier_timesid.value).toPrecision(3); } </script> </body> </html>
HTMLの基本の参考:
HTMLのidとは?使い方やclassとの違いについても解説 | 侍エンジニアブログ
【HTML】id属性とは? 使い方と特徴を解説 | ZeroPlus Media
・Document: querySelector() メソッド - Web API | MDN
関連記事
Project OKI過去のブログ一覧とか - Project_OKI’s diary
・HTML,CSS,Javascript1(環境設定:VSCodeの導入) - Project_OKI’s diary
・HTML,CSS,Javascript2(HTMLでホームページのタイトル設定と段落作成) - Project_OKI’s diary
・HTML,CSS,Javascript3(タグについて) - Project_OKI’s diary
・HTML,CSS,Javascript4(属性による機能追加について) - Project_OKI’s diary
・HTML,CSS,Javascript5(装飾:CSSの追加) - Project_OKI’s diary