搜索
bottom↓
回复: 50

IR2104驱动H桥 场效应管严重发热?

[复制链接]

出0入0汤圆

发表于 2010-8-21 09:20:44 | 显示全部楼层 |阅读模式

(原文件名:armok01165343.JPG)



如上图,我用ir2104驱动H桥场效应管,irf460,电机为250W电动三轮车电机额定电压24V,电池为24V,7.5A,不知为什么正反转没问题,就是场效应管全都发热,且下桥最热,已烧掉一个.(当然正反转时电流大也可能,场效应管功率不足也可能),请大大们指点!!!

驱动顺序如下:A2 A4先给高电平,A1 A3先给低电平,  2ms 后A1给高电平, A3给低电平,

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2010-8-21 09:43:45 | 显示全部楼层
管子的Rds=0.22Ω,Vdss=500V,Vdgr=500V用在这不大合适,管子内阻大,电机的电流也不小。
下桥最热是因为给占空比低,主要是下桥在续流
换IRF3205之类的试试吧

出0入0汤圆

 楼主| 发表于 2010-8-21 10:02:16 | 显示全部楼层
可irf3205是to 220封装,不知引角受的了吗?
还有我的电容用的是0.2uf的是不是小了点
,电源用不用加个1000uf的电解电容,15V至地要不加个1uf电解电容.

出0入0汤圆

 楼主| 发表于 2010-8-21 10:07:24 | 显示全部楼层
STP75n75怎么样内阻 0.013Ω,VD 75V,75A

出0入0汤圆

 楼主| 发表于 2010-8-21 15:29:19 | 显示全部楼层

(原文件名:20100821(003).jpg)

电源加1000uf电解电容,电机加40uf100V 起动电容,场效应管换成60N90(900V 60A),驱动电容换成2.2uf,结果同上,长时间运行发热严重,
只有一个半桥的上桥不热...

出0入127汤圆

发表于 2010-8-21 17:05:11 | 显示全部楼层
2104的死区时间内部已经确定  400ns   这个没办法改了

你这个60N90好像挺贵  不要这么大的吧  最多就100V的管子就够了   75n07就走够了  再在mos管ds做个吸收电路  

还有你那个ir2104的自举电容太小了  3脚关断脚吧    还有MOSFET的gs要加电阻  一般10K左右吧

出0入0汤圆

发表于 2010-8-21 17:14:09 | 显示全部楼层
楼主看看这个图.估计你会知道原因了.

(原文件名:QQ截图未命名.jpg)

出0入0汤圆

 楼主| 发表于 2010-8-21 18:18:51 | 显示全部楼层

(原文件名:armok01165343.JPG)

这样改行吗?请问IGBT管与场效应管驱动有什么驱别吗?

实验了一下,加上10k电阻效果不明显,好像将3角在不工作时关断有一点效果,关于吸收电路还未加(不知加二极管不还是阻容的好,如果加多大好)

出0入127汤圆

发表于 2010-8-21 21:22:18 | 显示全部楼层
你就那么点电压用的着igbt吗   你看rc不行了就做成rcd电路

出0入0汤圆

 楼主| 发表于 2010-8-21 21:54:35 | 显示全部楼层
谢谢,今天已学到很多拉,明天实验一下!!

出0入0汤圆

发表于 2010-8-21 23:25:01 | 显示全部楼层
应该先置A1和A3的电平,再把A2和A4置高电平。如果按原来的方式先把A2和A4置高电平,这时电机会进入制动状态,工作电流大,电机热,MOS管也热,你可以做个对比实验。

出0入0汤圆

发表于 2010-8-22 00:00:45 | 显示全部楼层
楼主,我用一款mos驱动器做200W BUCK同步斩波的时候,下管也是非常热,一直以为是电路问题,而且MOS驱动器是硬件主动检测MOS的GS电压,判断是否完全关断,再开通另一个mos的,一直对驱动器很放心。后来实在找不出其他问题啦,就去观察两个桥臂的GS波形,结果发现有直通现象,极度郁闷!建议你看看上下桥臂的GS波形,发出来大家看看。
我想说明的是,驱动器说是有死区时间,但是否能真实作用到MOS上,还是波形说了算话!
我是吃够了MOS驱动器的苦头啦。二十多块钱的LT驱动器,主动监测GS电压,不是固定的死区时间的,主动监测GS电压回落到安全值才会开启另一个MOS,还是有问题!

