舵机的信号线是做为输入线就是接收PWM信号(定时器产生)。
一般PWM的周期是20ms,那么对应的频率是50hz。那么改变不同的占空比就可以控制转动的角度。
其中占空比从0.5-2.5ms(如果占空比大于2.5ms也只会在最大角度。),相对应的舵盘位置为0-180度,呈线性变化。
舵机的转动角度跟输入脉冲有关:
给它提供一定的脉宽,它的输出轴就会保持一定对应角度上,无论外界转矩怎么改变(只要目标不变就维持在这个角度类似PID自动控制算法),直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应位置上如所求。
舵机内部有一个基准电路,产生周期为20ms,宽度1.5ms的基准信号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而生产电机的转动信号。由此可见,舵机是一种位置伺服驱动器,转动范围不能超过180度,适用于那些需要不断变化并可以保持的驱动器中,比如说机器人的关节、飞机的舵面等。
注:建议先写一个0度的程序,方便确定舵机转动的方向和角度
推荐的新人项目是mearm机械臂的控制,这个有一个同类型的模型开源
记忆机械臂https://www.crealitycloud.cn/model-detail/617235a374c1e86cb4b64ed5?source=4&isFree=false
组装的话,有些难度,关键在于零件没说打几个,以及关键连接处别用M3螺丝固定,容易roast 舵机:代码方面记得下面两个舵机一起调,不然有你好看(不信的可以试试,因为实在没什么难度,这里就不放自己写的BUG了 )