ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用Arduino开发板控制伺服电机

2021-11-23 19:58:48  阅读:277  来源: 互联网

标签:伺服 servo 引脚 伺服电机 Arduino 开发板 write coreservo


大多数情况下,直流电机控制的控制方法都是非常简单的(只需要连接电源和地)。伺服电机有一些不同,它使用3根线连接(电源、地和信号)将电机移动到某个旋转位置。该位置由信号线上发送的信号决定。一旦电机到达信号指定的位置,它将保持其位置,并抵抗试图将其从该位置移动的任何外力。该电阻称为伺服的转矩额定值,可在数据表中找到。
脉冲宽度调制PWM:
参考:PWM占空比控制电机转速
当我们使用Arduino编程时,这种伺服电机背后的理论并不太重要。我们可以导入一个库来满足大多数的PWM应用场景。该库称为Servo库,您可以在Arduino参考页查看的该库的所有不同函数,或者在太极创客上有相应的中文版关于库的介绍。

使用伺服库的基本操作如下:
(参考:【【太极创客】零基础入门学用Arduino 第二部分 meArm机械臂 合辑-哔哩哔哩】)

  1. 将伺服电机命名servo,可以使用Servo [servo name];函数实现。
  2. 将伺服关联到一个引脚,这个引脚将是我们伺服的信号引脚,并使用 [servo name].attach([PinNumber]);
  3. 为伺服的位置创建一个变量(或者只是使用一个整数值)
  4. 现在我们可以使用[servo name].write([position integer])写入伺服的位置。

以Arduino Uno和一个小型爱好伺服为例,您的设置应该看起来像这样,请注意,我们使用的PWM引脚10,但可以使用任何PWM引脚!
在这里插入图片描述

#include  //import the servo library

Servo coreservo; //Name the Servo

void setup() {
  coreservo.attach(10); 
  /*Attach the named servo object to Digital IO 13, use following syntax: 
  servoname.attach(Pin#, minimum Pulse width (ms), maximum pulse width (ms)); 
  if you want to define the pulse widths for your motor*/

}

void loop() {
  coreservo.write(0);
  delay(200);
  coreservo.write(90);
  delay(200);
  coreservo.write(180);
  delay(200);
  /* If you wanted to read the angle of your servo at any given time, use servoname.read();
   * If you wanted to write a pulse of a certain width use servoname.writemicroseconds(value in microseconds);
   */
}

标签:伺服,servo,引脚,伺服电机,Arduino,开发板,write,coreservo
来源: https://blog.csdn.net/lihe4151021/article/details/121500987

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有