出0入0汤圆

 楼主| 发表于 2010-8-22 20:05:35 | 显示全部楼层
谢谢more指点的是,回去马上实验,
   可能否讲一上原理,不是说下桥先要通以便充电吗??????


关下X_BIKE 所述与我同感,下午实验了下加DS加上1n4007,3角接12V反向稳压管后接15V电源(当低于12V自动关闭2104用 ),驱动器仍然发热,换小功率 70W电机好些,但还是发热。

郁闷现在我那有示波器呀!!!

出0入0汤圆

发表于 2010-8-22 20:50:20 | 显示全部楼层
看了看IR2104的规格书,
3脚是SD端子,功能是:Logic input for shutdown,即逻辑电平关闭。也就是低电平时上下两臂MOS关闭,高电平时正常工作。
2脚是信号输入端,接受逻辑电平,输入高电平且SD=1时,高端MOS导通,低端MOS截止;输入低电平且SD=1时,高端MOS截止,低端MOS导通;死区时间则是内定的520ns。
   按MORE的指导,应该先给定IN端子电平,然后置SD=1。
   从lz的描述及选材来看,我认为MOS选型错误是主要原因。电机我理解是直流电机(lz没说明,我也没见过电动车电机,不过从驱动方式上看,显然是直流电机,希望我没理解错)

出0入0汤圆

 楼主| 发表于 2010-8-22 21:04:56 | 显示全部楼层

(原文件名:T1A0VxXcBjXXaVBdjX_114552.jpg_310x310[1].jpg)

就是它,直流电机250W 24V的,通减速马力超强。
场效应管试过irf460,G60N90,SPW47N60 各做板一块通实验现像也一样,都是下管热的很,有一个上管不热,余三管都发热。

出0入0汤圆

发表于 2010-8-22 21:05:12 | 显示全部楼层
回复【12楼】dfood
谢谢more指点的是,回去马上实验,
   可能否讲一上原理,不是说下桥先要通以便充电吗??????
关下x_bike 所述与我同感,下午实验了下加ds加上1n4007,3角接12v反向稳压管后接15v电源(当低于12v自动关闭2104用 ),驱动器仍然发热,换小功率 70w电机好些,但还是发热。
郁闷现在我那有示波器呀!!!
-----------------------------------------------------------------------

   建议更换四个MOS为IRF3205,DS间加1N4007完全没用,建议采用MBR1050即可。其实肖特基作用也不是很大,因为IRF2104是有死区控制的,续流主要靠MOS完成。开关频率应该不高,桥臂主要是起到换向的作用,所以,BST电容1uF应该足够了。BST二极管耐压要足够,如果电机供电电压只有24V的话,那么1N5819应该也可以了。MOS管栅极到HO或者LO端子之间电阻为0即可。
   lz可以发SCH文档上来,抽空帮你改改。

出0入0汤圆

 楼主| 发表于 2010-8-22 21:22:32 | 显示全部楼层
由于是新手,板子都是自己热转印的,所以只用CAD做了图,其它还未学。
望能指导!
电容用的2uf,蓝色竖格为场效应管所在位置,所有功率引线加粗。

(原文件名:PCB2104全桥-Layout2.jpg)

出0入0汤圆

发表于 2010-8-22 21:37:22 | 显示全部楼层
呵呵,精神可嘉,但做法不赞同。如果是我,想要做某件事情,如果必须要学会某样东西,就一定花些时间学会,起码也要入门。
    从PCB上看,没有明显错误,性能达不到,主要因素应该还是MOS选型上。还是建议更换为4个IRF3205,栅极电阻改成0(用导线直通就可以了)。

