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