(四)arduino进阶:舵机的使用方法

释放双眼,带上耳机,听听看~!

舵机是一种旋转执行器或线性执行器,可以精确控制角度或线性位置,速度和加速度。它由一个电机和一个传感器组成,用于位置反馈。简单来说,它更像是一个可以用户指定的角度旋转的步进电机。 伺服电机有多种尺寸,具体取决于它们可以承载的负载。

第一步 准备材料

(四)arduino进阶:舵机的使用方法
  • 舵机
  • Arduino uno
  • 若干杜邦线

第二步 原理介绍

(四)arduino进阶:舵机的使用方法

Micro Servo是一款微型舵机,重量约为9g,可轻松承载高达200g的负载。它可以在大量的小型项目中使用,如机器人,自动鱼食喂食器等。

舵机的技术规格如下: 尺寸:23x11x29毫米 电压:3V至6V DC 重量:9克 速度:0.12秒/ 60(4.8V) 扭矩:1.6千克 – 厘米

舵机是一种精确控制角度的装置,您可以使用任何舵机的代码,硬件或库来控制这些舵机,主要是控制舵机的旋转角度。一般在Arduino里,舵机控制都有一个库,直接操作库,传入一定的角度值,舵机就会旋转到指定的角度。

第三步 电路连接

(四)arduino进阶:舵机的使用方法
(四)arduino进阶:舵机的使用方法

连接舵机非常简单: 红色线连接ardunio的VCC。 黑色或褐色线连接arduino的GND。 橙色或黄色是信号线连接arduino的数字引脚。图中连接的9号脚。

第四步 上传代码

Arduino IDE内置了两个不同功能的Servos测试示例。它们是旋钮和扫描。对于这个例子,我正在使用扫描程序测试舵机。

您还可以使用串行监视器中提供的输入更改代码并控制舵机。为此,您需要创建一个变量,该变量将保存您输入的角度值。

下面是简单的程序:

[scu name=”arduino-ide-post” platform=”arduino:avr:uno”]

#include  <Servo.h>

Servo myservo;  // 创建舵机对象来控制伺服
//大多数电路板上都可以创建12个舵机对象

int pos = 0;    // 用于存储舵机角度的变量

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees// in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}

[/scu]

上面的程序需要使用舵机的库,下面是舵机库下载:

第五步 验证与测试

(四)arduino进阶:舵机的使用方法

输出:
如果使用的是上面的简单程序,您将看到如上图所示的内容,舵机将以全方位的方式旋转。
如果要手动控制舵机,可以打开串行监视器并输入0到180之间的值。您可以看到舵机从参考点旋转到你想要的角度。

给TA打赏
共{{data.count}}人
人已打赏
ArduinoArduino-入门免费项目

(二十)arduino入门:蜂鸣器的使用

2018-9-27 15:56:26

ArduinoArduino-进阶

(五)arudino进阶:LM35温度传感器使用方法

2018-9-27 17:11:47

4 条回复 A文章作者 M管理员
  1. 【fly 】v.

    支持

  2. 七七蔻

    赞赞

  3. yulong

    太好了

  4. 伐木累

    谢谢

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
'); })();