使用arduino,L298N模組驅動電機
阿新 • • 發佈:2019-02-07
四、說明
L298N有兩個供電,一個是邏輯控制部分的5伏供電,一個是電機的供電,好像能到46伏,實物圖中標註的12伏是給電機供電的,所以不接的話,電機沒電,不轉。板上有一個5伏穩壓管,如果板上5伏使能有效的話,L298N的邏輯部分供電就從這個穩壓管獲得,這樣就不用外接5伏,此時還可以將得到的5v穩壓跟別的模組供電。如果外接5伏的話,板上5伏使能就要斷開無效了。 穩壓管的輸入和輸出有個壓差,如果給電機的供電太低的話(比方說只有5v),通過壓差後可能會降低太多,那麼邏輯控制部分所要求的5v電壓可能就達不到了,此時需要將板上5伏使能斷開,然後外接5v的電源來給邏輯控制部分供電。五、arduino測試程式
//motor A int IN1 = 1; // IN1 connected to pin 1 int IN2 = 2; int ENA = 3; unsigned long time = 1200; //delay time int value = 128; // the duty cycle void setup(){ //sets the pin as output pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); //set direction; digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); } void loop(){ analogWrite(ENA, value); delay(time); }
六、51微控制器測試程式
int main() { unsigned char pd=1; //用於控制脈衝訊號正反 //配置PORTA所有埠為輸出模式 DDRA=0xff; //PORTA第6 7位置為1 使能電機驅動板B口 PORTA |= (1<<6); PORTA |= (1<<7); //控制電機B口 使反轉 PORTA |= (1<<4); PORTA &= ~(1<<5); //此處只測試電機B口 電機B口輸出佔空比為50%的脈衝 while(1) { delay20ms(); if(pd) { pd=0; PORTA &= ~(1<<6); //B口使能位清0 PORTA &= ~(1<<7); //B口使能位清0 }else { pd=1; PORTA |= (1<<6); //B口使能位置1 PORTA |= (1<<7); //B口使能位置1 } } }