arduino控制多个舵机,舵机库(Servo)的使用

舵机3条线,红色接5V,黄色接GND,橙色是数据,插入接口。。

网上教程说用了servo库后,Arduino开发板9.10接口不能用analogWrite()语句。所以最好舵机接到这个接口上,免得浪费。

这里有个教程源码,一个直接转角度,一个控制PWM转角度(这个更加精准的,范围大500-2500)

============直接转角度=============

#include <Servo.h>                // 声明调用Servo.h库
Servo myservo;               //创建一个舵机,命名为myservo
Servo myservo2;               //创建一个舵机,命名为myservo2

                                         //还有舵机,继续创建,命令为Servo 名字
#define  SERVO_PIN  D7            //宏定义舵机控制引脚,命令为#define  舵机名字_PIN  端口 ;
#define  SERVO2_PIN  D6            //宏定义舵机控制引脚
 //上边的D7 D6是我的wemos D1开发板(挺便宜的)接口,一般adruino是数字                                                        

 

void setup(){ 
myservo.attach(SERVO_PIN);    // 将D6引脚与声明的舵机对象连接起来
 myservo2.attach(SERVO2_PIN);    // 将D7引脚与声明的舵机对象连接起来
}  

 

void loop(){ 

myservo.write(10);   //角度10。舵机转动命令为:舵机名.write(角度);
delay(1000);         //延时1秒
 myservo2.write(140);  //角度140
delay(1000);   

 

===========PWM==========

#include <Servo.h>                // 声明调用Servo.h库
Servo myservo;               //创建一个舵机,命名为myservo
Servo myservo2;               //创建一个舵机,命名为myservo2

                                         //还有舵机,继续创建,命令为Servo 名字
#define  SERVO_PIN  D7            //宏定义舵机控制引脚,命令为#define  舵机名字_PIN  端口 ;
#define  SERVO2_PIN  D6            //宏定义舵机控制引脚
 //上边的D7 D6是我的wemos.cc接口,一般adruino是数字                                                        

unsigned int PWM = 0;             //变量pwm用来存储舵机角度位置,PWM的500对应0度,2500对应舵机的最大角度
                                              //(180度舵机2500对应180度,270度舵机2500对应270度)

void setup(){ 
myservo.attach(SERVO_PIN);    // 将D6引脚与声明的舵机对象连接起来
 myservo2.attach(SERVO2_PIN);    // 将D7引脚与声明的舵机对象连接起来
}  

 

void loop(){ 

myservo.writeMicroseconds( 500);   //写入PWM,最小值500,最大值2500.。每个值的角度都不同。

                                                     //PWM转舵机角度命令:舵机名.writeMicroseconds(数值);
delay(1000);         //延时1秒

myservo2.writeMicroseconds( 500);

delay(1000);   

======舵机库(Servo)的函数==================

attach  连接舵机

write   角度控制

writeMicroseconds()   更精准的角度控制

read()  读上一次舵机转动角度

attached()  检查舵机及是否连接控制板上

detach()   断开舵机连接

  • 22
    点赞
  • 218
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
你可以使用 Arduino 控制多个舵机,以下是一种常见的方法: 1. 确保你的舵机Arduino 是兼容的。一般来说,舵机需要一个 PWM(脉冲宽度调制)引脚来控制,而 Arduino UNO 板上有几个可用的 PWM 引脚(如 3、5、6、9、10 和 11)。 2. 连接舵机Arduino。将每个舵机的信号线连接到一个 PWM 引脚,将舵机的电源线连接到 Arduino 的 5V 引脚或外部电源(如果需要更多电流)。同时,将舵机的地线连接到 Arduino 的 GND 引脚。 3. 在 Arduino IDE 中编写代码。首先,使用 `#include <Servo.h>` 引入舵机。然后,创建一个或多个 `Servo` 对象来控制每个舵机。在 `setup()` 函数中使用 `attach()` 方法将每个舵机对象与相应的引脚连接起来。在 `loop()` 函数中使用 `write()` 方法设置舵机的角度。 以下是一个示例代码,控制两个舵机在不同位置旋转: ```cpp #include <Servo.h> Servo servo1; Servo servo2; void setup() { servo1.attach(3); // 连接到引脚 3 servo2.attach(5); // 连接到引脚 5 } void loop() { servo1.write(90); // 设置舵机1角度为 90 度 servo2.write(180); // 设置舵机2角度为 180 度 delay(1000); servo1.write(0); // 设置舵机1角度为 0 度 servo2.write(90); // 设置舵机2角度为 90 度 delay(1000); } ``` 你可以根据需要添加更多的舵机对象和控制代码。 4. 将代码上传到 Arduino 板上,并观察舵机的动作。确保舵机连接正确,并根据你的需求调整角度和延迟时间。 这是一个简单的方法来控制多个舵机,你可以根据自己的项目需求进行适当的修改和扩展。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值