📜  UJT作为放松振荡器(1)

📅  最后修改于: 2023-12-03 14:48:09.455000             🧑  作者: Mango

UJT作为放松振荡器

放松振荡器是一种非正弦波振荡器,它通过充放电周期性地改变控制元件的特性来产生周期性的输出波形。其中,UJT(双极晶体管)作为一种控制元件,可以用来构建放松振荡器。

UJT基本原理

UJT是一种三层二极管,它具有两个区域,一个P型区和一个N型区,这两个区域之间有一个薄的P型区域。当UJT的绝缘门极与基极之间施加一定的正向电压时,P型区内的载流子就会向N型区移动,这样就形成了一个低阻通道。这个低阻通道的电流可以被作为控制信号用来控制其他电路的输出。

UJT放松振荡器的原理

UJT放松振荡器是一种RC振荡器,其基本原理是通过一个电容和一个补偿电阻组成的RC网络充放电来周期性地改变UJT的控制信号,从而产生周期性的输出波形。

具体来说,当电路中的电源打开时,电容开始充电。当电容的电压超过UJT的绝缘门极和基极之间的电压时,UJT就会导通,开始放电。在放电过程中,电容开始从UJT的激励端向UJT的控制端放电,这样就使得UJT的控制信号周期性地改变。当电容放电完毕时,UJT的控制信号再次变为高电平,电容开始重新充电,从而又产生了一个完整的周期。

UJT放松振荡器的电路图

下面是一种基于UJT的放松振荡器电路图:

       +Vcc
        |
       |/
       |\
       |   R1
       |___
        |
     B |/   Q1 (UJT)      C
   +---|<             R2  |---+
   |    |\E+\               |   C1
   | R3 |___/- output      \  |/
   |                        +|
   |                         |
GND                       GND
UJT放松振荡器的代码实现
#define VCC 5.0      // 电源电压
#define R1 10000.0   // 补偿电阻
#define R2 22000.0   // 充电电阻
#define R3 1000.0    // 输出电阻
#define C1 0.1e-6    // 电容容值
#define VBB 0.6      // UJT绝缘门极和基极之间的电压

void setup() {
  pinMode(3, OUTPUT);
}

void loop() {
  float t = 0.0;
  float dt = 0.001;
  float vc = 0.0;
  float ie = 0.0;
  float iu = 0.0;
  while (t < 3.0) {
    if (vc >= VBB) {
      ie = (VCC - vc) / (R2 + R1);
    } else {
      ie = VCC / (R2 + R1);
    }
    iu = ie / (1 + R3 * ie);
    vc += iu * dt / C1;
    if (vc >= VCC) {
      vc = VCC;
    }
    digitalWrite(3, vc >= VBB);
    t += dt;
    delayMicroseconds(1000);
  }
}
总结

UJT作为放松振荡器的控制元件,能够产生周期性的非正弦波波形,适用于一些需要周期性切换的电路中。需要注意的是,在实际应用中,应该根据具体电路的需要,调整电路的各种参数,以达到最佳的振荡效果。