出0入0汤圆

 楼主| 发表于 2010-8-22 21:42:37 | 显示全部楼层
谢谢LDCH指导!!

出0入0汤圆

发表于 2010-8-23 01:31:17 | 显示全部楼层
当SD置0时,上下桥都关闭,这时电机可以靠惯性自由滑动。SD置高以后,如果两个下位管或两个上位管同时导通,那么就相当于短路了电机的两端,电机转动时产生的自感能量会迅速消耗在电机和MOS管上,产生制动的效果,电机热和MOS管热也就不奇怪了,在电动车上使用时应避免这种现象发生。你可以做个简单的实验,用手转动电机的轴,短路电机的两端和断开时的效果差别会很大的。

出0入0汤圆

发表于 2010-8-23 08:34:52 | 显示全部楼层
more说的对,这个情况必须考虑,所以按PCB图上的解法,就会出现这种情况。
   另外,IR2104的SD端子的逻辑高电平是要大于3V,接稳压管实现欠压关闭效果不是很好,稳压管的转折特性不够硬。还是按more的要求,去掉稳压管,把SD也接出来通过MCU控制。为确保MCU输出浮空或者连线接触不良的时候不会出现异常情况,IN和SD(2脚和3脚)端子要分别对地接10K下拉电阻比较保险。
   还需要注意2脚输入高电平时,应该不能一直高电平,需要一定的占空比来维持Vb电压始终高于Vs,满足上臂MOS导通的需要。

出0入0汤圆

发表于 2010-8-23 08:59:24 | 显示全部楼层
做这类测试时,用个有工作电流显示的电源就比较方便了。可以直观看出你的电路是否正常

出0入0汤圆

 楼主| 发表于 2010-8-23 20:30:41 | 显示全部楼层
more,说的有道理,我再试试,刚试过上管同时导通,当运行时一个下管开,结果下管不热了上管热.

出0入0汤圆

 楼主| 发表于 2010-8-23 21:33:14 | 显示全部楼层
两个sd同时接一个IO口以控制开关

实验结果,大小功率70W蜗杆电机能过,下管仍有微量温升但不烫手,
在大功率250W实验,下管极烫,上管烫手,总体比SD全开时要好些,其马运行上2-3分钟不会烧管。
频率加大到20KHZ左右
电机运行如同more所说,是没有止动拉。。。。
在停机后会转许久才停,。。。。。
总结:1、如LDCH所说是场效应管功率不足
      2、如more所说,起动顺序为
SD开
停500us
开一侧上管,下管关
运行
SD关闭。

      3、如果需制动sd开,同侧上桥或下桥开即可,这时场效应管很热。

出0入0汤圆

发表于 2010-8-23 21:50:32 | 显示全部楼层
如果只是调速的话PWM频率没必要太高,太高了只会增加MOS管的功耗,一般1K以下就可以了。要想让电机停止的快的话,可以人为地加入制动。驱动250W的电机本身电流就很大了,正常情况下也需要给MOS管加散热片了。

出0入0汤圆

 楼主| 发表于 2010-8-23 22:54:27 | 显示全部楼层
最终实验成功了,半年了不容易呀!!谢谢楼上LDCH和 more等各位大大们帮忙!!
    最后是占空比和SD问题,
    占空比要在10%以下,太高了场效应管会很热,具体频率可能和电容有关,电容升压电容大的如我的2uf占空比要大些10%,如果是0.2uf可能3%即可.频率不能太高,也不能低1K比较适合,在调试时我试的是充电时间和占空比一样,即10%时间sd开,10%时间上管开,80%时间SD关.结果实验大约十五分钟未见温升.(关于电源如LDCH所说加上滤波电路会很好,如果没有整个1000uf的大电容是必须),如需止动将sd开即可.
    再次谢谢大大们!

出0入0汤圆

发表于 2010-8-24 21:36:00 | 显示全部楼层
收藏,收藏,一定收藏

出0入0汤圆

发表于 2011-10-18 13:55:19 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-18 17:02:21 | 显示全部楼层
mark

