李书鑫2B数控直流电源Word格式文档下载.docx
《李书鑫2B数控直流电源Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《李书鑫2B数控直流电源Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
但是,这种滤波器由于电感体积和重量大(高频时可减小),比较笨重,成本也较高,一般情况下使用得不多。
由电阻与电容组成的RC滤波器结构简单,能兼起降压、限流作用,滤波效能也较高,是最后用的一种滤波器。
综合考虑,由于实验室没有提供电感元件,而且电容滤波完全可以得到较好的直流电压,且有电路简单,价格低廉的优势,故应使用电容滤波的方法。
三、稳压电路
方案
1、使用LM78XX系列稳压芯片,即LM7809,LM7812,LM7815构成三路不同的稳压输出,电路简明
2、用一个LM317,与四个阻值不同的电阻输出不同的电压.
3、用运算放大器,与三个阻值不同的电阻输出不同的电压.
第一种方案的优点是各路电压相互独立,输出稳定,纹波较小,缺点是需要三个78XX芯片,成本太高,而第二种方案优点是成本较低,电路简单,缺点是输出受分压电阻的影响,温度变化时导致输出电压有所偏离.第三种方案纹波较大,输出相对不够稳定,输出电流受三极管放大倍数的影响,虽然可以通过达林顿连接增大输出电流,但是这样一来在负载较低时稳压控制难以实现.
综上所述,采用方案二为佳.
四、稳压值选择电路
利用CD4052双四选一模拟开关进行选择。
五、芯片供电电源
1、电阻分压,用两个电阻分压。
2、用7805做开关电源5v辅助电源。
方案二做出的稳压效果较好,电路简明,成本低廉,故应用方案二
第二部分单元电路设计
2.1整流电路
2.1.1整流电路工作原理及功能说明
单相桥式整流电路有四只二极管组成,利用二极管的单向导电性保证在变压器副边电压的整个周期内,负载上的电压和电流始终不变。
2.1.2整流电路元件选取与计算
使用全波整流电路
二极管选用
因为IN4001耐压50V,电流1A;
IN4004耐压400V,电流1A;
IN4007耐压1000V,电流1A;
应用在电压比较低的电路里可以混用。
而本电路中经过变压器后副变线圈电压约为十八伏特,故三者都可以使用,而考虑到成本问题应首先选用IN4001,应在实际制作中实验室只剩下IN4007,故选用IN4007代替。
3.1.2工作原理和功能说明
2.2滤波电路
2.2.1滤波电路工作原理及功能说明
交流电经过二极管整流之后,方向单一了,但是大小(电流强度)还是处在不断地变化之中。
这种脉动直流一般是不能直接用来给无线电装供电的。
要把脉动直流变成波形平滑的直流,还需要再做一番“填平取齐”的工作,这便是滤波。
换句话说,滤波的任务,就是把整流器输出电压中的波动成分尽可能地减小,改造成接近恒稳的直流电。
2.2.2滤波电路元件的选取与计算
滤波电容的选择:
因为c1满足条件RLC1=T/2.
RL约为u/i即是12v/0.5A即24
C1=(3~5)*(2*0.003/2)*(1/24)=1250~2083uf
通过计算结合实际选取合适的参数,得C=2200uF。
虽然2200uF得电容价格较高,但能够获得较好的滤波效果,加之实验室也能够提供,故选用之。
而对于5v供电电源因其对纹波电压要求不高,故选用更经济的1000uf电容。
2.3稳压电路
2.3.1稳压电路及其工作原理或功能说明
利用lm317产生稳定的电压,根据串联电阻分压原理,得Uo=(1+R1/R2)*U,可得到稳定的输出电压,为了减少电阻上的纹波电路要串联上一个电容c2。
但是,在输出开路时,电容c2将向稳压器调整端放电,并使调整管发射结反偏,为了保护稳压器,可加二极管D,提供一个放电回路。
C3容量较大时,一旦输入端断开,就将从稳压器的输出端向稳压管放电,易使稳压器损坏。
因此要跨接一个二极管,起保护作用。
2.3.2稳压电路元件的选取与计算
1.二极管的选择:
保护二极管D5、D6:
最大电压不会超过50v,故,用
In4001.
2.R0的选择:
由lm317组成的基准电压源电路,输出端和合调整端
之间的电压时是稳定的1.25v,而输出电流较大。
R0
为泄放电阻,由lm317的最小负载电流(取5mA)可
得:
Rmax=(1.25/0.005)欧=250欧,实际取值应略
小,故取240欧。
3.c2与c3的选择:
电容C2的作用是减小纹波C3的作用是当输出短路时立即放电,而同时C2通过二极管D2放电至0,防止ADJ端子残留正电压.
根据成本和效果考虑,c2和c3都应用10uf的电容。
4.根据LM317的器件特性,R0的电流可取5mv
根据Uo=
由以上公式,各输出电压对应的Rx阻值如下:
Uo=3V,R2=374
;
Uo=5V,R3=920
Uo=6V,R4=1260
Uo=9V,R4=2710
Uo=12V,R5=5510
2.3.3器件说明
LM117/LM317的输出电压范围是1.2V至37V,负载电流最大为1.5A。
它的使用非常简单,仅需两个外接电阻来设置输出电压。
此外它的线性调整率和负载调整率也比标准的固定稳压器好。
LM117/LM317内置有过载保护、安全区保护等多种保护电路。
调整端使用滤波电容能得到比标准三端稳压器高的多的纹波抑制比。
可调整输出电压低到1.2V。
保证1.5A输出电流。
典型线性调整率0.01%。
典型负载调整率0.1%。
80dB纹波抑制比。
输出短路保护。
过流、过热保护。
调整管安全工作区保护。
标准三端晶体管封装。
2.4程序控制稳压值选择电路
2.4.1稳压值选择电路的工作原理和功能说明
原理图
说明:
在调整端加控制电路就可以实现程序控制稳压电路,如图所示,图中晶体管伟电子开关,当基极加高电平是,晶体管饱和导通,相当于开关闭合;
当基极加低电平是,晶体管截止,相当予开关断开。
2.5稳压5v直流电源
2.5.1工作原理
用7805做一个稳压5v直流电源,原理与上面个部分相同。
2.5.2模块电路及参数计算
Ci用于抵消输入线较长的时的电感效应,以防止电路产生自激振荡,其容量较小,一般小于1uf,故可选用0.33uf。
而Co用于消除输出电压中的高频噪音,为使其输出较大的脉冲电流应取较小的电容故Co取1uf
3.5.3器件说明
7805为三端正稳压器电路,TO-220F封装,能提供多种固定的输出电压,应用范围广。
内含过流、过热和过载保护电路。
带散热片时,输出电流可达1A。
虽然是固定稳压电路,但使
用外接元件,可获得不同的电压和电流。
主要特点
输出电流可达1A
VI——输入电压(VO=5~18V)……………………………35V
(VO=24V)………………………………40V
数字控制部分
整体构思:
由于我们有AVR的开发板,所以,我们选择了ATMEL公司的ATMEGA16L作为数字控制部分的核心部件。
根据题目要求,我们需要用AVR单片机实现按键设置的3V5V6V9V12V电压,而在模拟电路部分我们使用了三极管作为电阻导通的器件。
所以要用到单片机的I/O输出高电平,同时要实现按键选择功能,也要使用一个I/O口。
数显部分我们使用了1602液晶显示屏,A/D电压采集我也将使用ATMEGA16L的PA7口作为A/D输入口。
所以数字部分的整体构架就如上所述。
模块一:
按键控制电压选择与数字显示
1.扫描键盘
这次我们用到的单片机的键盘接法如下:
针对此接法编写的子程序如下:
//扫描键盘函数
charkey=0;
//全局变量key,保存键值,无按键为0,方便不同函数进行访问
charlock=0;
//全局变量lock,保存键值,无按键为0,方便不同函数进行访问
voidget_key()
{
key_PORT=0x0f;
//高四位输出低电平,低四位为带上拉输入
key_DDR=0xf0;
//高四位为输出,低四位为输入,重要!
增强拉电流能力
if(!
key&
&
key_PIN!
=0x0f)//如果key=0,即按键已经响应,判断是否有键按下
{
delay_ms(10);
//延时后再次判断,消除按键抖动的影响
if(key_PIN!
=0x0f)//确实有键按下
switch(key_PIN)
{case0x0e:
key=2;
break;
case0x0d:
key=3;
case0x0b:
key=5;
case0x07:
key=6;
}
key_PORT=0x30;
//令低三位输出低电平4、5位为带上拉输入高三位仍保持输出低电平
key_DDR=0xcf;
//令低三位为输出4、5位为输入高三位为输出
asm("
nop"
);
//延时一个机器周期,重要!
这个时间为key_PIN的建立时间,如省略,程序出错!
case0x20:
key+=0;
//第一位被拉低
case0x10:
key=1.5*key+4.5;
//第二位被拉低
default:
key=0;
//该情况属于偶然错误,返回0
while(key_PIN!
=0x30);
//等待松开按键时才退出,这里根据要求适当选择,也可以在此进行长按判断
}
这次的键盘控制一共用到了7个按键(图中的S6不用),其中S2、S3、S4、S7、S8、S9分别控制六种电压(第六种电压是用活动变阻器调节的3-13V连续可变电压),S1键是锁定键,当按下时,保持当前电压,按其它按键不改变电压值,再按一次则解锁,解锁之后电压会自动清零,这时就可以再设置电压了。
锁定按键的方法是设置全局变量lock,当lock=0时不锁定,当lock=~lock,即lock=255时进行锁定,具体的锁定程序是在主函数中体现出来的,具体如下:
(假设show函数为1602的显示函数)
voidmain()
unsignedchari=0;
System_Init();
//系统初始化函数
while
(1)
{
get_key();
if(key)
if(key==2)
lock=~lock;
while(lock==255)
show(j);
//加电压控制于此
lock=0;
}
else{
if(lock==0)
{
i=key_PIN;
while(key_PIN==i)
show(key);
//加电压控制于此
}
j=key;
key=0;
i=0;
}
2.数字显示
1602的显示程序如下:
{
V=get_ad_data(7);
V=V*4.59;
//校正系数
data[0]=V/10000+0X30;
//data用于储存测量获得的电压值
data[1]=V/1000%10+0X30;
data[2]=V/100%10+0X30;
data[3]=V/10%10+0X30;
key[0]=n/10+0x30;
//key用于储存设定的电压值
key[1]=n/10%10+0x30;
delay(15);
write_com(0X38);
delay(5);
write_com(0X02);
write_com(0X0C);
write_com(0X06);
write_com(0X80+0X00);
for(j=0;
j<
10;
j++)
write_dat(table1[j]);
write_com(0X80+0X40);
for(i=0;
i<
2;
i++)
write_dat(data[i]);
delay
(1);
write_dat(table[10]);
for(i=2;
4;
write_com(OX80+0x47);
write_dat(key[i]);
}//显示设定、测量电压
模块二:
A/D电压采样与数字显示
A/D电压采样的程序如下:
voidADC_Init()
ADMUX=0x40;
//AVCC参考、右对齐、ADC0通道
ADCSRA=0xC6;
//使能ADC、单次模式、启动第一次、12MHz内部时钟64分频
while(ADCSRA&
(1<
<
ADSC));
//等待采样结束,第一次转换
uintget_ad_data(unsignedcharAD_CH)
uchari;
uinttemp[32],value=0;
ADMUX=(0xC0|AD_CH);
//配置通道
32;
ADCSRA|=1<
ADSC;
//启动一次转换
//等待采样结束
temp[i]=(ADCH<
8)|ADCL;
value+=temp[i];
value=value/32;
return((ADCH<
8)|ADCL);
//返回转换结果}
ADC_Init函数是对AD转换的初始化,其实就是配置两个寄存器的值,这2个寄存器为:
ADMUX:
ADC多工选择寄存器,负载配置参考电压和选择通道
ADCSRA:
ADC控制和状态寄存器,启动ADC、配置ADC参数等
ADMUX的配置比较简单,8个数据位定义如下:
首2位决定参考电压源:
ADLAR影响ADC转换结果在ADC数据寄存器中的存放形式。
ADLAR置位时转换结
果为左对齐,否则为右对齐,左右对齐不影响精度,自行选择。
最后5位为通道选择,MUX4和MUX3涉及差分通道和增益配置。
仔细观察,ADC0对应MUX4..0的值为0,ADC1对应MUX4..0的值为1,因此程序上利用该规律可以方便改变通道。
初始化的ADMUX=0x40;
就是使用AVCC参考、右对齐、ADC0通道
然后ADMUX=(0xC0|AD_CH);
则是把ADMUX的后5位置成00111,也就是选择通道7,用PA7口作为A/D输入口。
ADCSRA各位的含义如下:
Bit7–ADEN:
ADC使能ADEN置位即启动ADC,否则ADC功能关闭。
在转换过程中关闭ADC将立即中止正在进行
的转换。
这里ADEN=1;
Bit6–ADSC:
ADC开始转换在单次转换模式下,ADSC置位将启动一次ADC转换。
在连续转换模式下,ADSC置位将启动首次转换。
第一次转换(在ADC启动之后置位ADSC,或者在使能ADC的同时置ADSC)需要25个ADC时钟周期,而不是正常情况下的13个。
第一次转换执行ADC初始化的工作。
在转换进行过程中读取ADSC的返回值为"
1”,直到转换结束。
ADSC清零不产生任何动作。
这一位是转换标志位,通过置位来启动,并判断是否转换结束。
Bit5–ADATE:
ADC自动触发使能ADATE置位将启动ADC自动触发功能。
触发信号的上跳沿启动ADC转换。
触发信号源通过SFIOR寄存器的ADC触发信号源选择位ADTS设置。
这里单次转换,不需要自动触发,置0。
Bit4–ADIF:
ADC中断标志在ADC转换结束,且数据寄存器被更新后,ADIF置位。
如果ADIE及SREG中的全局中断使能位I也置位,ADC转换结束中断服务程序即得以执行,同时ADIF硬件清零。
此外,还可以通过向此标志写1来清ADIF。
要注意的是,如果对ADCSRA进行读-修改-写操作,那么待处理的中断会被禁止。
这也适用于SBI及CBI指令。
本实验不需中断,置0。
Bit3–ADIE:
ADC中断使能若ADIE及SREG的位I置位,ADC转换结束中断即被使能。
这里不需中断,置0。
Bits2:
0–ADPS2:
0:
ADC预分频器选择位由这几位来确定XTAL与ADC输入时钟之间的分频因子,决定ADC转换速度。
转换速度为ADC时钟/13,对于15ksps的转换速度,需要195kHz的时钟源,本实验晶振为12MHz,进行64分频恰好。
即ADPS2..0:
110。
程序中ADCSRA=0xC6;
即是:
使能ADC、单次模式、启动第一次、12MHz内部时钟64分频
关于获得电压值后如何在1602上显示出来,方法同一中提到的显示设定值,这里不再赘述。
电路测试部分
理想电压
3V
5V
6V
9V
12V
实测电压
2.75V
4.78V
5.69V
7.78V
12.23V
显示电压
2.7V
4.7V
5.6V
7.7V
12.2V
纹波
4mV
负载电流
0.43A
误差原因:
三极管与电阻串联后有一定的电阻,使得并联后总电阻下降。
电阻有误差。