完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
原理
伺服电机是一种位置伺服的驱动器,工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出 经由电路板上的IC判断转动方向,再驱动无核心马达开始转动,透过减速齿将动力传至摆臂,同时由位置检测器送回信号,判断是否达到到达定位。适用于那些需要角度不断变化并可以保持的控制系统,旋转角度一般为0-45 -90 -180 舵机的转动角度是通过桥接PWM(脉冲宽度调制)信号的占空比实现的,标准PWM信号的周期固定位20ms(50HZ),理论上脉宽分布在1ms到2ms之间,实际为0.5ms到2.5ms之间,脉宽和舵机的转角0-180相对应。 程序 方法一 int servopin=9;//定义数字接口9 连接伺服舵机信号线`int myangle;//定义角度变量`int pulsewidth;//定义脉宽变量`int val;void servopulse(int servopin,int myangle)//定义一个脉冲函数{//500位初始值,0.5ms,2480=500+180*11pulsewidth=(myangle*11)+500;//将角度转化为500-2480 的脉宽值digitalWrite(servopin,HIGH);//将舵机接口电平至高delayMicroseconds(pulsewidth);//延时脉宽值的微秒数digitalWrite(servopin,LOW);//将舵机接口电平至低delay(20-pulsewidth/1000); //延迟函数,担心无法转到指定角度}void setup(){pinMode(servopin,OUTPUT);//设定舵机接口为输出接口Serial.begin(9600);//连接到串行端口,波特率为9600Serial.println(“servo=o_seral_simple ready”);}void loop()//将0 到9 的数转化为0 到180 角度,并让LED 闪烁相应数的次数{val=Serial.read();//读取串行端口的值if(val》‘0’&&val《=‘9’){val=val-‘0’;//将特征量转化为数值变量val=val*(180/9);//将数字转化为角度Serial.print(“moving servo to ”);Serial.print(val,DEC);Serial.println(); for(int i=0;i《=50;i++)//给予舵机足够的时间让它转到指定角度 { servopulse(servopin,val);//引用脉冲函数 }}} 方法二 attach(接口)——设定舵机的接口,只有**支持PWM(~)**接口可以利用 write(角度)——用于设定舵机旋转角度的语句,可设定的角度范围是0°到180°。 read()——用于读取舵机角度的语句,可理解为读取最后一条write()命令中的值。 attached()——判断舵机参数是否已发送到舵机所在接口。 detach()——使舵机与其接口分离,该接口可继续被用作PWM 接口。 注:以上语句的书写格式均为“舵机变量名。具体语句()”例如:myservo.attach(9)。仍然将舵机接在数字9 接口上即可。 #include 《Arduino.h》#include 《Servo.h》Servo servo;void setup (){ servo.attach(13);//PWM引脚设置,与GPIO引脚号对应。}void loop (){ // To 0° servo.write(0); delay(1000); // To 90° servo.write(90); delay(1000); // To 180° servo.write(180); delay(1000);} |
|
|
|
只有小组成员才能发言,加入小组>>
646浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 14:03 , Processed in 0.665010 second(s), Total 75, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号