出0入4汤圆

发表于 2011-10-24 16:57:08 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-12-15 09:43:16 | 显示全部楼层
mark,慢慢学习

出0入0汤圆

发表于 2012-1-10 20:52:16 | 显示全部楼层
学习一下

出0入0汤圆

 楼主| 发表于 2012-1-10 21:23:11 | 显示全部楼层
回顾老贴感慨颇多,首先感谢ldch ,我现在的99se入门拉,下面是汇报成果.
至于实验多年的大功率驱动板,我觉的没有成功的原因有以下几方面:
1\是功率过大在双电机起动时电流过大.一般电池受不了.合计500W,以24V算约20A电流,所以一定要软件分时驱动.相差几百毫秒就行.
2\PWM给的不对,当时是用basicom软延时,几十毫秒一停,很没准,可能造成H桥上下桥短时导通.
3\给IR2104供电的15V电压取自同一电池,在起动时可能达不到15V造成ir2104过热.
现在采用ICC将程序列下,刚转ICC请ldch等大虾请教!!
/******************************************************
           
    器件参数:ATMega8,内部8.0000Mhz               
        实现功能:ATMega8与电脑串行通讯              
        现象描述:采用VC上位机控制。
        编译环境:ICC-AVR application builder
                                                                                             
*******************************************************/

#include <iom8v.h>
#include <macros.h>

/***********宏定义*************/
#define  uchar unsigned char
#define  uint unsigned int
#define fosc 8000000//系统时钟频率
#define baud 9600//串口通讯波特率
uchar FLAG;                                //按键2标志
uchar PC_COMMAND;                //PC发出的当前命令
uchar RX_BUFFER[16];        //存放接收数据的数组
uchar RX_index;                        //存放接收数据的个数
uint S;                       
//宏定义

/******************************/
void Delayus(uint J)
{
  uint K;
   J=J*5/4;
   for(K=0;K<J;K++);
       //1141是在8MHz晶振下,通过软件仿真反复实验得到的数值
}

/****************************/
void Delayms(uint ms)
{
   unsigned int i,j;
   for(i=0;i<ms;i++)
     for(j=0;j<1141;j++);//1141是在8MHz晶振下,通过软件仿真反复实验得到的数值
}
/*******************************************
函数名称: IO口初始化函数
功    能: 实现IO初始化
参    数: 无
返 回 值: 无
/********************************************/
void port_init(void)
{

  PORTB = 0xFF;
  DDRB  = 0xFF;
  PORTC = 0b00001111;
  DDRC  = 0b11111111;
   DDRD =0X02;      //RXD输入,TXD输出
  PORTD=0XFF;

  
}

/***********************************************************************
函数名称: 串口初始化函数
功    能: 实现串口初始化
参    数: 无
返 回 值: 无
/*********************************************************************/
void USART_Init(void)
{
   UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);//允许收发,打开接收中断
UBRRL=(fosc/16/(baud+1))%256;//设置波特率寄存器
UBRRH=(fosc/16/(baud+1))/256;
UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);//8位数据+1位STOP
UCSRB = 0x98;  //允许接收和发送,使能接收中断
}

/*******************************************
函数名称: 串口发送一个字节函数
功    能: 实现串口发送一个字节
参    数: data--串口要发送的一个字节
返 回 值: 无
/********************************************/
void USART_Transmit(uchar data) //发送采用查询方式
{
  while(!(UCSRA&(1<<UDRE)));//上次发送有没有完成
UDR=data;                       //发送数据
}

/*******************************************
函数名称: 串口发送数组函数
功    能: 实现串口发送一个数组
参    数: *ptr--串口要发送的数组的首地址
返 回 值: 无
/********************************************/
void USART_Transmit_string(uchar *ptr)
{
while (*ptr)
  {
    USART_Transmit(*ptr++);
  }
USART_Transmit(0x0D);
USART_Transmit(0x0A);  //结尾发送回车换行
}

