ツェナーダイオード
ツェナーダイオードとは一定の電圧を保つ(得る)ために使われるもの。順方向(アノードからカソード)では通常のダイオードと同じく電流が流れるが、逆方向(カソードからアノード)ではある電圧以上になると電流が流れるようになる。Wikiなど多数のサイトで説明が見つかるので、詳細はそちらを参考されたい。
素人が考えたこと
用いるツェナーダイオードは、秋月電子で購入した「定電圧ダイオード(ツェナーダイオード) 2.0V500mW GDZJ2.0A」。
ここではマイコン制御と組み合わせたかったので、マイコンにより、入力電圧(ツェナーダイオードにかかる電圧)を変化させ、2V以上の電圧がかかれば電流が流れる(ここではLEDが点灯する)ことを意図した。回路的には次のようなもの(図については後述するサイトの利用)。
左からツェナーダイオード、LED、330Ω抵抗となっており、入力電圧(上記図では5V)を変化させることとした。ツェナーダイオードは2V用である(下記図の「Breakdown Voltage」)。
回路シミュレータ
実物のツェナーダイオードを試す前に、最近、ブラウザ上で回路をシミュレートできるサイトを見つけたので、こちらで検証する。
1V
2V
3.3V
5V
8V
20V
シミュレーターでの検証まとめ
おおよそ期待どおりの結果と思われる。上図右下のVdがツェナーダイオードにかかる電圧である。3.3V以下では、LEDは点灯(赤丸が点灯を意味)していない。LEDでの電圧降下はおよそ2V程度らしいので、3.3Vをかけた時、すでにツェナーダイオードにかかる電圧が2Vくらいになっているが、LEDを点灯させるに十分な電圧になっていないのであろう。また、5V、8V、20Vと増やしても、ツェナーダイオードにかかる電圧はほとんど増えずに2V程度となっており、期待どおりであろう。
リアルなツェナーダイオードを利用
下記写真のように、Arduinoを用い、その5で用いたデジタルポテンショメータMCP4131を使って電圧をコントロールすることとした。
デジタルポテンショメータの配線については、その5を参照されたい。
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の特性が見つからずであった。
用いたデジタルポテンショメータ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 |
終わりに
実物はシミュレーターのようにうまくいかないのか、品質が今一つのツェナーダイオードだったのか、それとも小生が素人でどこか間違っているのか、、よくわからずであった。