智能车制作

标题: 电机驱动,求救 [打印本页]

作者: 萧明    时间: 2012-12-25 10:10
标题: 电机驱动,求救
我用H桥原理的驱动电路驱动电机,写了一个驱动电机的程序,下载到单片机里,电机不转啊,拔掉一个PWM接口电机才会转动,求大神帮忙看看程序哪里出问题了,谢谢
#include<reg52.h>
#define zxsd  40
unsigned char num1=0;
  
sbit motorpwm1=P2^1;     //电机PWM1输出口
sbit motorpwm2=P2^2;     //电机PWM2输出口
void init()        //中断初始化
{
  TMOD=0x11;       //定时器方式1
EA=1;        //开总中断
ET1=1;        //允许定时器1中断
TH1=(65536-50)/256;
TL1=(65536-50)%256;     
TR1=1;        //启动中断
     motorpwm1=0;      //IN1初始为低电平
    motorpwm2=1;      //IN2初始为高电平
}
void timer1() interrupt 3      //定时器1方式3
{
TH1=(65536-50)/256;
TL1=(65536-50)%256;
num1++;
if(num1>=zxsd)
    {
    motorpwm1=1;
    motorpwm2=0;
}
if(num1>=250)      //电机周期为10ms
{  
    motorpwm1=0;
    motorpwm2=1;
    num1=0;
}
}
void main()      //主函数
{
init();      //初始化
while(1);
}

作者: 青龙00    时间: 2012-12-25 11:41
楼主你的程序问题!给电机的时候是一个为0(或者1),另一端给PWM这样来实现正转(反转)!
你看你那程序,给的是在一个周期内正转一下反转一下,会转才真有问题
作者: 萧明    时间: 2012-12-25 12:26
青龙00 发表于 2012-12-25 11:41
楼主你的程序问题!给电机的时候是一个为0(或者1),另一端给PWM这样来实现正转(反转)!
你看你那程序, ...

额,我改程序试了一下,还是不行,
作者: 青龙00    时间: 2012-12-25 12:39
萧明 发表于 2012-12-25 12:26
额,我改程序试了一下,还是不行,

你用单片机一个普通的IO口给H桥的一端0,另一端给P2^1。

作者: qual9109    时间: 2012-12-25 14:08
如楼上
作者: 司马不在    时间: 2012-12-25 15:53
先得确定你用的驱动需要什么样的电平或者PWM!
作者: 萧明    时间: 2012-12-26 20:53
晕了,我都不懂两路PWM波控制电机正反转是什么原理了
作者: 401319719    时间: 2012-12-26 21:38
学习
作者: 萧明    时间: 2012-12-27 12:13
唉,努力吧
作者: 东坡守月    时间: 2013-1-15 16:51
这个软件真心觉得好难写,
作者: 卡军方    时间: 2013-3-18 21:23

作者: 总是忘记账号    时间: 2013-3-19 09:04
这儿给你说吧,电机若要实现正反转,那么现在的主流技术就是H桥式电路。
芯片需要两类信号,一个是PWM信号,一个是电机使能信号。
如此理解:PWM是油门,使能信号是档杆,
你油门输出但是不挂好档车子也不会动的。
而一般的桥式电路有两个档杆,必须要一个使能一个不使能,才能让电机转起来,至于说哪种组合是倒档哪种组合是前进挡,这个你跟你的电路有关系了。
作者: 小瓶子    时间: 2013-3-31 01:05
可以把那个用mos搭的电机驱动发给我吗,急求




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2