1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 使用Arduino开发板控制伺服电机

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

时间:2020-12-01 07:10:44

相关推荐

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

大多数情况下,直流电机控制的控制方法都是非常简单的(只需要连接电源和地)。伺服电机有一些不同,它使用3根线连接(电源、地和信号)将电机移动到某个旋转位置。该位置由信号线上发送的信号决定。一旦电机到达信号指定的位置,它将保持其位置,并抵抗试图将其从该位置移动的任何外力。该电阻称为伺服的转矩额定值,可在数据表中找到。

脉冲宽度调制PWM:

参考:PWM占空比控制电机转速

当我们使用Arduino编程时,这种伺服电机背后的理论并不太重要。我们可以导入一个库来满足大多数的PWM应用场景。该库称为Servo库,您可以在Arduino参考页查看的该库的所有不同函数,或者在太极创客上有相应的中文版关于库的介绍。

使用伺服库的基本操作如下:

(参考:【【太极创客】零基础入门学用Arduino 第二部分 meArm机械臂 合辑-哔哩哔哩】)

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

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

#include //import the servo libraryServo coreservo; //Name the Servovoid 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);*/}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。