PBASIC 编程 / RCTIME
很多时候,我们连接到 BasicStamp 的设备将是普通的模拟设备,而不是数字设备。区别在于,我们不是发送 1 或 0,而是需要发送电压值。例如,如果我们想要发送值 4,我们可以发送数字信号(100),或者发送模拟信号(+4V)。
电阻器是一种减缓电流流动的装置。我们之前已经见过欧姆定律,但我们会在这里重复一遍
r 是电压 v 和电流 i 之间的关系。电阻器的值以欧姆 (Ω) 为单位测量。
电容器是一种特殊的装置,它存储能量。当您在电容器上施加电压时,它会充满能量。当您移除电压时,电容器会释放能量。例如,照相机的闪光灯使用电容器来存储大量能量,直到您按下拍照按钮。当您按下按钮时,电容器会非常快地释放能量,相机就会发出强烈的闪光。如果没有电容器,电池永远无法产生如此快速的大量能量。
电容器存储能量的能力以法拉(Farad)为单位测量。大多数用于小型应用的电容器的值非常小,例如 1 毫法拉或更小。
包含电阻器和电容器的电路称为 RC 电路。电容器不会立即充放电。有一个特殊的值,称为时间常数,它决定电容器充电所需的时间。时间常数取决于电容器的值和电阻器的值。
电路的时间常数计算如下
其中 τ 是时间常数,单位为秒。r 是电阻,单位为欧姆,C 是电容,单位为法拉。RC 电路大约需要 5 个时间常数才能完全充放电。
BasicStamp 可以直接测量时间常数,而无需先测量电路的电阻和电容。为此,BasicStamp 向电路输出 5 伏,足够长的时间让电路充电。然后,BasicStamp 将输出端口转换为输入端口,使电路可以释放能量。当能量降至零时,它已经过了 5 个时间常数。BasicStamp 将时间除以 5 并返回时间常数值。请记住,这是一个近似过程,对于非常大的时间常数(因为电路没有足够的时间完全充电),它将失败。
RCTIME 函数测量连接到某个端口的电路的时间常数。电路的另一端应连接到地线。它将返回时间常数值,单位为毫秒。要读取端口 11 的时间常数,我们将写入
MyByte VAR Byte RCTIME 11, MyByte
在我们的电路中,我们可以使用几种类型的电阻器来执行不同的任务。
电位器,或者更简单的说“电位器”,是一个具有可变电阻的电阻器。电位器通常带有一些旋钮或旋盘,可以转动以改变电阻。电位器的一个很好的例子是立体声中的音量旋钮。当旋钮调高时,电阻会减小,流过的电流会增加,声音会变大。当旋钮调低时,电阻会增加,流过的电流会减少,声音会变小。另一个例子是灯泡的调光开关。灯光越暗,开关的电阻必须越高。
如果我们有一个包含电位器的电路,我们知道 C 是多少,我们可以测量时间常数,因此我们可以计算出电阻必须是多少。如果我们知道电位器的最大和最小电阻,我们可以计算出旋钮旋转了多少,在某些情况下,我们甚至可以计算出旋钮指向的确切角度。
电位器可以是旋钮的形式,也可以连接到轮子上以测量轮子旋转了多少。它们也可以作为滑动开关。
热敏电阻是一种电阻,其电阻随温度变化。这些通常用于电子温度计。通过测量热敏电阻电路的 RC 时间,我们可以计算出温度。
光敏电阻是一种电阻,其电阻随照射的光量而变化。通过测量光敏电阻的时间常数,我们可以确定照射在其上的光量。一个例子是自动夜灯,它在检测到光线关闭时会打开。