设计与开发

单片机舵机控制原理 舵机就是难控制?懂得这些原理让你玩溜机器人

小编 2024-10-06 设计与开发 23 0

舵机就是难控制?懂得这些原理让你玩溜机器人

高能预告:下一篇文章将通过实例介绍舵机的使用,欢迎点赞,留言和转发,关注头条号:奔跑的晶体管 可以学习更多电子知识哦。

舵机最常见的应用是机器人,机器人完成的各种动作,多是由舵机提供动力。在电子竞赛,机器人比赛中,我们有经常需要使用舵机配合结构件完成一些动作。

六足机器人

舵机实物图:

舵机

舵机的组成

舵机是一种位置伺服的驱动器,主要是由外壳、控制电路板、电机、齿轮与位置检测器所构成,电路板上电源线和信号线引出来用来控制。

舵机结构

舵机的工作原理

它工作原理是由接收机或者单片机发出PWM信号给舵机,其内部有一个基准电路,产生周期为20ms,宽度为1.5ms 的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。经由电路板上的IC 判断转动方向,再驱动电机开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判断是否已经到达定位。

舵机原理框图

舵机适用于那些需要角度不断变化并可以保持的控制系统。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。一般舵机旋转的角度范围是0 度到180 度。

舵机的使用方法

舵机有很多规格,但所有的舵机都有外接三根线,分别用棕、红、橙三种颜色进行区分,由于舵机品牌不同,颜色也会有所差异,棕色为接地线,红色为电源正极线,橙色为信号线。

舵机管脚信号

舵机的转动的角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的,标准PWM(脉冲宽度调制)信号的周期固定为20ms(50Hz),理论上脉宽分布应在1ms到2ms 之间,但是,事实上脉宽可由0.5ms 到2.5ms 之间,脉宽和舵机的转角0°~180°相对应。有一点值得注意的地方,由于舵机牌子不同,对于同一信号,不同牌子的舵机旋转的角度也会有所不同。

上面就是舵机的基础知识,朋友们有没有用过舵机呢。欢迎留言评论。

关注头条号:奔跑的晶体管 可以学习更多电子知识哦。

舵机直流电机控制原理

本文简单介绍在舵机中的直流电机控制原理和方法。下图是控制器原理图,单片机选择stm32f030,驱动选择fm116b,ldo为lp2992,这个可以任意选择兼容的芯片,电压反馈端用tl431进行分流稳压,确保反馈电阻器供电电压的稳定。

舵机的工作原理很简单,处理器实时获取电阻器的ADC值来计算获得当前的角度,如果与预期的角度一致,就不做任何操作,保持当前状态;如果与预期角度不同,就计算出当前角度与预期角度的差值,然后通过PID算法计算出控制量,根据控制量输出PWM控制电机旋转,随着电机旋转,实时角度会越来越接近预期值,控制输出也会越来越小,直到最后为0,就转到了预期的位置。

本方案通过I2C接口获取控制命令,可以实现比传统模拟方式更多的功能。

PWM1和PWM2控制电机转速和方向,当PWM1输出高电平而PWM2输出低电平就是正转,反之就是反转,如果二者都输出低电平就停止。

ADC值需要标定,确定舵机角度为0和180时的ADC采样值,这样才能通过比例计算出任意ADC值对应的角度。

PID这里,ADC得到的角度减去预期角度就是角度差,乘以比例系数构成比例项;角度差的和乘以积分系数构成积分项,积分项要设置上限,防止该值过大影响响应速度;本次角度差与上一次的角度差的差乘以微分系数构成微分项(这里用固定的时间采样,dt固定,故不需要计算变化率了)。三者之和就是预期的输出值,再根据输出限制得到最终的输出值,该值可正可负,注意变量选取要合适。

具体的代码可以查看:

https://github.com/gcrisis/ElectronBot/tree/trans_blocking/2.Firmware/ServoDrive-fw-ll

相关问答

舵机 在不同角度停止转动的程序?

舵机是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准...

关于 舵机 怎么减少 舵机 抖动啊?是不是在它复位状态时(不断电)...

[最佳回答]舵机抖动一般是因为干扰信号造成的.尤其是在发射机关闭的时候,接收机的输出乱码很严重,我曾经对日本的4VF做过测试验证过了.你看看下面的文章航模...

怎样用温度传感器来 控制舵机 左右摆动?

温度传感器可以检测环境温度的变化并将其转化为电信号。可以将其与单片机或微控制器相连,通过编程控制舵机的左右摆动。例如,将温度传感器与Arduino连接并编...

怎样实现atmega128 单片机 和16路 舵机控制 板的TTL串口通信?

首先,电平一直的话,可以直接连,否则要做转换连时,单片机Tx接控制板Rx,单片机Rx接控制板Tx再就是编程首先,电平一直的话,可以直接连,否则要...

关于stc89c52 单片机 驱动六个辉盛SG90 舵机 。板上接的是六路无线电遥控, 舵机 用的是5V独立电?

舵机电流比较大,如果你采用最小系统板驱动电机时,你需要考虑最小系统板预留的电压接口的电压是否满足舵机的电压,舵机一般5-7V供电,第二点就是IO口的驱动能力...

智能车的 舵机 改变方向为什么不增加电压却增加通电时间?

有两种可能:一:智能车给舵机的信号一直是让舵机转到特定的位置上;二:舵机本身出了问题舵机问题分析:首先先懂得舵机在什么情况下才会转懂,舵机...有两种可...

舵机 调试的时候把 单片机 烧了,求助大神?

先说舵机,一般的舵机,其实就是一个直流伺服,通过电位器的电压反馈出当前舵机的角度。显然,当反馈电压与控制的PWM不一致时,舵机转动,以消除这种差别。那么...

有什么办法能读取 舵机 的当前角度?

要读取舵机的当前角度,可以使用专门的舵机角度传感器或者编码器来实现。这些传感器可以直接连接到舵机,并通过读取传感器的数值来获取舵机的当前角度。另外,...

(机器人),分别用89c51和STC12c5410Ad这两类 单片机控制 ?

每个舵机通过舵机驱动与单片机的不同的IO分别相联.这样就需要单片机有17个IO以上.89c51和STC12c5410Ad这两类单片机都可达到要求的芯片每个舵机通过舵机驱动...

在智能车上加装 舵机 ,需要一个 舵机 驱动模块吗?

航模上使用的舵机,一般都是PWM控制的,安装舵机,当然得有舵机控制电路了。航模上PWM控制基本都是单片机控制的(少数是模拟电路做的),如果单片机的驱动能力...

猜你喜欢