/*******************************************
函数名称: 串口接收一个字节函数
功    能: 实现串口接收一个字节(数据接收,查询方式)
参    数: 无
返 回 值: 无
/********************************************/
/*uchar USART_Receive(void) //接收采用查询方式
{
  while (!(UCSRA & (1<<RXC)));                // 等待接收数据
  return UDR;                                      //获取并返回数据
}
*/

/*******************************************
函数名称: 串口接收中断函数
功    能: 实现串口接收一个字节(数据接收,中断方式)
参    数: 无
返 回 值: 无
/********************************************/
#pragma interrupt_handler uart0_rx_isr:19
void uart0_rx_isr(void)
{
//uart has received a character in UDR
PC_COMMAND=UDR;
switch(PC_COMMAND)
        {
                case 'A':        //0x30 ASCII '0'
                        S=1;
                        break;
                case 'B':
                        S=2;
                        break;
                case 'C':
                        S=3;
                        break;
                case 'D':
                        S=4;
                        break;
                case 'Q':
                        S=5;
                        break;
                               
        }
        /*
          注意,使用put_s函数发送数据需要一定的时间,如果输入数据的速度过高将会导致数据丢失
          所以,一般建议中断服务程序的处理时间尽量的短,只做采集数据和设标志位,命令的处理交由主程序来完成
          这里只是示范简单的命令处理
        */
       
       
}

/*******************************************
函数名称: 串口接收命令显示函数
功    能: 实现将串口接收的之前的10个命令显示出来
参    数: 无
返 回 值: 无
/********************************************/
void pro_coammand(void) //多字节命令的处理程序
{
        unsigned char i;
        if (RX_index>=10)
        {
            UCSRB&= ~(1<<RXCIE);        //关断USART接收中断
                USART_Transmit(0x0D);
                USART_Transmit(0x0A);  //发送回车换行
                USART_Transmit_string("Hello! 你之前输入的命令列表是:");
                for (i=0;i<RX_index;i++) USART_Transmit(RX_BUFFER);
                USART_Transmit(0x0D);
                USART_Transmit(0x0A);
                USART_Transmit(0x0D);
                USART_Transmit(0x0A);  //发送回车换行
                RX_index=0;                                //清零
            UCSRB|= (1<<RXCIE);        //打开USART接收中断
        }
}



void main(void)
{

  port_init();
  USART_Init();
  S=5;
   USART_Transmit_string("前W,后S,左A,右D,停Q");
  SEI();//开中断       
  while(1)
    {
        switch(S)
        {
                case 1:       
               
                        PORTC =0b00111111;
                        Delayus(1200);
                        PORTC =0b00011011;
                        Delayus(800);
                        break;
                case 2:
                        PORTC =0b00111111;
                        Delayus(1200);
                        PORTC =0b00101101;
                        Delayus(800);
                        break;
                case 3:
                        PORTC =0b00111111;
                        Delayus(1200);
                        PORTC =0b00011101;
                        Delayus(800);
                        break;
                case 4:
                        PORTC =0b00111111;
                        Delayus(1200);
                        PORTC =0b00101011;
                        Delayus(800);
                        break;
                case 5:
                        PORTC =0x00;
                        break;
                               
        }   
}
}

出0入0汤圆

 楼主| 发表于 2012-1-10 21:23:55 | 显示全部楼层

电机驱动控制ISP下载板(485通信) (原文件名:1.JPG)


16路舵机控制ISP下载板(485通信) (原文件名:2.JPG)

出0入0汤圆

 楼主| 发表于 2012-1-10 22:34:01 | 显示全部楼层
自定义一个PWM格式,有点像 basicom的PLUSE 函数
//ICC-AVR application builder : 2009-3-11 14:28:07
// Target : M8
// Crystal: 8.0000Mhz

#include <iom8v.h>
#include <macros.h>
#define  DK  2
#define  CK  3
#define  BK  1
int temp;
int P;
void port_init(void)
{
PORTB = 0x00;
DDRB  = 0x00;
PORTC = 0x00; //m103 output only
DDRC  = 0x00;
PORTD = 0x00;
DDRD  = 0x00;
}

