
ADC(Analog to Digital Converter)是模拟转数字采样器。Arduino的ADC口只能测量直流电,即0.0v ~ REFv(REF ≥ 0.0),但有时我们需要测量-REFv ~ +REFv的交流电,如音频信号,那就变得尴尬了~= ̄ω ̄=
让交流音频信号可被Arduino测量:
在Arduino中对畸变的信号还原:
如下图所示:
共射极放大电路可以为信号添加一个固定的直流偏置电压,使信号完全偏移到正电压上,另外它也可以放大信号的电压,满足Arduino ADC接口的测量标准。
上面的电路为固定偏置共射极放大电路。我们计算的共射极放大电路中使用到的三极管是NPN型三极管,它有三个极:
三极管有两种半导体类型:
三极管的放大倍数:
我们一般计算一个放大电路的参数,会把里面的电流都控制到一个静态的点上去计算,这样可以避开复杂的电流变化带来的计算上的麻烦。而我们输入端有个阻隔直流的电容C,所以信号静止不变时,能够输入放大电路的电压就为0v了,这就引入了静态工作点的参数估算,习惯上也把它称作Q点。
因为输入放大电路的电压为0v,所以这个时候在三极管基极 b (阀门端)上输入的电压就只有电阻R b 上的电压V b 了,此时我们就知道了流入三极管基极 b (阀门端)的电流I b
进而由三极管VT放大后输出的电流I c 为
所以三极管VT输出的电压V ce 为
一般情况下,V cc 和VT的放大倍数β都已经事先确定,所以接下来要确认的是分压电阻R c 和偏置电阻R b 。
电源电流通过偏置电阻R b 流入三极管VT基极 b (阀门端)的电流是 I b = Vcc / R b ,在三极管VT的集电极 c 和发射极 e 之间就会产生一个 β * I b *倍的电流,经过电阻R e 的转换,在电阻R e 两端就会得到一个电压V e ,这就是偏置电压。
偏置电压负责处于正负半周上的信号提高到正半周,使信号在任何时候都不会有电压为负的情况出现。
所以我们调整偏置电阻R b 的目的也就明了了,我们要调整一个足够的偏置电压,使得信号在任何时候都不会有负电压,但也不能调整得太大,使信号的最高电压超过三极管VT的放大极限,出现 饱和 的情况(因为饱和部分其实会被“削顶”,而不是像下面的示意图一样好好活着~)
因为三极管VT的放大系数β会随着温度的升高而升高,即通过集电极 c 与发射极 e 之间的电流I ce 会增加,从而流向基极 b 的电流I b 会减少,这就造成偏置电压降低。
这会让偏置并放大后的音频信号上下浮动,而且可能造成"削顶"失真。
要解决这个问题,我们需要改良放大电路,为分压式偏置共射极放大电路,如下图。
我们添加了电阻R b2 和电阻R e 来平衡偏置电压。
偏置电阻R b1 和R b2 把电源电压V cc 按电阻比例稳定的分为两部分,输入三极管VT基极 b (阀门端)的电压V b 也由偏置电阻R b1 和R b2 的分压值决定,所以V b 是稳定的。
此时,如果三极管VT温度上升,通过集电极 c 与发射极 e 之间的电流I ce 会增加,那么电阻R e 的电压V e 也会上升,三极管VT的基极 b 和发射极 e 之间的压降就下降了,所以流入三极管基极 b 的电流I b 也降低了,从而降低了偏置电压,使偏置电压处于稳定状态。
三极管VT的基极 b 的电压V b 为
三极管VT的发射极 b 的电流I e 为
三极管VT的集电极 c 与发射极 e 之间压降V ce 为
[未完,但要不要待续咧~←_←]
运放输入阻抗高,输出阻抗低,放大倍数高,做ADC的信号匹配再合适不过了~
如果使用运放来适配ADC采集交流电信号,做到如下两级就通常就足够了:
加法器 → 反向放大器
光敏电阻(Photo-sensitive resistor)的电阻值与光线有关,照射于感光面的光线亮度增加时,电阻值会变小,亮度减少时电阻值会加大,其原理是光线照射于半导体,原本稳定的电子受到激发而成为自由电子,常见的材料为硫化镉(Cds)或硒化镉(CdSe),因而常用 Cds 代表光敏电阻。
由于光敏电阻会因为光照而使得电阻发生改变,若对光敏电阻施以电压,两端的电压就会因为光照发生的电阻值改变,使得压降也跟着变化,我们可以利用这个特性来制作亮度感应器,
如上图的电路设计,输出脚位的电压值会是5 * R2/(R1 + R2),一般光敏电阻的电阻变化,大概是在 10M Ω(黑暗)到 1K Ω(置于阳光下)左右(如果直接以强光接近照射,电阻值还会更低一些),如果要精确地量测照度与电阻的关系,可以用专用照度计来量得照度与电阻之间的关系。
在这边就简单一点,我在目前室内合适的亮度下,量得的光敏电阻值约为 3K Ω 上下,按照上图的话,输出脚位的电压值会是在 3.8 V 左右,接到 Ardunio 的类比输入脚位,应当可以量得 800 左右的数值,你可以如下设计电路:
只要设计一个简单的小程式,就是阳春的照度计了 … XD
当然,这边的照度值不是公定的照度单位,只是从类比输入脚位量得的值,仅供亮度的相对参考,试着增强或遮挡至光敏电阻的光线,你就会看到数值会有不同的变化:
如果亮度感应器的敏感度设计的好一些,搭配自走车,就可以做个简单的循迹车了。
如果会实作简单的亮度感应器,那么就可以用多个亮度感应器,来实作简单的光线追踪了,例如,可使用两个亮度感应器,侦测左右两边的亮度差异,如果两边亮度差异在一定范围内,例如 50 以内,两边 LED 就同时亮,表示亮度差不多,若左边比右边的亮度高 50 以上,就亮左边,反之就是亮右边的 LED,你可以如下设计电路:
程式的撰写则可以如下:
因为我手边仅有的两个光敏电阻规格不同,同样的光源下,测出来的值不太一样,左边那颗比右边那颗约少了 150 左右,因此,在程式中我做了些修正 … XD
感谢CodeData用户: caterpillar 的贡献 著作权归作者所有
整理:宁波家电物联网云平台,中科极动云
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)