Arduino對伺服馬達控制的方式大致有兩種。
PWM(脈衝寬度調製)是一種透過打開和斷路脈衝訊號來控制馬達的方法。透過直接使用PWM來控制伺服馬達可以實現步進式轉動。但是對於更複雜的項目,您可以使用Arduino IDE中包含的伺服馬達程式館。
Arduino IDE → [File] → [Examples] → [10.StarterKit BasicKit] → [p05_ServoMoodindicator]
該程式可以根據類比引腳0(A0)的輸入值來更改伺服馬達的角度。在類比引腳上使用電位計或光學感測器等可變電阻,透過電阻值的變化來實現馬達的轉動。
伺服馬達程式館函數
伺服馬達程式館基於兩種類型的指令:1)指定要發送到伺服馬達的控制訊號的引腳編號。2)指定伺服馬達轉動時的角度。
代碼—範例
1 |
myServo.attach(9); //Specify the servo motor's signal pin |
代碼—範例
1 |
myServo.write(angle); //Move the servomotor to a specific angle |
以下電路是使用FEETECH FS90微伺服馬達的範例。該伺服馬達的工作電壓是6V。由於工作時的電流是200 mA,因此伺服馬達由四節AA電池串聯供電(6V)。
代碼—範例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
/* Arduino Starter Kit example Project 5 - Servo Mood Indicator This sketch is written to accompany Project 5 in the Arduino Starter Kit Parts required: servo motor 10 kilohm potentiometer 2 100 uF electrolytic capacitors Created 13 September 2012 by Scott Fitzgerald http://www.arduino.cc/starterKit This example code is part of the public domain */ // include the servo library #include <Servo.h> Servo myServo; // create a servo object int const potPin = A0; // analog pin used to connect the potentiometer int potVal; // variable to read the value from the analog pin int angle; // variable to hold the angle for the servo motor void setup() { myServo.attach(9); // attaches the servo on pin 9 to the servo object Serial.begin(9600); // open a serial connection to your computer } void loop() { potVal = analogRead(potPin); // read the value of the potentiometer // print out the value to the serial monitor Serial.print("potVal: "); Serial.print(potVal); // scale the numbers from the pot angle = map(potVal, 0, 1023, 0, 179); // print out the angle for the servo motor Serial.print(", angle: "); Serial.println(angle); // set the servo position myServo.write(angle); // wait for the servo to get there delay(15); } |
讓我們簡要回顧一下使用伺服馬達可以完成的工作。以下是兩種典型工作方式:
伺服馬達可以控制轉動的角度。這就是為什麼伺服馬達最適於研發按鈕控制的機械系統。您可以像下面的視訊中那樣製作一些有趣的裝置,並且也可以研發出僅透過一個按鈕來實現控制的多種裝置,如房間裡的開關等等。
在使用Arduino控制馬達的第三部分——製造一輛透過伺服馬達控制轉向的RC車, we made an RC car using LEGO. 中,我們使用LEGO製造了一台RC車。我們安裝了透過伺服馬達進行控制的轉向零件。伺服馬達可以用於多種器件,但是它通常用於“行動”零件/物體,例如行動機器人汽車或機器人手臂等。