简易直流负载

date: 2021-02-05 11:45:50

简介

两轮校电赛已经结束,记录一下我的两件作品,一个直流负载,一个交流恒流源。

直流负载

题目要求

负载R2可以工作在CC、CR、CP模式下。

本题最关键最主要的关系式:I=Vi/R2。即Vi=VR2。

实现思路

电源类题目的灵魂在于AD和DA的合理转换,至少我理解的在这道题目中是这样的。

模拟信号只有通过A/D转化为数字信号后才能用软件进行处理,这一切都是通过A/D转换器(ADC)来实现的,ADC即(Analogue-to-Digital Conversion)它是把连续的模拟信号转变为离散的数字信号的器件;数模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件,D/A转换器基本上由4个部分组成,即权电阻网络、运算放大器、基准电源和模拟开关。

题中需要灵活应用采样电阻两端电压值Vi,用DAC压控MOS管实现所需功能。

放设计报告里的流程图什么的太麻烦了,直接放上主函数的代码吧,懂的都懂。

int main(void)
{
	u16 adcx;
	float temp;		//U
	int xiaoshu;		//用来显示电压小数部分
	int i=0;
	int r=0;
	int p=0;

	vu8 key=0;	
	delay_init();	    	//延时函数初始化	  
	LED_Init();			    //LED端口初始化
	KEY_Init();          	//初始化与按键连接的硬件接口
	BEEP_Init();			//BEEP初始化
	Adc_Init();		  			//ADC初始化
	Dac1_Init();				//DAC初始化
	
	BEEP=0;		//关闭蜂鸣器
	LED0=0;					//先点亮LED1
		OLED_Init();			//初始化OLED  
		OLED_Clear(); 
	    OLED_ShowCHinese(0,0,0);//中
		OLED_ShowCHinese(18,0,1);//景
		OLED_ShowCHinese(36,0,2);//园
		OLED_ShowCHinese(54,0,3);//电
		OLED_ShowCHinese(72,0,4);//子
		OLED_ShowCHinese(90,0,5);//科
		OLED_ShowCHinese(108,0,6);//技
		
		OLED_ShowChar(0,2,'>');
		OLED_ShowChar(0,4,'>');
		OLED_ShowChar(0,6,'>');
		
		OLED_ShowChar(18,2,'C');
		OLED_ShowChar(30,2,'C');
		OLED_ShowChar(18,4,'C');
		OLED_ShowChar(30,4,'R');
		OLED_ShowChar(18,6,'C');
		OLED_ShowChar(30,6,'P');
		
	while(1)
	{
		adcx=Get_Adc_Average(ADC_Channel_1,10);//读取当前ADC的值
		temp=(float)adcx*(3.3/4096)*11.027;//转换为电压值
 		
		key=KEY_Scan(0);	//得到键值
	   	if(key)
		{			
			switch(key)
			{
				case KEY0_PRES:	//CC
				{
								OLED_Clear(); 
								OLED_ShowCHinese(0,0,0);//中
								OLED_ShowCHinese(18,0,1);//景
								OLED_ShowCHinese(36,0,2);//园
								OLED_ShowCHinese(54,0,3);//电
								OLED_ShowCHinese(72,0,4);//子
								OLED_ShowCHinese(90,0,5);//科
								OLED_ShowCHinese(108,0,6);//技
						
								OLED_ShowChar(18,2,'U');
								OLED_ShowChar(18,4,'I');
								OLED_ShowChar(18,6,'i');
								
								OLED_ShowChar(36,2,'=');//=
								OLED_ShowChar(36,4,'=');//=
								OLED_ShowChar(36,6,'=');//=
								
								OLED_ShowChar(0,2,'>');
								OLED_ShowChar(0,4,'>');
								OLED_ShowChar(0,6,'>');
										
								OLED_ShowChar(112,2,'V');
								OLED_ShowNum(54,4,i,4,17);
								OLED_ShowChar(102,4,'m');
								OLED_ShowChar(112,4,'A');
								OLED_ShowNum(54,6,i,4,17);
								OLED_ShowChar(102,6,'m');
								OLED_ShowChar(112,6,'A');
					while(1)
					{					
								adcx=Get_Adc_Average(ADC_Channel_1,10);//读取当前ADC的值
								temp=(float)adcx*(3.3/4096)*11.027;//转换为电压值

								OLED_ShowNum(54,2,temp,2,16);//显示整数部分
								OLED_ShowChar(70,2,'.');
								xiaoshu=temp*1000;
								xiaoshu=xiaoshu%1000;
								OLED_ShowNum(72,2,xiaoshu,4,16);//显示小数部分
						key=KEY_Scan(0);	//得到键值
						if(key)
						{			
							switch(key)
							{
								case KEY0_PRES:	//上调
								{
									//OLED显示电流i
									i=i+100;
									LED0=!LED0;
									OLED_ShowNum(54,6,i,4,17);
								}
									break;

								case KEY1_PRES:	//下调
								{
									//OLED显示电流i
									i=i-100;
									LED0=!LED0;
									OLED_ShowNum(54,6,i,4,17);			
								}
									break;

								case KEY2_PRES:	//确定键
								{
									LED0=!LED0;
									OLED_ShowNum(54,4,i,4,17);				//将屏幕上的"I"数值替换为"i"
									DAC_SetChannel1Data(DAC_Align_12b_R, 3.175*i*0.001*(4096/3.3));//改变DAC输出
								}
									break;
							}
						}
						//过压保护语句		
						adcx=Get_Adc_Average(ADC_Channel_1,10);//读取当前ADC的值
						temp=(float)adcx*(3.3/4096)*11.027;//转换为电压值
						if(temp>=19.5 && temp<=20.5)
						{
							BEEP=1;
						}
						else
						{
							BEEP=0;
						}
					}
				}
        	}
    	}
	}
}

遇到的坑

STM32F103C8T6为小容量芯片,并不集成DAC功能,而大容量的STM32F103ZET6具有两路DA输出,这也就导致了中途不得不去更换芯片,再加上电源题目电压很可能接错,其中一块ZET6就是因为接错电压而夭折。所以在做东西之前一定先做好芯片选型的工作,尤其是电源类题目每一次接入的电压更应该细心检查。

缺陷

针对每一个功能,通过按键只能进入对应的死循环,无法再度切换负载的功能。

改进

待续……

实物图

交流恒流源

实现思路

本题所要实现的功能其实是控制负载以恒定的电流消耗电能,并且保证输出信号基本没有失真,再通过带通滤波器滤波,最终在液晶屏上显示信号幅频特性,一共四级系统。

理论分析与计算

电路设计

参考电路

仿真电路

遇到的坑

电路仿真的时候一模一样的电路,最后示波器上出不来波形,无语。

缺陷

该电路未加三极管放大,电流驱动能力最大为15mA,未满足题目中要求的20mA。

由于对幅频特性曲线理解有误,最后通过带通滤波器出来的信号未做出幅频特性曲线。

改进

待续……

实物图

posted @ 2022-02-01 22:52  Ma-Hao  阅读(112)  评论(0)    收藏  举报