//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();

MCUCR = 0x00;
GICR  = 0x00;
TIMSK = 0x00; //timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}

/************************************
Name         :小延时程序
Target       :atmega8
Crystal(晶振):4M
************************************/
/*void delay_us(int time)
{   //微秒延时  
do
{
  time--;
}       
  while (time>1);
}       
*/  
void delay_1us(void)
{
asm("nop");
asm("nop");
asm("nop");
asm("nop");
}
void delay_us(unsigned int n)
{   //4 M时 微秒延时  
unsigned int i=0;
for(i=0;i<n;i++)
delay_1us();

}       
/*
void delay_us(int J)
{
  int K;
   J=J*5/4;
   for(K=0;K<J;K++);
       //1141是在8MHz晶振下,通过软件仿真反复实验得到的数值
}*/
/**********

void delay()
{
unsigned int i;//最大值65536
for (i=0;i<40000;i++)
{;}
}
***********/
/***********************************************************
用    途:串口发送接收程序
Taget   :mega8
crystal :8M
介    绍:
**********************************************************/
//晶振和波特率
#define fosc 4000000
#define baud 2400
//UART初始化函数
void init_uart()
{
UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);//允许收发,打开接收中断
//UBRRL=(fosc/16/(baud+1))%256;//设置波特率寄存器
//UBRRH=(fosc/16/(baud+1))/256;
UBRR=103;//*4M 2400 值

UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);//8位数据+1位STOP
}
//字符输出
void uart_putchar(unsigned char c)
{
while(!(UCSRA&(1<<UDRE)));//上次发送有没有完成
UDR=c;
}
//字符输入
unsigned char uart_getchar()
{
while(!(UCSRA&(1<<RXC))){;}//有没有接收到数据
return UDR;
}
//带回车的字符串输出
int uart_print(char *s)
{
while(*s)
{
  uart_putchar(*s);
  s++;
}
uart_putchar(0x0a);//回车换行
uart_putchar(0x0d);
return 1;
}
//不带回车换行的字符串输出
void uart_prints(char *s)
{
while(*s)
{
  uart_putchar(*s);
  s++;
}
}
////PWM 自定义
//pwm()
//?
/* if(i=='B')
{
DDRB|=(1<<a);
PORTB|=(1<<a);
delay_us(b);
DDRB^=(1<<a);
PORTB^=(1<<a);
delay_us(d-b);
};*/

//void dfood_pwm(unsigned int i,int a,unsigned int b,unsigned int d)
void dfood_pwm(unsigned int i,int a,unsigned int b)
{
switch(i)
        {
                case 1:        //0x30 ASCII '0'
DDRB|=(1<<a);
PORTB|=(1<<a);
delay_us(b);
//DDRB^=(1<<a);
PORTB^=(1<<a);
//delay_us(d-b);
                        break;
                case 2:
DDRD|=(1<<a);
PORTD|=(1<<a);
delay_us(b);
//DDRD^=(1<<a);
PORTD^=(1<<a);
//delay_us(d-b);
                        break;
                case 3:
DDRC|=(1<<a);
PORTC|=(1<<a);
delay_us(b);
//DDRC^=(1<<a);
PORTC^=(1<<a);
//delay_us(d-b);
                        break;
                }
               
}

//}


//接收中断
#pragma interrupt_handler uart_rec_int:iv_USART_RX
void uart_rec_int()
{
unsigned char i;
i=UDR;
switch(i)
        {
                case 'A':        //0x30 ASCII '0'
        temp=1;
                        break;
                case 'W':
                        temp=2;
                        break;
                case 'S':
                        temp=3;
                        break;
                case 'D':
                        temp=4;
                        break;
                case 'Q':
                        temp=5;
                        break;
                case 'K':
                        if(P!=100)P-=100;
                       
                        break;
                case 'M':
                        if(P!=2000)P+=100;
                       
                        break;
                       
                       
                               
        }
/* uart_putchar(i);
uart_putchar(0x0a);//回车换行
uart_putchar(0x0d);*/
}
//**************************************************************************

