
舵机/电调测试器
简介
一个小工具,用来测试或简单的控制舵机和电调。
简介:一个小工具,用来测试或简单的控制舵机和电调。开源协议
:GPL 3.0
描述
简介
基于STM32F030F4开发。
- 具有EN输出控制功能,可随时控制信号(油门)的开启和关闭
- 可在2个预设速度间自由切换
- 宽压供电(5~12V),低电量消耗
- 成本低廉,易于制作
B站演示视频:
https://www.bilibili.com/video/BV1YK411W7Tf/
数码之家帖子链接
https://www.mydigit.cn/forum.php?mod=viewthread&tid=155880
制作思路
首先,我并不想做一个特别复杂且成本高昂的测试仪,因为它最终要实现的功能其实是很简单的,就是控制电调或者测试舵机而已。所以最终的成品一定要尽可能的在便宜,否则太贵就划不来了。我曾经在网上买过的一个廉价测试仪,旋钮的那种,价格是7.5元。这次的成本预算自然以这个为准,稍微宽限点,10元好了。
然后开始进行方案的确定。既然要廉价,那显示方式自然是数码管最好了。而且最好是直驱,不用专用的LED驱动。鉴于速度值在0~99之间就可以,太精细的速度控制也没意义。所以选择的2位的数码管。
接下来是MCU的选择,要廉价,首先想到的就是STC的51单片机,但是搜索了价格后,我最终还是选择了STM32的F0系列单片机,具体型号是STM32F030F4P6。这款单片机最便宜只要1.5元就可以购买一片,可谓十分廉价。虽然价格便宜,但是功能上可一点都不廉价:16K的Flash,4KB的SRAM,最高48MHz的主频,12位ADC,以及5个定时器。相对一般的51可谓是奢华配置了。配置丰富了,自然写起代码来就轻松一些,不用扣扣索索的。。
STM32F030F4的DATASHEET:
不过接下来也有个问题,STM32F030F4P6是20脚的IC,共有15个GPIO口,但是这15个GPIO中,PA13和PA14是要分配给SWD调试器来进行代码下载和调试的,虽然可以复用,但是这样就太麻烦了。这样,我们就只剩余13个IO口可用。
这13个GPIO,要实现如下功能:4个按钮,一个信号输出,一个输出状态指示灯,以及数码管驱动。
数码管是2位的,所以需要8+2共10个GPIO驱动,如果不用控制小数点,则需要9个IO。但是我想做多组油门切换的功能,需要小数点作为指示器,所以不能省。这样就只剩下3个IO。这三个IO中,信号输出肯定不能省的,所以只剩下两个来作为信号输出指示和按键输入。指示灯再占一个,就只剩一个来作为按键输入了。
一个IO如何接受4个按键的输入?这时候就需要终极节约IO的方法了:ADC按键扫描。简单来说就是按键都接入一个分压网络,然后连接至单片机的ADC接口。通过采集到的电压来判断是哪个按键按下。ADC键扫最大的优点就是节省IO,缺点是按键之间容易相互干扰,并且占用CPU时间较多,还没法使用中断。不过这点缺点在当前的应用环境下可以不算缺点了。
ADC键扫电路最终设计,可以注意到按键是有优先级的:
方案确定了,接下来就是原理图设计、PCB Layout、打样。不得不说,立创EDA的3D预览是真的好用
等待打样的过程中,可以先写写代码。然这个没啥好说的,很简单,用STM32的TIM1高级定时器可以很容易的做到输出频率50Hz,高电平时间在1~2ms间的标准PWM控制信号。按键的ADC扫描使用DMA,可以简化代码编写的流程。然后板子回来,焊接,调试,改掉一些小BUG,连接到电调,上电,成功!
最后算算成本:单片机1.8元,数码管0.5元,PCB5元5片,平均1块钱一片,其他阻容原价和接插件不好算,合计算3块钱好了。总造价6.3元,嗯,不错不错~这些元件即使全在立创商城买,也没几个钱。更别说还有优惠券,嘿嘿。
实物图片
实物图片:
配合ESC无刷电调驱动硬盘主电机
设计图
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | BT0 | BT0 | JUMPER-0603 | 1 |
2 | 0.1u | C1,C2,C3 | C0805 | 3 |
3 | 10u | C4,C5,C6,C7 | C1206 | 4 |
4 | 10n | C8 | C0805 | 1 |
5 | K4-6×6_TH | DW,EN,M,UP | KEY-TH_4P-L6.0-W6.0-P4.50-LS6.5 | 4 |

评论