| |
回复
举报 | |
普通舵机有3根线:GND(黑)、VCC(红)、S ignal(黄),一般情况下,我们建议为舵机单独供电,此处实验为了图方便,用arduino为舵机供电。
3.实例1
需要的器材:
arduino控制器、舵机、杜邦线若干
首先将舵机如下图连接:
下载以下例程(程序可以在IDE>File>Examples>Servo>Sweep中找到,我只是做个中文介绍)
- #include <Servo.h>
- Servo myservo; //创建一个舵机控制对象
- // 使用Servo类最多可以控制8个舵机
- int pos = 0; // 该变量用与存储舵机角度位置
- /*~~~~~~~~~~~~~~~~~~~~~~~~~~华丽的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- void setup()
- {
- myservo.attach(9); // 该舵机由arduino第九脚控制
- }
- /*~~~~~~~~~~~~~~~~~~~~~~~~~~华丽的分割线 ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- void loop()
- {
- for(pos = 0; pos < 180; pos += 1) // 从0度到180度运动
- { // 每次步进一度
- myservo.write(pos); // 指定舵机转向的角度
- delay(15); // 等待15ms让舵机到达指定位置
- }
- for(pos = 180; pos>=1; pos-=1) //从180度到0度运动
- {
- myservo.write(pos); // 指定舵机转向的角度
- delay(15); // 等待15ms让舵机到达指定位置
- }
- }
4.实例2
需要的器材:
arduino控制器、舵机、电位器、杜邦线若干
首先将舵机如下图连接:
下载以下例程(程序可以在IDE>File>Examples>Servo>Knob中找到)
- #include <Servo.h>
- Servo myservo;
- //创建一个舵机控制对象
- int potpin = 0; //该变量用于存储用电位器读出的模拟值
- int val;
- // 该变量用与存储舵机角度位置
- void setup()
- {
- myservo.attach(9);
- // 该舵机由arduino第九脚控制
- }
- void loop()
- {
- val = analogRead(potpin); //读取电位器控制的模拟值 (范围在0-1023)
- val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
- myservo.write(val);
- // 指定舵机转向的角度
- delay(15);
- // 等待15ms让舵机到达指定位置
- }
5.其他驱动方法:
传送门:
arduino驱动舵机,不调用库函数:http://www.arduino.cn/thread-45-1-1.html