PWM,SBUS,PPM信号转模拟电压的方案

-----------------本文由“麦粒电子”撰写,并提供相应产品服务。----------------

  • 案例场景

    有个内部采用电瓶车的驱动器的无线小车,现在需要使用遥控器控制小车的前进后退。也就是说:把之前电瓶车的手动油门把手换成无线控制的。

    遥控器选择目前市面上有好多的品牌:“天地飞,futaba,斯翼等。遥控器分为接收器和发射器:发射器就是控制人手里拿的摇杆那一部分;接收器则是信号接收端。用来给小车的电机驱动器发送信号的。

    但是现在有个问题,接收机的输出信号并不能直接给电机驱动器使用。因为常见遥控接收机的输出信号一般有三种:舵机PWM信号、SBUS、PPM。而电瓶车的电机驱动器的输入信号要求一般是个模拟电压(常见的电瓶车把手其实就是一个旋转电位器,旋转到不同的位置会输出不同的电压值,以此来控制电机驱动器,从而达到调节电机转速的问题。)

    因此,要想使用遥控器,必须解决接收机输出信号转成模拟电压的问题。为此,我们设计了一款信号转换模块。下图为增加转换板之后的系统框架图

  • 解决方案

    1. 舵机PWM转电压

      舵机PWM,基本上每个接收机都会输出的一种比较常见PWM信号:一般信号频率50HZ,信号高电平变化时间在1ms-2ms之间变化(不同的遥控器会有小幅度的差异)。舵机PWM基础知识请点击:转载于CSDNPinus_x博主。

      转换模块的核心思路就是采集接收机输出的PWM型号,接着分析高电平时间,然后根据高电平时间输出相应的线性变化模拟电压值。

      一般舵机PWM输出的高电平时间为1ms-2ms之间变化,但是实际上我们为了匹配不同的遥控器和留有一定余量,我们设定电平电话的高电平区间为1.1ms-1.9ms之间。也就是说当采集到1.1ms的高电平PWM信号时,模拟电压输出最小值(0V);当采集到1.9ms的高电平时间PWM信号时,模拟电压输出最大值(5V)。

      本文设计的模块中,一共留出了4路PWM转电压的通道。

    2. SBUS信号转电压

      sbus信号是Futaba公司定制的一种数字传输信号,一共数据包中包含了所有遥控器的通道数值。(天地飞管这路信号叫“Wbus”,本质没有区别)因此,本文设计中为sbus(wbus)设计了一路通道,用来收集带有sbus(wbus)等信号输出的接收机。

      在采集完一帧信号后,只根据摇杆变化的4路信号输出相应的4通道电压值。

    3. PPM信号转电压

      PPM信号其实是一种合成的PWM型号。前面单路的舵机PWM信号每个都单独都占用一个硬件 通道,要想4路变化就要有4路单路的硬件通道,这样就会导致硬件接口过多。PPM信号则是把多路PWM信号合成到一路通道。这样既降低了硬件通道的数量,同时也能传输多路PWM信号。

  • 总结

    每个品牌的sbus信号 通道值最大最小值的变化区别也是有区别的,所以为了尽量囊括多种遥控器,模块在程序设计上做了余量考虑。直接反应到每个遥控器的现象就是拨杆最低和最高位置附近会有一段小量程变化,不会引起输出电压值的变化。这并不影响功能的实现(需要说明的是PWM和PPM也做了余量设计)。

    最后,将模块接到接收机和电机控制器的输入端。拨动摇杆,电机转速如期变化。OK,收工。

