搜索
bottom↓
回复: 0

maxon直流电机一直发烫

[复制链接]

出0入0汤圆

发表于 2014-3-3 10:18:21 | 显示全部楼层 |阅读模式
最近新学51单片机,编了个程序,但是电机发烫的很厉害。
用的是电机驱动模块,上面写着给a1位置1,a2位置0,pa位用于pwm波控制。
然后就编了以下程序,求大神指点


/*程序名:直流减速电机速度控制第一版*/
/*晶  振:12Mhz*/
/*直流电机的PWM波控制,可达到两个同样大小的反向速度*/
#include <reg52.h>       
#include <intrins.h>

sbit A1=P1^1;
sbit A2=P1^2;
sbit pwm=P1^3;

//--定义一个全局变量用于中断次数的统计--//
unsigned char timer1;
//--定义定时器开启函数--//
void timeconfig();

//--定义正转函数--//
void zhengzhuan();
//--调速函数--//
void tiaosu();

/*******************************************************************************
* 函 数 名       : main
* 函数功能                 : 主函数
* 输    入       : 无
* 输    出       : 无
*******************************************************************************/

void main(void)
{         

        while(1)
        {

                        zhengzhuan();

        }               
}

/*******************************************************************************
*函 数 名:电机正转
*函数功能:长按K1不松手使电机以一定速度正转
*输    入:无
*输    出:无
*******************************************************************************/

void zhengzhuan()
{

    timeconfig();
        tiaosu();
                A1=1;
        A2=0;
               
               
}
/*******************************************************************************
*函数名  :timeconfig
*函数功能:设置开启定时器
* 输    入       : 无
* 输    出       : 无
*******************************************************************************/

void timeconfig()
{
        TMOD|= 0x10;   //设置定时计数器工作方式1为定时器

        //--定时器赋初始值//  
        TH1 = 0xFF;
        TL1 = 0xec;

       
        ET1 = 1;          //开启定时器1中断
        EA = 1;
        TR1 = 1;         //开启定时器       
}

/*******************************************************************************
* 函 数 名       : Time1
* 函数功能                 : 定时器1的中断函数
* 输    入       : 无
* 输    出       : 无
*******************************************************************************/

void Time1(void) interrupt 3    //3 为定时器1的中断号  1 定时器0的中断号 0 外部中断1 2 外部中断2  4 串口中断
{
        TH1 = 0xFF;  //重新赋初值
        TL1 = 0xec;
        timer1++;   
}

/*******************************************************************************
* 函 数 名       : 调速
* 函数功能                 : 电机调速
* 输    入       : 无
* 输    出       : 无
*******************************************************************************/

void tiaosu()
{         
                if(timer1>100)
                {
                        timer1=0;
                }
                if(timer1<20)
                {
                        pwm=1;
                }
                else
                {
                        pwm=0;
                }               
}

如果是电机直接接电池也不会烫的这么厉害,而且驱动模块也不烫,只有电机烫。新手小白不知道怎么回事。。。

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

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-8-26 13:14

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

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