目录
4. 基于Arduino程序的伺服控制
Arduino对伺服电机控制的方式大致有两种。
PWM(脉冲宽度调制)是一种通过打开和关闭脉冲信号来控制电机的方法。通过直接使用PWM来控制伺服电机可以实现步进式转动。但是对于更复杂的项目,您可以使用Arduino IDE中包含的伺服电机库。
Arduino IDE → [File] → [Examples] → [10.StarterKit BasicKit] → [p05_ServoMoodindicator]
该程序可以根据模拟引脚0(A0)的输入值来更改伺服电机的角度。在模拟引脚上使用电位计或光学传感器等可变电阻,通过电阻值的变化来实现电机的转动。
伺服电机库函数
伺服电机库基于两种类型的指令:1)指定要发送到伺服电机的控制信号的引脚编号。2)指定伺服电机转动时的角度。
代码—示例
myServo.attach(9); //Specify the servo motor's signal pin
代码—示例
myServo.write(angle); //Move the servomotor to a specific angle
以下电路是使用FEETECH FS90微伺服电机的示例。该伺服电机的工作电压是6V。由于工作时的电流是200 mA,因此伺服电机由四节AA电池串联供电(6V)。
代码—示例
/*
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
https://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);
}
5. 伺服电机可以做什么?
让我们简要回顾一下使用伺服电机可以完成的工作。以下是两种典型工作方式:
I. 按下按钮
伺服电机可以控制转动的角度。这就是为什么伺服电机最适于开发按钮控制的机械系统。您可以像下面的视频中那样制作一些有趣的设备,并且也可以开发出仅通过一个按钮来实现控制的多种设备,如房间里的开关等等。
II. 移动物体
在使用Arduino控制电机的第三部分——制造一辆通过伺服电机控制转向的RC车中,我们使用LEGO制造了一台RC车。我们安装了通过伺服电机进行控制的转向部件。伺服电机可以用于多种器件,但是它通常用于“移动”部件/物体,例如移动机器人汽车或机器人手臂等。