void main()
{

port_init();
init_devices();
  init_uart();
  P=300;
     PORTD=(1<<2);//开串口
  uart_print("前W,后S,左A,右B,刹车Q,快K,慢M");

while(1)
{ DDRD=0xff;//设为输出
      PORTD=(0<<2);//开串口
  switch(temp)
        {
                case 1:       
                DDRC=0xff;//设为输出
        PORTC=0b00111111;
                dfood_pwm(CK,1,P);//c口4,1角输出PWM波
                dfood_pwm(CK,4,P);
                delay_us(2000-P);//延时时间
               
               
                        break;
                case 2:
                DDRC=0xff;//设为输出
        PORTC=0b00111111;
                dfood_pwm(CK,2,P);//c口2,5角输出PWM波
                dfood_pwm(CK,5,P);
                delay_us(2000-P);
                break;
                case 3:
                DDRC=0xff;//设为输出
        PORTC=0b00111111;
                dfood_pwm(CK,2,P);//c口4,2角输出PWM波
                dfood_pwm(CK,4,P);
                delay_us(2000-P);
                        break;
                case 4:
                DDRC=0xff;//设为输出
        PORTC=0b00111111;
                dfood_pwm(CK,1,P);//c口5,1角输出PWM波
                dfood_pwm(CK,5,P);
                delay_us(2000-P);
                        break;
                case 5:
                DDRC=0xff;//设为输出
        PORTC=0b00001001;
                break;
                               
        }

   
  
}
}

出0入0汤圆

发表于 2012-4-26 18:43:53 | 显示全部楼层
楼主,我是菜鸟,想用2104做一个MOSFEET的驱动,驱动一个大电机(RS-540SH)标称电压7.2V, 工作电压6-9V

直径35MM, 长50MM, 轴径3.17MM.

重约160克.

空载电压对应转速及电流

3V    子8400转   电流1.30A

4.5V   12400转   电流1.47A

6V     16500转   电流1.60A

7.5V   20800转   电流1.70A

9V     33100转   电流2.50A
我们用的是7.2V的电压,请问应该怎样做啊?麻烦指教一下,最好给个电路图。万分感谢!!

出0入0汤圆

发表于 2012-7-23 22:57:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2013-12-12 23:46:10 | 显示全部楼层
mark               

出0入0汤圆

发表于 2014-6-21 20:16:53 | 显示全部楼层
标记一下!!

出0入0汤圆

发表于 2014-9-23 22:16:50 | 显示全部楼层
学习了。。。。

出0入0汤圆

发表于 2014-9-24 10:53:25 | 显示全部楼层
有没有加死区?

出0入0汤圆

发表于 2014-9-28 10:04:45 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2014-10-1 23:46:43 | 显示全部楼层
mark            

出0入0汤圆

发表于 2014-10-11 17:38:26 | 显示全部楼层
mark!!!!!!

出0入0汤圆

发表于 2014-10-13 14:22:56 | 显示全部楼层
这两天在学习H桥,看了楼主的帖子收益良多

出0入91汤圆

发表于 2015-11-4 20:29:44 | 显示全部楼层
ir2104的弊端就是 一个周期内要进行充电操作,如果不利用好SD信号的话,  电机会不停的工作在启动,制动情况,直接导致 电机发热.   现在也碰到了类似的问题了

出0入0汤圆

发表于 2015-11-28 19:58:00 | 显示全部楼层
mark,有空学习一下

出0入0汤圆

发表于 2017-12-7 19:00:58 | 显示全部楼层
驱动的问题吧

出0入0汤圆

发表于 2017-12-8 10:12:07 来自手机 | 显示全部楼层
可以学习学习!!!

出0入0汤圆

发表于 2018-1-8 13:34:37 | 显示全部楼层
学习了!

出0入0汤圆

发表于 2019-5-10 09:30:55 | 显示全部楼层
MARK
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 01:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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