Arduino
電子工作

Arduinoなどのマイコンでサクッと負電圧をつくる(チャージポンプ回路)

はじめに

電子工作をしていると、たまに負電圧(マイナスの電圧)が欲しくなるときがあります。
しかし正負電源というものをきちんと用意するには、ACアダプタを2つ用意したり、トランスを用いたりとなかなか大変。
ちょっとLCDを使いたいだけ、という場合にはコストが高すぎます。

そこで、チャージポンプ回路というものを使って、最小限の外付け部品で負電圧を生成し、
ダイオードやコンデンサの品種・容量を変えたときの出力の変化について実験を行いました。

原理

割愛します。以下のリンクが詳しいです。
http://www.epii.jp/articles/note/electronics/charge_pump

回路

基本的なチャージポンプによる電圧反転回路です。

image.png

LTSpiceでシミュレーションしてみます。
入力は5V/10kHzの矩形波です。

image.png

ちゃんと負電圧が出ています。平均で-4.3Vほど。
-5Vが出てこないのは、ダイオードによる電圧降下のためです。

準備

部品

今回用意したのは以下の部品です。全て秋月で手に入るものです。

  • ダイオード
    • 1N4148 - 汎用の小信号ダイオード。定番。
    • BAT43 - 小信号用ショットキーダイオード。今回のような用途には一番ピッタリかも。
    • 11EQS03L - 30V/1Aと少し大きめの整流用?ショットキーダイオード。BAT43よりVfが下がることを期待。
  • コンデンサ
    • 積セラ 1uF/50V Y5V特性
    • 汎用電解コン 10uF/16V
  • 負荷抵抗
    • 金属皮膜 1kΩ

スケッチ

Arduinoのスケッチは以下の通りです。超簡単。
任意の周波数の矩形波を出力する tone() という関数を使っています。
以下の例では3番ピンから10kHzの矩形波を出力しています。

#define PIN 3
#define FREQ_HZ 10000

void setup()
{
    pinMode(PIN, OUTPUT);
    tone(PIN, FREQ_HZ);
}

void loop() {}

実験

ばしばし結果を載せていきます。
特に断りがない場合、負荷抵抗はすべて1kΩで、グラフの縦軸は見やすさのため反転させています。
測定は安物テスターで行いました。

まずはダイオード別の比較から。
ダイオード以外の条件は、C1とC2がそれぞれ積セラ1uF、周波数は10kHzです。

image.png

期待通り、11EQS03Lが最も良い結果を残しました。
1N4148はちょっと厳しい結果ですね。小さくともショットキーダイオードを採用するのが良いと思われます。

次はコンデンサを変えたときの比較です。
C1は1uFの積セラのまま、C2を10uFの電解に変えたときの動作を見てみます。
ダイオードはBAT43で、周波数は10kHzです。

image.png

あまり変わりませんね・・・
本当は、電解よりも積セラの方が周波数特性が良いため、積セラが良い結果を残すことを期待していたのですが、
そもそも容量が1uFと10uFで違うため、無意味な比較だったかもしれません。

次は周波数を変えたときの比較です。
ダイオードはBAT43、コンデンサはそれぞれ積セラ1uFです。

image.png

1kHz, 4.7kHz, 10kHz, 47kHz, 65.535kHzと5種類の周波数を試しましたが、47kHzで限界の様子です。
ちなみに65.535kHzという周波数は、 tone() 関数での最大値です。

最後は負荷抵抗を変化させたときの比較です。
333, 500, 1000, 2000, 3000Ωと中途半端な値ですが、手元に1kΩの抵抗しか無かったためです。ご了承ください。
ダイオードはBAT43、C1は積セラ1uF、C2は電解10uF、周波数は62.5kHzです。

image.png

3kΩ負荷のときに-4.33Vまで出ました。およそ1.4mAの出力電流です。

まとめ

ちょっと負電圧が欲しいときはチャージポンプが便利!
音声信号を通すアナログスイッチ・マルチプレクサなんかにも使えます。

おまけ

使用ピンが1つ増え、部品は3つ増えますが、以下のような回路を組むと出力を増強出来ます。
位相反転した2系統の矩形波で、絶え間なくC2を充電するイメージです。
シミュレーション結果を見てみると、冒頭のそれと比較してリップルが小さく、電圧が高く(低く)なっています。

image.png

image.png