小弟最近開始學做一個基于51單片機的循跡小車,卻在第一步遇上了麻煩。
我用L298n步進電機驅動
OUT1,OUT2接左邊電機;
OUT3,OUT4接右邊電機;
然后寫了一個讓兩個電機轉動的程序:
#include <reg51.h>
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit IN3=P1^2;
sbit IN4=P1^3;
//延時函數
void delay(unsigned int k)
{
unsigned int x,y;
for(x=0;x<k;x++)
for(y=0;y<2000;y++);
}
/************************************************************************/
/*--主函數--*/
void main(void)
{
delay(100);
while(1)
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
}
}
問題是接好線后電機不轉了。
對于左邊的電機,我將IN1和IN2分別與P1.0和P1.1相接,電機不轉;
當我將其中一個斷開(只將IN1與P1.0相接,IN2斷開),電機就轉動了;反過來只接IN2也是這樣。
IN1,IN2其中任意一個與單片機的IO口的任意一只引腳相接,另外一個斷開,都會讓電機轉動;
兩個同時接上就不動了。IN3和IN4的情況也是這樣。
|