舵机控制原理

               在机器人和各种自动化装置中,舵机起着非常重要的作用,我把关于舵机的资料整理出来,方便以后的使用。

 

                                                                      舵机控制原理_第1张图片

                                                                   ( 像这种是比较常见的舵机)

1.舵机的控制原理
 
	舵机与一般的直流减速电机不同,除去电机和减速机构还有一套控制电路,是一种典型的机电一体化产品,通过控
制电路的精确控制,舵机可以锁定在某个角度或者以某个速度连续旋转。也正是因为这种特性,舵机才被广泛应用到机
器人关节,转向机构等工作场景。
          舵机一般有三根输入线
                                             
	分别Vcc(正极),Gnd(负极),Signal (信号线),不同的舵机这三根线的顺序有些不同,如下图
        如果遇到三根黑线,还是找舵机的说明书吧
                                     
         可以根据图示颜色连接舵机。我们发现,与直流电机不同的是,舵机多了一根信号线,给这根线提供pwm信号
就可以实现对舵机的控制,如果有同学不明白可以查找什么是pwm信号。
 

控制信号进入舵机信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,

宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出

到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0时,电

止转动

                                  			
 	舵机的控制程序h"
 
        STM32或51系列主要是产生pwm信号
 
  	arduino有舵机的库函数,非常方便
 
       有以下成员函数
	attach()//连接舵机
	write()//角度控制
	writeMicroseconds()//
	read()//读上一次舵机转动角度
	attached()//
	detach()//断开舵机连接
#include 

Servo myservo;
   
void setup() {
  myservo.attach(9); 
}

void loop() {

    myservo.write(50);             
    delay(15);                   

}

 

舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度伺服为例,那么对应的控制关系:

0.5ms--------------0度;50

1.0ms------------45度;100

1.5ms------------90度;150

2.0ms-----------135度;200

2.5ms-----------180度;250

 

72 000 000

72 00

20ms周期

72mhz /7200=10khz 100us =0.1ms

 

 

分频系数 720 = 100khz 10us = 0.01ms

舵机电压4.8-6,电流2a

  1. 舵机延时,否则抖动
  2. 舵机电流必须足够
  3. 舵机信号要大于3.3v,共地,否则加上拉电阻
  4. sg90舵机扭矩较小
  5. 舵机设置为死区可能会卡死

 

 

 

 

 

你可能感兴趣的:(硬件)