1)、2) 和 3)
如果您在电路中使用不同的电源,则必须以某种方式连接它们,以便它们具有共同的参考。您几乎总是会连接接地,因为它们是您的参考。电压是相对的:如果您将电池的正极作为参考,则负极将处于 -12 V,如果您将负极作为参考,正极将处于 +12 V。很少有电路会使用正极作为参考,我们喜欢正电压更好。所以电池的负号是 Arduino 的。
为什么它们必须连接?您的晶体管将看到两个电流:基极电流,进入基极并通过发射极返回到 5V 电源,以及集电极电流进入集电极并通过发射极返回电池。由于电流具有共同的发射极(称为共发射极电路),这将是连接两个电源的地方。
当基极电流通过发射极离开晶体管时,它如何知道要走哪条路?电流只能在闭合回路中流动,从电源的正极到负极。基极电流从 +5 V 开始,因此当它通过电池接地时不会闭合环路。
4)
我们暂时不考虑 R2。因为基极发射极充当二极管,所以基极电压约为 0.7 V。施加 5 V 电压来激活晶体管,根据欧姆定律,通过 R1 的电流(即基极电流)为 \$\frac{5V- 0.7V}{R1}\$。晶体管将该电流放大到足够高的集电极电流以驱动继电器。什么足够高?因此,您必须检查继电器的数据表。它会告诉您所需的电流或线圈的电阻,然后您可以再次使用欧姆定律计算电流。继电器通常需要大约 400 mW 才能激活,因此对于 12 V 继电器,电流为 400 mW/12 V = 35 mA。那是最小的集电极电流。
要找出我们需要多少基极电流,我们必须查看晶体管的数据表。假设我周围有 100 000个 BC547B(我订购它们时忘记了小数点),我需要一个目的。当前增益由 \$h_{FE}\$ 参数给出,我们可以在数据表的第 2 页找到该参数。对于 BC547B,最小值为 200。(始终使用最坏情况值,对于 \$h_{FE}\$,这是最小值。如果您使用典型值,则某些部件的电流可能太小。)
因此,要获得 35 mA 集电极电流,我们需要 35 mA/200 = 0.175 mA 基极电流。那么 R1 必须是 \$\frac{4.3 V}{0.175 mA}\$ = 24600 Ω。这是一个你找不到的值,所以我们应该选择更高或更低的值。如果我们选择更高的值,电流会更低,集电极电流也会更小,我们的继电器可能不会激活。所以它必须更低,24600 Ω是上限。现在提供过多的基极电流(在合理范围内)并没有错;集电极电流将尝试跟随,但线圈的电阻会限制它。如果线圈的电阻为 360 Ω,则欧姆定律表明,无论您如何努力,在 12 V 时您都无法获得超过 35 mA 的电流。
让我们选择一个 10 kΩ 的电阻。这比我们需要的值低得多,但我们会没事的。基极电流将在 0.5 mA 左右,Arduino 会很高兴地提供,晶体管会尝试达到 100 mA,但同样,它将被限制在我们的 35 mA。一般来说,留有一些余量是个好主意,以防 5 V 会少一点,或者参数中可能存在其他任何变化。我们有一个三倍的安全边际,应该没问题。
R2呢?我们没有使用它,一切似乎都很好。没错,而且在大多数情况下都会如此。我们什么时候需要它?如果 Arduino 的输出低电压不会低于 0.7 V,那么晶体管在关闭时也会获得电流。情况并非如此,但假设输出低电压将保持在 1 V。R1 和 R2 形成一个电阻分压器,如果我们选择 R1 = R2,则 1 V 输入将变为 0.5 V 基极电压,而晶体管不会得到任何电流。
开启时我们有 0.5 mA 的基极电流,但 R2 与基极发射极并联时,我们会在那里损失一些电流。如果 R2 为 10 kΩ,它将消耗 0.7 V/10 kΩ = 70 µA。所以我们的 500 µA 基极电流变为 430 µA。我们有很大的余量,所以这仍然会给我们足够的电流来激活继电器。
R2 的另一个用途是排出漏电流。假设晶体管由电流源驱动,例如光耦合器的光电晶体管。如果光耦合器提供电流,它将全部进入基极。如果光耦合器关闭,光电晶体管仍会产生很小的泄漏电流,即所谓的“暗电流”。通常不超过 1 µA,但如果我们不采取任何措施,它将流入基极并产生 200 µA 的集电极电流。虽然它应该为零。所以我们引入R2,并为其选择68 kΩ。然后 R2 将产生 68 mV/µA 的电压降。只要电压降小于 0.7 V,所有电流都将通过 R2,而不会流入基极。那是 10 µA。如果电流更高,R2 的电流将被限制在 10 µA,其余部分通过基极。所以我们可以使用 R2 来创建一个阈值。暗电流不会激活晶体管,因为太低了。
除了这种电流驱动的情况,R2 很少需要。你在这里不需要它。