NXP

【资料】舵机控制原理

2019-07-12 12:11发布

舵机

分为数字舵机和模拟舵机。 数字舵机,又称伺服电机。

舵机的控制原理

舵机一般由三根线组成。灰线GND,红线电源,黄线信号线。舵机的控制,通过PWM波调制,发出控制电平, 产生控制电压与舵机内的电位器作比较,获得电压差输出。最后由电压差,决定舵机转向的角度。

SR-1501舵机,是一种不错的标准的机器人舵机。
数字舵机的代码编程控制。 一般原理:                 当在20ms内,连续地通过gpio模拟输出高电平(即PWM波),在0.5ms~2.5ms时间内,舵机就能线性地转角0度---180度, 即(当给0.5ms高电平给舵机,它就会转为对应的0度,当给1.5ms高电平给舵机,它就会转为对应的90度角)。
SR-1501舵机总结:                 基于SR-1501舵机,当给定一个合适的PWM波给舵机,舵机就会转向一个特定的角度。并且舵机会通过内部的调正,会固定在一个角度中, 即(只要输出一次转角的PWM波,舵机就会一直维持在那个角度中,直到下一次产生角度的变化,就算拔出信号线,也不影响角度的固定,除非拔掉电源线)。
基于树莓派16路舵机控制原理。                  在Linux系统下,由于通过模拟PWM波的输出,需要通过内核控制物理硬件,很浪费时间,从而产生精度不能很好地控制。在linux系统中, 有一些定时器 ,如usleep()的api,settimer(),select().,都可以名义上的微秒级别的api,但是,实际上还是有所差别。
通过定时器settimer(),定义系统中断,产生一个定时周期,来处理16路舵机的控制。为了保持一定精度,由于基于Linux操作系统级别的控制,系统 的运行会执行时间片轮转的方法。所以精度难于控制,因而通过设置程序的优先级,就可以在一定的范围稳定地完成任务。