H桥PWM直流电动机驱动器(原理图、代码)

H桥PWM直流电动机驱动器(原理图、代码)


使用四个IR3205功率MOSFET和两个IR2104 MOSFET驱动器的完整的H桥DC电动机驱动器。从理论上讲,上述MOSFET可以处理高达80A的电流,但是,实际上,如果使用大型散热片或风扇将MOSFET的温度保持在尽可能低的水平,我们可以期望获得高达40A的电流。

IR2104(S)是高压,高速功率MOSFET和igbt驱动器,具有相关的高端和低端参考输出通道。专有的HVIC和锁存免疫CMOS技术可实现坚固的单片结构。逻辑输入与低至3.3V逻辑的标准CMOS或LSTTL输出兼容。输出驱动器具有高脉冲电流缓冲级,旨在最小化驱动器交叉导通。浮动通道可用于驱动工作在10至600伏特高压侧的N通道功率MOSFET或IGBT。”

关于IR2104该芯片既兼容3.3V逻辑电平又兼容5V逻辑电平。下图显示了该芯片的基本接线图。显然,芯片和负载(电动机)的电源不必相同,但是,两个电源共用一个公共地。

在这里插入图片描述

Arduino UNO驱动代码

/*H桥PWM直流电动机驱动代码
 * JC_Button库下载地址:https://www.arduino.cc/reference/en/libraries/jc_button/
 */
#include <JC_Button.h>
int PWM_Value;
byte Enable_Pin = 13;
byte PWM1_Pin = 11;
byte PWM2_Pin = 10;
byte PWM_Pin = 11;
Button UP(9, 25, true, true);
Button Down(8, 25, true, true);
Button Left(7, 25, true, true);
Button Right(6, 25, true, true);
void setup() {
    
    
pinMode(Enable_Pin, OUTPUT);
pinMode(PWM1_Pin, OUTPUT);
pinMode(PWM2_Pin, OUTPUT);
UP.begin();
Down.begin();
Left.begin();
Right.begin();
digitalWrite(Enable_Pin, LOW);
PWM_Value = 0;
analogWrite(PWM1_Pin, PWM_Value);
analogWrite(PWM2_Pin, PWM_Value);
}
void loop()
{
    
    
digitalWrite(Enable_Pin, HIGH);
UP.read();
Down.read();
Left.read();
Right.read();
if (UP.wasReleased() && PWM_Value < 250)
{
    
    
PWM_Value +=5;
}
if (Down.wasReleased() && PWM_Value > 5)
{
    
    
PWM_Value -=5;
}
if (Left.wasReleased())
{
    
    
PWM_Pin = PWM1_Pin;
analogWrite(PWM2_Pin, 0);
}
if (Right.wasReleased())
{
    
    
PWM_Pin = PWM2_Pin;
analogWrite(PWM1_Pin, 0);
}
analogWrite(PWM_Pin, PWM_Value);
}

在这里插入图片描述


  一些事情,当我们年轻的时候,无法懂得。当我们懂得的时候,已不再年轻。世上有些东西可以弥补,有些东西无法弥补。我们总要错过许多才知道,人生原来是这样的不同。

猜你喜欢

转载自blog.csdn.net/weixin_42880082/article/details/125038141
今日推荐