标题: 2022年TI杯大学生电子设计竞赛 单相交流电子负载(A题)电路图程序资料分享 [打印本页]
作者: DX39060000 时间: 2023-9-10 14:46
标题: 2022年TI杯大学生电子设计竞赛 单相交流电子负载(A题)电路图程序资料分享
一、 任务
设计并制作如图1所示的单相交流电子负载,其中负载特性模拟单元可模拟电阻性、电感性、电容性负载,能量回馈单元能将尽可能多的能量以50Hz交流电回馈。
二、 要求
(1)模拟电阻性负载,电子负载输入为U1=30V, I1=2A。(15分)
(2)模拟电感性负载,电子负载输入为U1=30V,I1=2A,输入侧功率因数cosφ1能根据数字设定在0.50~1.00范围内自动调整。(25分)
(3)模拟电容性负载,电子负载输入为U1=30V,I1=2A,输入侧功率因数cosφ1能根据数字设定在0.50~1.00范围内自动调整。(25分)
(4)模拟电阻性负载,电子负载输入为U1=30V,I1=2A,测电子负载的输入功率P1和回馈功率P2,ΔP= P1- P2,要求ΔP越小越好。(25分)
(5)其他。(10分)
(6)设计报告。(20分)
三、说明
(1)为简化题目、方便测试,电子负载回馈的能量由电阻性负载消耗。
(2)图1中的交流电源为50Hz正弦波交流电,其形式不限,但应做好隔离等措施,确保电气安全。
(3)为方便测试要求(4),交流电子负载仅由图1中的交流电源供电。
(4)题中所有交流参数均为有效值。
(5)电子负载的输入功率P1= U1I1cosφ1、输出功率P2= U2I2cosφ2,其中cosφ1为电子负载输入侧的功率因数,cosφ2为电子负载回馈侧的功率因数。
(6)电路制作时应考虑测试方便,合理设置测试点。
原理图和源码文档在附件,只做了123题,运气不错拿了省一,资料有点乱,希望能对你有帮助
STM32单片机源程序:
- ////////////////////////////////////////////////////////////////////////////////// )
- // 说明:
- // ----------------------------------------------------------------
- // GND 电源地
- // VCC 接5V或3.3v电源
- // SCL 接PA5(SCL)
- // SDA 接PA7(SDA)
- // ----------------------------------------------------------------
- // 矩阵键盘接B1、B15、B6、B7 C0、C1、C2、C3
- // 4脚oled:SCL 接PA5,SDA 接PA7
- //////////////////////////////////////////////////////////////////////////////////
- #include "delay.h"
- #include "sys.h"
- #include "oled.h"
- #include "bmp.h"
- #include "key.h"
- #include "usart.h"
- int main(void)
- { u8 t;
- unsigned int key=0, key_new=0;
- double inv=0.0, ina=0.0;
- u32 adc_V_t = 0, adc_A_t = 0;
- double adc_V = 0,adc_A = 0;
- delay_init(); //延时函数初始化
- NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 LED_Init(); //LED端口初始化
- OLED_Init(); //初始化OLED
- OLED_Clear() ;
- KEY_Init();
- uart_init(9600);
-
- t=' ';
-
- OLED_ShowString(0,0,"INV:", 12);
- OLED_ShowString(0,2,"R1:", 12);
- OLED_ShowString(45,2,"R2:", 12);
- OLED_ShowString(0,4,"OUTV:", 12);
- OLED_ShowString(0,6,"COS:", 12);
- OLED_ShowString(66,0,"INA:", 12);
- OLED_ShowString(85,2,"R3:", 12);
- OLED_ShowString(66,4,"OUTA:", 12);
-
- // inv = input_in_v();
- // ina = input_in_a();
-
- USART_TX_BUF_I[0] = 0x01;
- USART_TX_BUF_I[1] = 0x03;
- USART_TX_BUF_I[2] = 0x00;
- USART_TX_BUF_I[3] = 0x01;
- USART_TX_BUF_I[4] = 0x00;
- USART_TX_BUF_I[5] = 0x02;
- USART_TX_BUF_I[6] = 0x95;
- USART_TX_BUF_I[7] = 0xCB;
-
-
- USART_TX_BUF_V[0] = 0x01;
- USART_TX_BUF_V[1] = 0x03;
- USART_TX_BUF_V[2] = 0x00;
- USART_TX_BUF_V[3] = 0x03;
- USART_TX_BUF_V[4] = 0x00;
- USART_TX_BUF_V[5] = 0x02;
- USART_TX_BUF_V[6] = 0x34;
- USART_TX_BUF_V[7] = 0x0B;
- while(1)
- {
- USART_RX_STA = 0;
- //电压
- for(t=0;t<8;t++)
- {
- USART_SendData(USART1, USART_TX_BUF_V[t]);//向串口1发送数据
- while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
- }
- while(USART_RX_STA != 0x8000);
-
- adc_V_t = USART_RX_BUF[3]*16777216 + USART_RX_BUF[4]*65536 + USART_RX_BUF[5]*256 + USART_RX_BUF[6];
- adc_V = adc_V_t*0.00001;
- OLED_ShowChar(6*(0+4),0, ((int)adc_V)/10 + '0',12);
- OLED_ShowChar(6*(1+4),0, ((int)adc_V)%10 + '0',12);
- OLED_ShowChar(6*(2+4),0, '.',12);
- OLED_ShowChar(6*(3+4),0, ((int)(adc_V*10))%10 + '0',12);
- OLED_ShowChar(6*(4+4),0, 'v',12);
-
-
- USART_RX_STA = 0;
- //电流
- for(t=0;t<8;t++)
- {
- USART_SendData(USART1, USART_TX_BUF_I[t]);//向串口1发送数据
- while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
- }
- while(USART_RX_STA != 0x8000);
- adc_A_t = USART_RX_BUF[3]*65536 + USART_RX_BUF[4]*256 + USART_RX_BUF[5];
- adc_A = adc_A_t*0.00001;
- OLED_ShowChar(6*(0+15),0, (int)adc_A + '0',12);
- OLED_ShowChar(6*(1+15),0, '.',12);
- OLED_ShowChar(6*(2+15),0, ((int)(adc_A*10))%10 + '0',12);
- OLED_ShowChar(6*(3+15),0, ((int)(adc_A*100))%10 + '0',12);
- OLED_ShowChar(6*(4+15),0, 'A',12);
-
- }
-
- }
复制代码
-
51hei.png
(66.28 KB, 下载次数: 123)
电路原理图
-
屏幕截图 2023-09-10 141619.jpg
(26.3 KB, 下载次数: 116)
-
-
STM32单片机代码.7z
773.9 KB, 下载次数: 32, 下载积分: 黑币 -5
源码和文档
-
-
单相交流电子负载原理图.zip
70.2 KB, 下载次数: 32, 下载积分: 黑币 -5
原理图
作者: 1234abc456 时间: 2024-7-19 12:06
想问一下怎么接单片机,以及代码中的矩阵键盘在哪用上了
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |