DAC0832实现LED亮度控制系统
引言
控制发光体亮度变化总体上可以分为模拟方法和数字方法,其中通过单片机控制D/A转换器实现发光体亮度控制的方法具有电路简单、维护和调整方便的特点,是当前霓虹灯控制的发展方向。霓虹灯的发光体以气体放电灯管为主,现在随着高亮度发光二极管的产生,寿命长、能耗低的LED灯牌应用越来越广泛。这里讨论应用DAC0832在单片机控制下如何控制多个发光二极管的亮度变化。
1 硬件电路设计
通过单片机和D/A转换芯片DAC0832控制三个发光二极管亮度按顺序逐渐变化,实现一种灯管旋转的效果。设计中主要考虑下面三个问题:
(1) DAC0832与单片机的接口电路设计。
(2) 基准电压源的设计。
(3) 同时控制多个LED按不同规律改变亮度的电路设计。
1.1 DAC0832与单片机的接口电路
启动ADC0832实现模数转换有单缓冲和双缓冲两种方式。多缓冲方式是在多片ADC0832配合时采用;本设计中只须一片ADC0832就可完成工作,所以采用单缓冲方式,向其8位数据输入口输入数据,然后在其写触发管脚WR1发送一低电平脉冲,该芯片就会将收到的数字量转换成模拟量输出。其输出为电流输信号,而控制发光二极管亮度需要用电压实现,所以需要外接由运算放大器构成的电流电压转换电路, ADC0832与单片机的接口电路如图1:
图中,由于选片端CS接到了P217,所以启动DAC0832开始转换时,需要将单片机的P217 脚设置为低电平。
输出的电流经过运算放大器转换成电压,如果需转换的数字量为B, 则对应输出电压值为:
其中VREF是外接的基准电压,输出电压最高为0 V,最低为- VREF ,如果基准电压取5 V,则最低输出电压为- 5 V,为了满足负电压输出的要求,运算放大器的电源电压VCC要高于5 V,VEE要低于- 5 V,本设计中运算放大器采用LM324芯片,电源电压VCC取10 V,VEE取- 10 V。
1.2 基准电压的设计
要保证DAC0832数模转换的精度和准确度,必须提供一个高度稳定的基准电压。在数模转换器中一般选用带隙基准电压源或隐埋式齐纳稳压管。
设计中选用了LM336—5型隐埋式齐纳二极管,它具有价格低、使用方便的特点,其接线如图2:
1.3 如何同时控制多个LED的亮度
设计中需要控制三个发光二极管,每个发光二极管的亮度和变化规律都不一样,而ADC0832只有一路模拟量输出,为了控制三个发光二极管的亮度,需要加一个多路电子开关,本例中选用的是CD4051,该芯片的引脚图如下:
该芯片是一个常用的8路到1路的多路电子开关,工作电压最高为32 V,通过ABC三个地址管脚确定选通哪个通道。
因为前面转换出的电压为负值最低为- 5 V,所以CD4051 的工作电压取VDD = 10 V, VEE =- 10 V, 地址控制端A、B、C分解接到单片机的P210、P211、P212 口,用来选通某个通道通, D/A转换后的模拟量接到多路开关的电压输入端3引脚,输出引脚13、14、15分别控制发光二极管D1、D2、D3。