PWM,SBUS,PPM信号转模拟电压的方案的更多相关文章

  1. 一文打尽PWM协议、PPM协议、PCM协议、SBUS协议、XBUS协议、DSM协议 | STM32的通用定时器TIM3实现PPM信号输出

    PWM.PPM.PCM.SBUS.XBUS.DSM都是接收机与其他设备通信的协议. 请注意这里不要将遥控器和接收机之间的协议混淆.遥控器和接收机之间会采用某种协议来互相沟通,这些协议往往各个厂牌各自有 ...

  2. PPM 信号解析

    PWM信号 PWM信号用于控制单个电调或者单个舵机脉冲宽度调制信号. 像华科尔DEVO 10遥控接收器(RX1002)就输出10路PWM,参看下图. 舵机(电调)上用到PWM信号种类很多,我们这里对常 ...

  3. 直流电机PWM调速系统中控制电压非线性研究_控制元件_工业自动化控制_文章

    直流电机PWM调速系统中控制电压非线性研究_控制元件_工业自动化控制_文章_e-works数字化企业网 http://articles.e-works.net.cn/Component/Article ...

  4. 常见信号的模拟仿真(matlab)(spike signal)

    1. 一维信号 构造离散时间向量: Fs = 1000; % sampling frequency,采样频率 T = 1/Fs; % sampling period,采样周期 L = 1000; % ...

  5. vb上位机模拟电压监测系统

    vb作为一种古老的语言,在工作中已经用不到了,但这门语言也是我在校期间研究比较多的一种,基本的通讯,数据库,界面等模块已经比较了解,马上要进单位实习了,研究的是电机的变频器,软件这块,希望在以后的工作 ...

  6. 【2-SAT】【并查集】NOIp模拟题 植树方案 题解

        一个类似2-SAT的思想,但是简化了很多.只需要用到并查集实现. 题目描述 企鹅国打算种一批树.所谓树,就是由$N$个结点与$N-1$条边连接而成的连通无向图.企鹅国的国王对于这些树有下列要求 ...

  7. [Noip模拟题]统计方案​

    题目并不难,想一下就会了,我真的智商持续下降,取模情况下做除法我都没想到逆元. 总之想到逆元就好写了,还是\(meet\ in\ the\ middle\)裸题,数组开不下用\(hash/map\)存 ...

  8. J20航模遥控器开源项目系列教程(五)| 制作STM32F0接收机,8路PWM输出,SBUS输出,PPM输出 | 加密狗无线化,畅玩飞行模拟器

    我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/J ...

  9. 运放引脚悬空危害大,单片机PWM信号进入运放需要考虑避免运放引脚悬空

    1 问题电路 在没有烧录程序时,单片机的PWM引脚无信号,导致运放的3脚悬空,从而导致运放输出3.5V电压,从二导致后面驱动电流非常大,容易对驱动器件造成损坏 2 改进电路 通过在单片机输出增加下拉电 ...

随机推荐

  1. 使用Hystrix实现断路器处理

    在之前的架构的基础上我们会发现,一旦级别低的服务宕了,会导致调用它的服务也挂掉,这样容易产生级联效应(雪崩效应),为了防止这种情况的出现,我引入了Hystrix来处理,先介绍ribbon使用Hystr ...

  2. 【JS学习】慕课网9-14 删除结点操作的问题

    试一试,定义clearText()函数,完成节点内容的删除. 1. 删除该节点的内容,先要获取子节点. 2. 然后使用循环遍历每个子节点. 3. 使用removeChild()删除节点. 特别要注意的 ...

  3. Selenium_随记要点

      1.selenium不支持定位复合元素定位:     像上图的class元素有两个值: op_weather4_twoicon_today  -----    OP_LOG_LINK    像这种 ...

  4. Java中的LinkedHashSet

  5. java静态代理及动态代理(学习示例)

    1.接口 public interface Channel { void send(); } 2.实现类(可以为各种不同实现) public class ChannelImpl implements ...

  6. JS时间差(毫秒/天数/月份)

    var startDate = "2016-06-06"; var endDate = "2016-08-08"; var start=new Date(sta ...

  7. php时间时间戳

    /* *+ ------------------------------- * 计算当天起始点和结束点时间戳 取出当天的数据 *+ ------------------------------ */ ...

  8. thinkphp wechat

    该接口对应的文件为Com/Wechat.class.php, 主要用户接收微信推送过来的用户数据并自动回复. 注意:识别和分析用户发送的内容,并提供回复内容需要开发者更具实际情况自己实现,本接口值提供 ...

  9. AJAX(包括跨域)post请求封装

    function ajaxPost(dataUrl, parameter, callback, bef_callback, com_callback, err_callback) { $.ajax({ ...

  10. delphi dll调用问题

    dll传递string实现方法 delphi中dll传递string的实现方法: dll项目uses第一个引用sharemem单元; 调用的项目uses第一个引用sharemem单元; 调用的单元us ...