【嵌入式硬件】直流电机驱动相关

项目场景:

驱动履带车(双直流电机)前进、后退、转弯

问题描述

电机驱动MOS管烧毁

电机驱动采用IR2104S+TRH1R403NL的H桥方案(这是修改之后的图)

原因分析:

1.主要原因是4路PWM没有限幅,修改后限制在了最大96%

2.修改了部分硬件使其更合理

c 复制代码
/************************************************左杆油门控制前进后退*******************************************************/
		if(CH[2]>1200)  // 思翼遥控器通道3  992 272 1712  
	   {
			 PWM1=(int)(4*(CH[2]-992)+err_pwmval2);
			 if(PWM1>3456) PWM1=3456;
			__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_2,PWM1 );    //修改比较值,修改占空比
			__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, 100);     //修改比较值,修改占空比
			 
			 PWM2= (int)(4*(CH[2]-992)+err_pwmval1);
			 if(PWM2>3456) PWM2=3456;
			__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_4,PWM2);    //修改比较值,修改占空比
			__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_3, 100);     //修改比较值,修改占空比			
			}
		 else if(CH[2]<800)
		 {		 
			 
			__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_2, 100);    //修改比较值,修改占空比
			 PWM3=(int)(4*(992-CH[2])+err_pwmval2);
			 if(PWM3>3456) PWM3=3456;
			__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, PWM3);   //修改比较值,修改占空比
			 
			__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_4, 100);    //修改比较值,修改占空比
			 PWM4=(int)(4*(992-CH[2])+err_pwmval1);
			 	 if(PWM4>3456) PWM4=3456;
			__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_3, PWM4);   //修改比较值,修改占空比

		 }
		 else 
		 {
			__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, 1440+err_pwmval1);    //修改比较值,修改占空比
			__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_2, 1440);    //修改比较值,修改占空比
			 
			__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_3, 1440+err_pwmval2);    //修改比较值,修改占空比
			__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_4, 1440);    //修改比较值,修改占空比
		 }
		 
/************************************************右杆副翼控制旋转*******************************************************/		 
		 
		 if(CH[0]>1200)  //思翼遥控器通道1
	    {
        err_pwmval1=(int)(2*(CH[0]-992));   //1440
				err_pwmval2=-(int)(2*(CH[0]-992));
			}
		 else if(CH[0]<800)
		 {
        err_pwmval1=-(int)(2*(992-CH[0]));
				err_pwmval2=(int)(2*(992-CH[0]));
		 }
		 else 
		 {
        err_pwmval1=0;
				err_pwmval2=0;
		 }

解决方案:

1.修改限幅到96%,之前可以超出PWM满占空比。

2.栅极电阻从30R改为20R,SS14改为SS34,自举电容从10uF/25V改为4.7uF/25V

测试:

操作履带车持续运行半小时没有超过50度以上的发热源

大家有什么感兴趣的地方可以留言!我后期补充!

相关推荐
djarmy5 分钟前
使用定时器14(GPIOF9复用映射到TIM14_CH1)控制LED0闪烁实验
stm32·单片机·嵌入式硬件
GilgameshJSS40 分钟前
STM32H743-ARM例程29-HTTP
c语言·arm开发·stm32·单片机·http
学工科的皮皮志^_^1 小时前
锂电池充放电管理学习
经验分享·笔记·单片机·嵌入式硬件·学习·1024程序员节
点灯小铭1 小时前
基于单片机的滴速液位输液报警系统
单片机·毕业设计·课程设计·1024程序员节·期末大作业
CiLerLinux2 小时前
第三章 FreeRTOS 任务相关 API 函数
开发语言·单片机·物联网·c#
wanglong37138 小时前
STM32单片机PWM驱动无源蜂鸣器模块C语言程序
stm32·单片机·1024程序员节
清风66666610 小时前
基于单片机的故障检测自动保护智能防夹自动门设计及LCD状态显示系统
单片机·毕业设计·课程设计·1024程序员节·期末大作业
nuoyigui988914 小时前
modbus rtu通信协议总结
单片机
不脱发的程序猿15 小时前
如何检测和解决I2C通信死锁
stm32·单片机·嵌入式·1024程序员节
STC_USB_CAN_805115 小时前
STC32G144K246,高速PWM@240Mhz 运行测试
单片机·嵌入式硬件·51单片机