本帖最后由 pdc201 于 2010-10-15 12:03 编辑
学校要做个课程设计,要求控制电机正反转,看了L298N的资料觉得挺简单的,就用Protues仿真,但是实物做起来却不运行,怎么回事,请各位大虾帮忙看看~万分感谢。。。。。我的芯片VCC接正12V,VS接负极,单片机接5V,GND接负极,两边的负极想连。我是用单片机直接输入高低电平控制正反转的,是不是还要加些什么元件才能控制L298N呢~?~??~。。。。
还有请问是不是IN1 IN2其中有一个管脚一定要输出PWM信号才可以驱动电机?我的程序如下,因为不会PWM控制,所以只用了高低电平,能否帮忙修改修改。
#include<reg52.h>
int d;
sbit a=P2^0; //单片机控制芯片的IO口
sbit b=P2^1;
sbit e=P2^2;
#define uchar unsigned char
#define uint unsigned int
sbit KEY1=P3^2;
sbit KEY2=P3^3;
sbit KEY3 = P3^4; //独立按键
void delayms(uint);
void main()
{
while(1)
{
if(KEY1== 0)
{
delayms(10); // 去抖延时10ms
if(KEY1 == 0)
{
e=1; //电机正转
a=1;
b=0;
while(!KEY1); //等待按键释放
}
}
if(KEY2== 0)
{
delayms(10);
if(KEY2 == 0)
{
e=1; //电机反转
a=0;
b=1;
while(!KEY2);
}
}
if(KEY3== 0)
{
delayms(10);
if(KEY3 == 0)
{
e=0; //电机快速停止
a=b;
b=a;
while(!KEY3);
}
}
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms; i<0; i--) //i=xms 即延时约xms毫秒
for(j=110; j<0; j--);
} |