Arduino控制舵机的程序

Arduino控制舵机的程序,第1张

int readPin = 0 //用来连接电位器

int servopin = 7 //定义舵机接口数字接口7

void servopulse(int angle)//定义一个脉冲函数

{

int pulsewidth=(angle*11)+500 //将角度转化为500-2480的脉宽值

digitalWrite(servopin,HIGH) //将舵机接口电平至高

delayMicroseconds(pulsewidth) //延时脉宽值的微秒数

digitalWrite(servopin,LOW)//将舵机接口电平至低

delayMicroseconds(20000-pulsewidth)

}

voidsetup()

{

pinMode(servopin,OUTPUT)//设定舵机接口为输出接口

}

voidloop()

{

//读取电位器(传感器)的读数,接到3.3V,值范围从0到660左右

int readValue = analogRead(readPin)

//把值的范围映射到0到165左右

int angle = readValue / 4

//发送50个脉冲

for(int i=0i<50i++)

{

//引用脉冲函数

servopulse(angle)

}

}

#include <Servo.h>

Arduino自带的Servo函数及其语句,先来介绍一下舵机函数的几个常用语句吧。

1、attach(接口)——设定舵机的接口,只有9或10接口可利用。

2、write(角度)——用于设定舵机旋转角度的语句,可设定的角度范围是0°到180°。

3、read()——用于读取舵机角度的语句,可理解为读取最后一条write()命令中的值。

4、attached()——判断舵机参数是否已发送到舵机所在接口。

5、detach()——使舵机与其接口分离,该接口(9或10)可继续被用作PWM接口。

注:以上语句的书写格式均为“舵机变量名.具体语句()”例如:myservo.attach(9)。

下面就来具体分析一个小程序。

#include <Servo.h>//定义头文件,这里有一点要注意,可以直接在

Arduino软件菜单栏单击Sketch>Importlibrary>Servo,调用Servo函数,也可以直接输入#include <Servo.h>,但是在输入时要注意在#include 与<Servo.h>之间要有空格,否则编译时会报错。

Servo myservo//定义舵机变量名

void setup()

{

myservo.attach(9)//定义舵机接口,9或10

}

void loop()

{

myservo.write(90)//设置舵机旋转的角度

}

一般来说,如果使用Arduino控制舵机,舵机会根据你给定的指令进行转动,直到达到指定的位置或者角度,然后停止。如果你的舵机在转动几次之后停一会儿,可能是由于以下原因:

1. 程序设计问题:你的程序设计可能有问题,导致舵机在转动几次之后停止。检查一下程序,看看是否有逻辑错误或者代码缺陷。

2. 供电问题:舵机需要稳定的电源供应,如果电源不稳定,可能会导致舵机在转动几次之后停止。检查一下供电系统,看看是否存在电压波动或者电源不稳定的情况。

3. 电机过热:如果舵机连续转动时间过长,可能会导致电机过热,从而停止转动。这时候需要让舵机休息一会儿,以免过热损坏电机。

总之,如果你的舵机在转动几次之后停一会儿,需要检查一下以上几个方面,找出问题所在,进行修复。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11109980.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存