找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 767|回复: 0
收起左侧

2022年TI杯大学生电子设计竞赛 单相交流电子负载(A题)电路图程序资料分享

[复制链接]
ID:1092918 发表于 2023-9-10 14:46 | 显示全部楼层 |阅读模式
一、 任务
      设计并制作如图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单片机源程序:
  1. //////////////////////////////////////////////////////////////////////////////////         )
  2. //              说明:
  3. //              ----------------------------------------------------------------
  4. //              GND   电源地
  5. //              VCC   接5V或3.3v电源
  6. //              SCL   接PA5(SCL)
  7. //              SDA   接PA7(SDA)            
  8. //              ----------------------------------------------------------------
  9. //  矩阵键盘接B1、B15、B6、B7      C0、C1、C2、C3
  10. //  4脚oled:SCL   接PA5,SDA   接PA7
  11. //////////////////////////////////////////////////////////////////////////////////

  12. #include "delay.h"
  13. #include "sys.h"
  14. #include "oled.h"
  15. #include "bmp.h"
  16. #include "key.h"
  17. #include "usart.h"



  18. int main(void)
  19.   {        u8 t;
  20.         unsigned int  key=0, key_new=0;
  21.         double inv=0.0, ina=0.0;
  22.         u32 adc_V_t = 0, adc_A_t = 0;
  23.         double adc_V = 0,adc_A = 0;
  24.         delay_init();                     //延时函数初始化         
  25.         NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级         LED_Init();                             //LED端口初始化
  26.         OLED_Init();                        //初始化OLED  
  27.         OLED_Clear()          ;
  28.         KEY_Init();
  29.         uart_init(9600);
  30.         
  31.         t=' ';
  32.                
  33.         OLED_ShowString(0,0,"INV:", 12);
  34.         OLED_ShowString(0,2,"R1:", 12);
  35.         OLED_ShowString(45,2,"R2:", 12);
  36.         OLED_ShowString(0,4,"OUTV:", 12);
  37.         OLED_ShowString(0,6,"COS:", 12);
  38.         OLED_ShowString(66,0,"INA:", 12);
  39.         OLED_ShowString(85,2,"R3:", 12);
  40.         OLED_ShowString(66,4,"OUTA:", 12);        
  41.         
  42. //        inv = input_in_v();
  43. //        ina = input_in_a();
  44.          
  45.         USART_TX_BUF_I[0] = 0x01;
  46.         USART_TX_BUF_I[1] = 0x03;
  47.         USART_TX_BUF_I[2] = 0x00;
  48.         USART_TX_BUF_I[3] = 0x01;
  49.         USART_TX_BUF_I[4] = 0x00;
  50.         USART_TX_BUF_I[5] = 0x02;
  51.         USART_TX_BUF_I[6] = 0x95;
  52.         USART_TX_BUF_I[7] = 0xCB;
  53.          
  54.         
  55.         USART_TX_BUF_V[0] = 0x01;
  56.         USART_TX_BUF_V[1] = 0x03;
  57.         USART_TX_BUF_V[2] = 0x00;
  58.         USART_TX_BUF_V[3] = 0x03;
  59.         USART_TX_BUF_V[4] = 0x00;
  60.         USART_TX_BUF_V[5] = 0x02;
  61.         USART_TX_BUF_V[6] = 0x34;
  62.         USART_TX_BUF_V[7] = 0x0B;
  63.         while(1)
  64.         {
  65.                 USART_RX_STA = 0;
  66.                 //电压
  67.                 for(t=0;t<8;t++)
  68.                 {
  69.                         USART_SendData(USART1, USART_TX_BUF_V[t]);//向串口1发送数据
  70.                         while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
  71.                 }
  72.                 while(USART_RX_STA != 0x8000);
  73.                
  74.                 adc_V_t = USART_RX_BUF[3]*16777216 + USART_RX_BUF[4]*65536 + USART_RX_BUF[5]*256 + USART_RX_BUF[6];
  75.                 adc_V = adc_V_t*0.00001;
  76.                 OLED_ShowChar(6*(0+4),0, ((int)adc_V)/10 + '0',12);
  77.                 OLED_ShowChar(6*(1+4),0, ((int)adc_V)%10 + '0',12);
  78.                 OLED_ShowChar(6*(2+4),0, '.',12);
  79.                 OLED_ShowChar(6*(3+4),0, ((int)(adc_V*10))%10 + '0',12);
  80.                 OLED_ShowChar(6*(4+4),0, 'v',12);
  81.                
  82.                
  83.                 USART_RX_STA = 0;
  84.                 //电流
  85.                 for(t=0;t<8;t++)
  86.                 {
  87.                         USART_SendData(USART1, USART_TX_BUF_I[t]);//向串口1发送数据
  88.                         while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
  89.                 }
  90.                 while(USART_RX_STA != 0x8000);
  91.                 adc_A_t = USART_RX_BUF[3]*65536 + USART_RX_BUF[4]*256 + USART_RX_BUF[5];
  92.                 adc_A = adc_A_t*0.00001;
  93.                 OLED_ShowChar(6*(0+15),0, (int)adc_A + '0',12);
  94.                 OLED_ShowChar(6*(1+15),0, '.',12);
  95.                 OLED_ShowChar(6*(2+15),0, ((int)(adc_A*10))%10 + '0',12);
  96.                 OLED_ShowChar(6*(3+15),0, ((int)(adc_A*100))%10 + '0',12);
  97.                 OLED_ShowChar(6*(4+15),0, 'A',12);
  98.                
  99.         }         
  100.         
  101. }

复制代码

电路原理图

电路原理图
屏幕截图 2023-09-10 141619.jpg

STM32单片机代码.7z

773.9 KB, 下载次数: 17, 下载积分: 黑币 -5

源码和文档

单相交流电子负载原理图.zip

70.2 KB, 下载次数: 15, 下载积分: 黑币 -5

原理图

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表