

代碼來源:http://www.cnblogs.com/starsnow/p/4579547.html
// ---------------------------------------------------------------------------- // hBridgeMotor.ino // // Created 2015-06-11 // By seesea <seesea2517#gmail#com> // ---------------------------------------------------------------------------- const unsigned char pinMotorCW = 5; // 接控制電機順時針轉的 H 橋引腳 const unsigned char pinMotorCCW = 6; // 接控制電機逆時針轉的 H 橋引腳 // 電機停轉 void motorStop() { digitalWrite(pinMotorCW, LOW); digitalWrite(pinMotorCCW, LOW); } // 電機順時針轉 void motorCW() { digitalWrite(pinMotorCW, HIGH); digitalWrite(pinMotorCCW, LOW); } // 電機逆時針轉 void motorCCW() { digitalWrite(pinMotorCW, LOW); digitalWrite(pinMotorCCW, HIGH); } void setup() { pinMode(pinMotorCW, OUTPUT); pinMode(pinMotorCCW, OUTPUT); } void loop() { motorCW(); delay(2000); motorCCW(); delay(1000); motorStop(); delay(1000); }
控制電機轉動速度:代碼來源:http://www.arduino.cn/thread-1198-1-1.html
pwmpin表示輸入的PWM波形的IO口,state指電機狀態(正轉或反轉),val是調速值大小0-255
analogWrite()
將模擬值(PWM波)輸出到管腳。可用於在不同的光線亮度調節發光二極管亮度或以不同的速度驅動馬達。調用analogWrite()后,該引腳將產生一個指定占空比的穩定方波,直到下一次調用analogWrite()(或在同一引腳調用digitalRead()或digitalWrite())。 PWM的信號頻率約為490赫茲。
#define motor1pin 5 #define motor1pwm 6 void setup() {} void loop() { motor(motor1pin,motor1pwm,1,180); //電機1以180的速度正轉,5、6口控制電機1 delay(1000); motor(motor1pin,motor1pwm,2,180); //電機1以180的速度反轉 delay(1000); } void motor(char pin,char pwmpin,char state,int val)//參數pin是輸入的高低電平的IO口,pwmpin表示輸入的PWM波形的IO口,state指電機狀態(正轉或反轉),val是調速值大小0-255 { pinMode(pin, OUTPUT); if(state==1) //當state為1時正轉 { analogWrite(pwmpin,val); digitalWrite(pin,1); } else if(state==2) //當state為2時反轉 { analogWrite(pwmpin,val); digitalWrite(pin,0); } else if(state==0) //當state為0時停止 { analogWrite(pwmpin,0); digitalWrite(pin,0); } }
