《简易数控直流电源Star》由会员分享,可在线阅读,更多相关《简易数控直流电源Star(18页珍藏版)》请在金锄头文库上搜索。
1、简易数控直流电源该电源系统以ATMEGA8单片机为核心控制芯片,实现数控直流稳压电源功能的方案。 设计采用8位精度的DA转换器DAC0832、精密基准源LM336-5.0、7805和两个CA3140运算 放大器构成稳压源,实现了输出电压范围为一5V+5V,电压步进0.1V的数控稳压电源,最 大纹波只有6mV,具有较高的精度与稳定性。另外该方案只采用了3按键实现输出电压的方 便设定,显示部分我们采用了诺基亚3310手机夜晶显示器来显示输出电压值和电流值。基本要求1) 输出电压:范围一5V+5V,步进0.1V,纹波W10mV。2) 输出电压可预置在一5V+5V之间的任意一个值。3) 输出电流 50
2、0mA o4) 数字显示输出电压值和电流值。5) 为实现上述几部件工作,自制稳压直流电源,输出土 15V,+5V。1. 2系统基本方案根据题目要求,系统可以划分为输出部分,人机接口部分和直流稳压电源。其中输出 部分是由D/A转换后再放大得到的,人机接口包括4个按键和液晶显示部分,直流稳压电 源包括两组电源。方案一:三端稳压电源采用可调三端稳压电源构成直流可调电源的电路如图1.1所示。怎样实现数控呢?我们 把图1.1中的可变电阻RP用数字电位器来代替,就能实现数控了。但由于三端稳压芯片 LM317和LM337的输出电压不能从0V起调,输出公式:Vout=1.25X (1+R2/R1)。所以,可
3、以采用在输出的地方加两个二级管,利用PN节的固有电压来实现从0V起调,如图1.2所示。U1LM317VinVout,GNDC11000UC4T| 10uU1GNDVoutVinC3100U=C2J- 100ULM337图1一1Vin1000u100uU1LM317VoutDiodeDiode:1K10R1100u=C410u图1.2优点:该方案结构简单,使用方便,干扰和噪音小缺点:数字电位器误差较大,控制精度不够高,误差电压较大。同时更重要的是几乎所有的 数字电位器能够容忍的电流都在20mA以下。所以,这种方案就被否决了。方案二:采用A/D和D/A采用A/D和D/A构成直流电源的电路如图1.3
4、和图1.4所示。采用单片机构成直流电源 的电路如图1.3所示,利用AVR单片机自带的D/A 口 DAC0输出0 2.5V的电压,然后经一 级反相放大器和跟随器,此时可以输出0到一5V电压。但是因为A/D变换器只能采集0到 +2.56V的电压,所以再在跟随器后面加一级反相放大器器然后送回到A/D采样,MCU比较发 现DAC0输出为正确电压时,则从跟随器后直接输出电压,这样就可以输出0至U-5V的电压 了。当需要正相电压时从DAC1 口输出电压,这时就不需要反相,其它原理与DAC0相似。+5V-5VOp Amp-5VVCCVo图1.3优点:精确度高,纹波小,效率和密度比较高,可靠性也不错。缺点:电
5、路相对复杂,AVR单片机的IO 口不能容忍负电压,否则会被损坏。所以,这种方 案也行不通。方案三:采用数字电位器与运放到组合如图1.4所示,在该方案中我们用两个数字电位器代替了MCU中的D/A,这样可以降低 成本,同时简化电路,从两个串连的数字电位器可以直接输出-5V到+5V的电压同上面方案 一样,当输出反相电压时在送电压回A/D采样时要先经过一次反相。但同样存在上面的问题。图1.4优点:电路结构更简单,降低了成本缺点:因为数字电位器电阻误差大,且单片机的A/D 口容易损坏。方案三:采用7805构成直流电源采用7805构成直流电源的电路如图1.5所示,改变RP阻值使7805的公共端的电压在 0
6、到一10V之间可调,则7805的输出端电压就可实现-5V +5V之间可调了。这种方案是利 用了 7805的输出端与公共端的电压固定为+5的特性来设计的。但同样存在不好数控的问题。U1 7805Vin VoutC3100uC410u图1.5方案四 方案三与方案四结合,然后再以+5V为参考输出显示输出+5V如上图所示,采用数模转换器输出电流,经电压转换和反向放大之后得到-10V0V的电压, 把这个电压送到三端稳压器件7805的公共端,然后,再以+5V作为参考则输出的电压就能 实现在-5V+5V任意可调。采样时,是对地采样的,就省去了负电压不好采样的麻烦,这也 是我们的创新之处。1. 主要单元电路设
7、计电源电路单元该电路用了 7805、7815和7905、7915制成了两组稳压直流电源电路分别得到土 15V和 + 5V的电源。为了防止恒流源电路中的较大电流对控制部分产生干扰,将控制部分的电源 和恒流源电路电源分成独立的两部分,分别由两组变压器供电,并且,在电源的输出极加上 LC滤波电路。通过实际测量发现加LC滤波器之前的纹波高达5060mV,但是通过滤波之后, 电压输出,有了明显的改善,纹波只有10mV左右了。人机接口部分的单元电路设计LCD显示界面按键键盘:功能键确认N0KIA3310电压:2. 50V 电流:350mA 数控电压源数模转换电路:,-.hud liuUKJkVWViiII
8、工 WS2WSIDAC0832接口电路:15吐111 luutj 12DicEiti yVCC+5|i| 庭对7 d单缕神工作方式sE flXT.IJXTaJ.IZ.ZluUtlkbDIOloutiDllDI2RfoDEDI4VrefDI5VccDI6nisbDI?ILEWR2CSWR1海IC102用单片机的P3 口来控制DAC0832输出电压。0832输出电路:臼西时M.占F.lOiSJCDi F.II1.IXD1F.L .彳心111F.;i.-li.lQiF.15i.II|F.LmWJU F.lTiJDiJ.d.J.d.JJJ.o可ErA.H E7DID6rii5DI2|4dexI16di
9、N P3 口15dex|_ 、14dm|13117二1DAC0832输出的电压通过两个CA3140的两级放大,从Voutl和Vout2两路输出实现输出正负5V的电源。精密基准源: 用LM334和一个10K的可调变阻构成了一个精密5V基准电压,提高系统的精密度。纹波、尖峰干扰处理:电源滤波器未加电源滤波器之前,从电源电路输出端测得的纹波有5060mV,当加了电源滤波器之 后,电源电路输出端的纹波只有68mV 了。在主控板的电源输入端分别再对土 15V、5V 加一级LC滤波,最后把纹波控制在6mV以下了。主控电路保护二极管:二极管用以防止电流倒灌,防止烧坏电源。功率放大驱动电路控源控路数电主电上图
10、是由OP放大器与推挽射极跟随器相组合的电路。因为使用将NPN与PNP晶体管 的共同连接的推挽射极跟随器,该电路在输出端不取电流时,发射极无电流流动,所以电路 的效率非常高。这是该电路的一大特点。没有反馈回路时,推挽射极跟随器的开关失真很大, 假如反馈后,开关失真变小,但仍然存在。为了解决这个问题我们加入了偏置电路,由于在 各自的晶体管上加两个二级管的VF电压(O1.2V),所以在发射极电阻上分别加一个PN 节的电压(X.6V)。该电压用发射极设定电流(零点几至数毫安)来除就求出发射极电阻。在偏置电路里流动的电流,是由比晶体管基极电流大得多的值来决定的,但若太大, 则OP放大器就不能驱动偏置电路
11、,所以设定该电流在1mA以下是比较妥善的。3 .系统的软件设计3.4. 2指标测试1、输出电压:范围一5V+5V,步进0.1V,纹波W6mV。初始状态时,可以通过4 个按键输入一5.0V+5.0V之间的任意电压值,并实时显示。显示值与实际测量 值同步,且在一5.0V+5.0V之间的调节过程中最大误差为0.03V;2、输出电压可预置在一5V+ 5V之间的任意一个值,并且设有电压步进0.1V的增 减键,实时可调,有自动扫描代替人工按键功能,步进0.1V ;3、输出电流500mA ;4、输出电压调整率W0.5%(输入电压220V变化范围+15%一20%下,空载到满载);5、带负载时可以显示电流值,并
12、通过功能键进行切换,换到电流控制档,可控制电 流在10mA100mA自由调节。6、线性度:(数据分析)数字量8.纹波测试结果:不带负载时的纹波测试图:带负载时的纹波测试图:从波形图中可以看出,加负载后,纹波变得更加密集了。是因为,加了负载 之后,就在电路中形成了回路,在负反馈的过程中,相应的调整管就需要作调整, 以保证输出的电压的稳定性。所以,我们看到了以上的现象。但是,纹波的幅值 并没有增加,仍为5.44mV这也说明了电路的稳定性比较好。#include#include#include lcd3310.h#define osccal 0x7dvoid main(void) (uchar ke
13、y,num_flag=0,gb_b=40,flag=0,dac_dat=0;char theta=0;short mid=0,midd=0,m_v=0;OSCCAL=osccal;/B0y0npAEport_init();LCD_init();/36E-0oLCD_clear();LCD_write_chinese_string(0,4,16,5,0,0,1);/Di土Eyz0pqiLCD_write_chinese_string(0,0,12,3,0,0,0);/BjpQN1:jLCD_write_String(4 0,0, 0 00);LCD_draw_map(47,0,point,7,14);/BjEypaLCD_draw_map(7 3,0,voltge,12,12); /EOVLCD_write_chinese_string(0,2,12,3,0,0,2);/BjpqA:jLCD_write_String(4 6,2, 123);LCD_draw_map(68,2,current,