マイナス電圧をつくる
マイコンのPWMを利用してマイナス電圧をつくる。実回路とシミューレーターとの比較も行う。
情報(サイト)
- Arduinoなどのマイコンでサクッと負電圧をつくる(チャージポンプ回路) ※全面的に参考にしたサイト
- マイナス電源の簡単な作り方は?自作回路を作って検証してみました。
- チャージポンプの仕組み、動作原理を回路図とシミュレーション波形を使って解説
- ダイオード チャージポンプ回路(倍電圧・負電圧)
回路
上記の全面的に参考したサイトの回路図は次のようなものである。
ここでは、10kHzのPWM、10μFのコンデンサ(以降、左をC1、右をC2とする)、1kΩの抵抗を基本とし、それぞれを変化させてみた。なお、ダイオードは1N4148を利用。また、実際の配線状況は下記のとおり。
ソースコード
上記の全面的に参考したサイトのコードと同じ。
#define PIN 3
#define FREQ_HZ 10000
void setup()
{
pinMode(PIN, OUTPUT);
tone(PIN, FREQ_HZ);
}
void loop()
{
}
tone()を使うところがミソらしい。
測定状況
その3で利用したオシロスコープやその7で利用したpokitMeterを利用。上述した基本の組み合わせの測定状況は下記のとおり。
マイナス電圧が得られている。
検証
ArduinoのGPIO出力は実測値で4.9Vくらいであった。なので、シミュレーションでも4.9Vを最大値とした。
10kHz, C1:10μF, C2:10μF, 1kΩ
右端の抵抗における電圧の実測値は下記のとおり。なお、横軸は400ms単位で表示されている。
-3.14V〜-3.08Vくらいだろうか(差は0.06V)。次にシミュレーションの結果は下記のとおり。
-3.485V〜-3.47V(差は0.015V)。実測値とシミュレーションとで絶対値で10%程度の差があるが、用いた部品やマイコンの精度を考えるとまずまずの結果であろう。
10kHz, C1:1μF, C2:1μF, 1kΩ
実測値は下記のとおり。
-3.15V〜-2.96Vくらい(差は0.19)。コンデンサ容量が小さいと電圧のブレ幅が大きい。シミュレーションの結果は下記のとおり。
-3.353V〜-3.331V。シミュレーション結果(差は0.022)の方が電圧のブレ幅がかなり小さい。
10kHz, C1:470μF, C2:470μF, 1kΩ
実測値は下記のとおり。
コンデンサ容量が大きいと電圧のブレ幅は小さい。シミュレーションの結果は下記のとおり。
こちらも同様で、ほぼ変化なし(最小値も最大値も、-3.482V)。
C1, C2とが異なる容量のケース
実測値のみ表示。
10kHz, C1:10μF, C2:1μF, 1kΩ
10kHz, C1:10μF, C2:470μF, 1kΩ
10kHz, C1:1μF, C2:10μF, 1kΩ
10kHz, C1:470μF, C2:10μF, 1kΩ
まとめると
- C1容量大 --> マイナス電圧大
- C2容量大 --> 電圧のブレ幅小
素人なので説明できず、、、論理的な説明は参考サイトなどにお任せしたい。
周波数を変化させる
ここでも実測値のみ表示。
1kHz, C1:10μF, C2:10μF, 1kΩ
50kHz, C1:10μF, C2:10μF, 1kΩ
まとめると
低周波数では、時間的に電圧が安定しない。50kHzの結果(マイナス電圧値が低め)の理由はよくわからず。
抵抗値を変化させる
10kHz, C1:10μF, C2:10μF, 220Ω
10kHz, C1:10μF, C2:10μF, 10kΩ
まとめると
抵抗値大で、マイナス電圧値大かつ電圧のブレ幅小。こちらも、論理的な説明は参考サイトなどにお任せしたい。
補足
PWMではなく、正弦波を用いるとどうなるかもトライ。正弦波を発生させるソースコードはその3参照。種々の理由で、周波数や電圧は、PWM利用時と異なるものを利用した(なので、単純比較はできない)。
シミュレーションの結果は下記のとおり。
-1.773Vが得られている。ある程度の繰り返し(周波数が)があれば、マイナス電圧が得られると推測。そこで、実回路でも試すことに、、、。
単位が見えていないが、-56.2mV。シミュレーションとの差の理由は、シロートにはわからず。
終わりに
とりあえず、マイナス電圧をつくることができたので、成功としたい。