LoginSignup
0
0

More than 1 year has passed since last update.

エレキ素人が何か考える(その6:ツェナーダイオード;失敗?)

Posted at

ツェナーダイオード

ツェナーダイオードとは一定の電圧を保つ(得る)ために使われるもの。順方向(アノードからカソード)では通常のダイオードと同じく電流が流れるが、逆方向(カソードからアノード)ではある電圧以上になると電流が流れるようになる。Wikiなど多数のサイトで説明が見つかるので、詳細はそちらを参考されたい。

素人が考えたこと

用いるツェナーダイオードは、秋月電子で購入した「定電圧ダイオード(ツェナーダイオード) 2.0V500mW GDZJ2.0A」
ここではマイコン制御と組み合わせたかったので、マイコンにより、入力電圧(ツェナーダイオードにかかる電圧)を変化させ、2V以上の電圧がかかれば電流が流れる(ここではLEDが点灯する)ことを意図した。回路的には次のようなもの(図については後述するサイトの利用)。
image.png
左からツェナーダイオード、LED、330Ω抵抗となっており、入力電圧(上記図では5V)を変化させることとした。ツェナーダイオードは2V用である(下記図の「Breakdown Voltage」)。
Zenerdiode2V.png

回路シミュレータ

実物のツェナーダイオードを試す前に、最近、ブラウザ上で回路をシミュレートできるサイトを見つけたので、こちらで検証する。

1V

1V.png

2V

2V.png

3.3V

3.3V.png

5V

5V.png

8V

8V.png

20V

20V.png

シミュレーターでの検証まとめ

おおよそ期待どおりの結果と思われる。上図右下のVdがツェナーダイオードにかかる電圧である。3.3V以下では、LEDは点灯(赤丸が点灯を意味)していない。LEDでの電圧降下はおよそ2V程度らしいので、3.3Vをかけた時、すでにツェナーダイオードにかかる電圧が2Vくらいになっているが、LEDを点灯させるに十分な電圧になっていないのであろう。また、5V、8V、20Vと増やしても、ツェナーダイオードにかかる電圧はほとんど増えずに2V程度となっており、期待どおりであろう。

リアルなツェナーダイオードを利用

下記写真のように、Arduinoを用い、その5で用いたデジタルポテンショメータMCP4131を使って電圧をコントロールすることとした。
image.png
デジタルポテンショメータの配線については、その5を参照されたい。
MCP4131.png
P0AにVdd(Arduinoの場合、5Vや3.3V)、P0BにGNDを接続し、P0Wがツェナーダイオードへ接続されている。

ソースコード

#include <SPI.h>

#define W_ADDR 0x00
#define R_ADDR 0x0c
#define CS 10

void setup() {
  pinMode(CS, OUTPUT);
  SPI.begin();
  Serial.begin(9600);
  digitalPotWrite(127);  // 0: Vwb=0V;Vaw=Max   127: Vwb=Max;Vaw=0V
  delay(10);
  int r_val = digitalPotRead();
  Serial.print("Read  "); Serial.println(r_val);
}

void loop() {
  while (Serial.available()) {  // Waiting for writing data (0-127)
    String data = Serial.readStringUntil('\n');
    int w_val = data.toInt();
    Serial.print("Write "); Serial.println(w_val);
    digitalPotWrite(w_val);
    delay(10);
    int r_val = digitalPotRead();
    Serial.print("Read  "); Serial.println(r_val);
  }
  delay(10); 
}

int digitalPotWrite(int value) {
  digitalWrite(CS, LOW);
  SPI.transfer(W_ADDR);
  SPI.transfer(value);
  digitalWrite(CS, HIGH);
}

int digitalPotRead() {
  int val;
  digitalWrite(CS, LOW);
  SPI.transfer(R_ADDR);
  val = SPI.transfer(255); // Must be 255, instead of 127
  digitalWrite(CS, HIGH);
  return val;
}

シリアルコンソールから入力された数値(0-127)により入力電圧をコントロールする。ここでは入力データのチェックは未実施である。ソースコードの詳細についてはその5を参照されたい。

検証

シミュレーター結果からArduino電圧は5V固定とした。

入力数値 0 63 127
P0W-P0B電圧 ほとんど0 2.396 4.8
ツェナーダイオード電圧 ほとんど0 0.78 1.41
LED点灯

最大電圧をかけても、ツェナーダイオード電圧は1.41Vしかならず、LEDは点灯。用いたツェナーダイオードのデータシートはこちら「GDZJシリーズ PDFデータシート」であるが、ツェナーダイオード2.0Vの特性が見つからずであった。
特性.png

用いたデジタルポテンショメータMCP4131には最大5.5Vしか電圧をかけられない。そこで、Arduinoの3.3Vおよび5V、9V電池やパソコンに用いられるAC-DCアダプタ(19V程度)を直接接続して電圧を測定。

入力電圧 3.3V 5V 9V 19V
ツェナーダイオード電圧 1.13 1.42 1.95 抵抗で煙が出たので測定中止

9Vをかけても、ツェナーダイオード電圧が2Vを超えない状況。

そこで、3.3V用のツェナーダイオードでも試した見たが、傾向としては、2Vのものと同じで(ただし、ここでは、安全のため10kΩ抵抗を使用)、ツェナーダイオード電圧が3.3Vを超えない状況であった。

入力電圧 3.3V 5V 9V 19V
ツェナーダイオード電圧 2.187 2.411 2.683 3.019

終わりに

実物はシミュレーターのようにうまくいかないのか、品質が今一つのツェナーダイオードだったのか、それとも小生が素人でどこか間違っているのか、、よくわからずであった。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0