检测环境光及控制照明的微控制器实例介绍
扫描二维码
随时随地手机看文章
以前的一个设计实例(参考文献1)采用一只LED作为换能器,以测量环境光强度并提供照明。本设计实例的原理与之相同,但只有一只LED、二只电阻器、一只IC和一只0.1mF的旁路电容器。该电路用于提供环境光的反馈时,它无需更多元件。虽然图1中的电路只需要少量元件,但它仍有相当好的灵活性,因为微处理器软件控制着LED的亮度,以及它与环境光强之间的关系。对于夜间光照应用,一个模式是可在环境光线减弱时点亮LED。反之,对于便携设备LCD背光的节电调整应用,第二种模式是会在环境光强度增加时点亮LED。
表1是本设计实例的样本代码,它可以下载,在两种模式下均能为LED的亮度提供64级PWM(脉冲宽度调制)强度控制。在使用时,微处理器的一个多功能脚用数百毫秒的PWM波形驱动LED。在波形的最末周期后,软件将微处理器脚切换至输入模式,并将LED连接到微处理器的内部16位S -ΔADC。环境光照在LED上产生电压,ADC测量这个电压,微处理器为后面的一系列照明周期计算出PWM波形参数。由于周期速率具有很高的重复频率,因此消除了LED上任何可看清的闪烁。
表中,当软件与环境光强度确定LED应 关闭一个延伸间隔时,CPU会进入低功耗状态达250 ms。在这个睡眠模式期间和同时实现ADC转换的数百微秒内,电路只消耗大约20mA,因此非常适合用于电池供电的系统。
在启动时,微处理器储存一个LED产生的初始电压,并用此值换算PWM电平。将LED遮挡或将电路移至一个暗区,就会立即增加LED的亮度,它由表中64个PWM电平以小梯步控制。MSP430F2013的ADC输入阻抗约为200 kΩ。当驱动这个阻抗时,占用0805表面封装印脚的LED只产生数十秒的毫伏电压。但是,MSP430F2013 的16位ADC有足够的分辨率解析LED电压,以保证正常室内光照强度下的良好性能。
另外,MSP430F2013含有一个四级PGA(可编程增益放大器),它可提供1、4、8和16 的增益,进一步放大LED微小的输出电压。该电路还使用了微处理器的片上低频时钟振荡器,无需外接晶振就能低功耗运行。最终电路只有六只元件,包括一枚电池。值得注意的是,代码可以在德州仪器公司的eZ430演示板上执行,无需作硬件修改,因为该板上含有一只连接到端口 P1.0的LED。