0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arduino篇—舵机的控制

冬至子 来源:X的创客课堂 作者:MRXY 2023-11-02 10:12 次阅读

课程目标

  • 舵机的组成与工作原理
  • 舵机的控制方式与应用

相关知识

**舵机:**是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统

**舵机的结构组成:**一般来讲舵机主要由以下几个部分组成,舵盘、减速齿轮组、位置反馈电位计、直流电机控制电路等。

图片

**舵机工作原理:**舵机安装了一个电位器(或其它角度传感器检测输出轴转动角度,控制板根据电位器的信息能比较精确的控制和保持输出轴的角度。这样的直流电机控制方式叫闭环控制,所以舵机更准确的说是伺服马达。

图片

舵机角度控制: 舵机转动的角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的。标准的PWM信号的周期固定为20ms,理论上脉宽分布应该在1ms到2ms之间,实际上可由0.5ms到2.5ms之间,脉宽与转角0°—180°相对应。不同厂家不同型号的舵机也会有所差异。

图片

电路搭建

所需材料:

ArduinoUNO * 1
SG90舵机 *1
杜邦线若干

电路连接:

舵机一般都外接三根线,分别用棕、红、橙三种颜色进行区分,由于品牌不同,颜色也会有所差异,棕色为接地线,红色为电源正极线,橙色为信号线。Arduino如果需要控制多个舵机,需要外接电源以及使用专用的舵机控制板。
图片

程序编写

练习一:舵机往返运动

编写控制程序,实现舵机在0°和180°间不间断转动。

图形化方式:

图片

代码方式:

/* 项目名称:舵机0~180°往返运动
 * 项目时间:2022.03.22
 * 项目作者:MRX
 */
#include < Servo.h >


Servo myservo;  // 定义Servo对象来控制
int pos = 0;    // 角度存储变量


void setup() {
  myservo.attach(6);  // 控制线连接数字6
}


void loop() {
  for (pos = 0; pos <= 180; pos ++) { // 0°到180°
    myservo.write(pos);              // 舵机角度写入
    delay(5);                       // 等待转动到指定角度
  }
  for (pos = 180; pos >= 0; pos --) { // 从180°到0°
    myservo.write(pos);              // 舵机角度写入
    delay(5);                       // 等待转动到指定角度
  }
}

练习二:可控的舵机

通过旋转电位器来控制舵机的转动角度。

电路连接:

舵机连接到UNO的6号脚,电位器连接UNO的A0。

图片

图形化方式:

图片

代码方式:

/* 项目名称:电位器控制舵机运动
 * 项目时间:2022.03.22
 * 项目作者:MRX
 */
#include < Servo.h >


Servo myservo;  // 定义Servo对象来控制
int pos = 0;
void setup() {
  myservo.attach(6);  // 控制线连接数字6
  pinMode(A0,INPUT);
}


void loop() {
  pos = map(analogRead(A0),0,1024,0,180);//将电位器读取的值映射为舵机选择角度
  myservo.write(pos);              // 舵机角度写入
  delay(5);                       // 等待转动到指定角度
}

程序分析:

用Arduino控制舵机一般有两种方法:

  • 通过Arduino的普通数字引脚产生占空比不同的方波,模拟产生PWM信号进行舵机控制。
  • 直接利用Arduino自带的Servo库进行控制。

Servo库常用函数:

  • Attach(接口)—设定舵机接口。
  • Write(角度)—用于设定舵机旋转的角度,可设定范围0°—180°。
  • Read()—用于读取舵机角度的语句,可理解为读取最后一条write()命令中的值。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电位器
    +关注

    关注

    14

    文章

    996

    浏览量

    66551
  • 控制电路
    +关注

    关注

    81

    文章

    1696

    浏览量

    135623
  • 舵机
    +关注

    关注

    17

    文章

    257

    浏览量

    40827
  • 伺服驱动器
    +关注

    关注

    22

    文章

    457

    浏览量

    31204
  • Arduino
    +关注

    关注

    187

    文章

    6456

    浏览量

    186115
收藏 人收藏

    评论

    相关推荐

    arduino学习笔记21 - 舵机控制实验

    舵机是什么这里就不详细介绍了,详情请看论坛里《舵机详解》帖子这里使用arduino duemilanove通过电位器控制一个舵机转动使用原件
    发表于 10-24 10:16

    Arduino2560 控制圆周舵机

    求各位大神,Arduino2560 控制圆周舵机怎么编写程序啊~急求~
    发表于 05-04 20:17

    Arduino如何利用红外感应控制舵机

    实现功能:当红外感应到人时,控制舵机转动180度参考:基于Arduino的多种方式控制舵机舵机
    发表于 06-28 11:17

    Arduino控制舵机的方法有哪几种啊?

    什么是舵机?用Arduino控制舵机的方法有哪几种啊?分别有什么优点?Arduino是如何控制
    发表于 07-21 06:36

    如何在arduino中利用电位器控制舵机

    如何在arduino中利用电位器控制舵机一.简介舵机是电机的一种,通上电并采取合适的方式就可以使他转动,而电位器是一种电路元件,通过扭动电位器的旋钮就可以让通过电位器的电压和电流发生变
    发表于 09-07 07:15

    arduino如何控制舵机

    arduino如何控制舵机
    发表于 01-19 06:04

    请问arduino如何控制两路舵机

    请问arduino如何控制两路舵机
    发表于 01-20 07:51

    如何通过Arduino对RC522刷卡控制舵机转动开门?

    如何通过Arduino对RC522刷卡控制舵机转动开门?
    发表于 01-24 07:06

    怎么用arduino控制舵机转动一定角度?

    怎么用arduino控制舵机转动一定角度
    发表于 10-18 06:16

    arduino如何控制舵机及详细步骤

    本文首先介绍了舵机控制方法,其次阐述了Arduino控制舵机的两种方法,最后详细阐述了arduino
    的头像 发表于 05-11 14:28 16.4w次阅读
    <b class='flag-5'>arduino</b>如何<b class='flag-5'>控制</b><b class='flag-5'>舵机</b>及详细步骤

    舵机控制原理是什么_舵机控制方法

    本文首先介绍了舵机工作原理,其次阐述了舵机控制原理及舵机的追随特性,最后介绍了舵机控制方法和
    的头像 发表于 05-30 11:13 14.2w次阅读
    <b class='flag-5'>舵机</b><b class='flag-5'>控制</b>原理是什么_<b class='flag-5'>舵机</b>的<b class='flag-5'>控制</b>方法

    使用Arduino为微控制器打造能用舵机控制的游戏平台

    本文主要介绍了使用Arduino为微控制器打造能用舵机控制的游戏平台.
    发表于 06-25 10:00 14次下载

    动手玩转Arduino---运动控制(直流电机步进电机舵机

    动手玩转Arduino---运动控制(直流电机步进电机舵机)(电源技术是中文核心吗)-该文档为动手玩转Arduino---运动控制(直流电机
    发表于 09-23 09:22 36次下载
    动手玩转<b class='flag-5'>Arduino</b>---运动<b class='flag-5'>控制</b>(直流电机步进电机<b class='flag-5'>舵机</b>)

    Arduino UNO驱动数字舵机

    Arduino UNO驱动数字舵机舵机数字舵机工作原理数字舵机与模拟舵机区别EMAX ES08M
    发表于 11-30 12:06 15次下载
    <b class='flag-5'>Arduino</b> UNO驱动数字<b class='flag-5'>舵机</b>

    通过Arduino控制舵机

    本文主要介绍通过Arduino控制舵机,步进电机以及循环的使用。对于Arduino控制舵机的方法
    发表于 03-23 13:52 1次下载
    通过<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b><b class='flag-5'>舵机</b>