目录
一、摘要
1. 本篇是遥控器专栏第三篇,主要介绍剩余全部基本外设电路(ST-link下载、串口、按键、摇杆、0.96寸OLED、NRF24L01),本章结束全部的硬件电路就都介绍完了,后面就是PCB设计、打板、写程序了;
2. 在本专栏的第一章我详细介绍了立创EDA的一些简单使用方法,以及从立创EDA导入封装到AltiumDesigner的方法,介意大家在浏览本章之前大致看一下第一章,那本章将会更轻松理解;
3.刚开始学习的同学保持耐心,学习会越学越快的
4.单片机型号为STM32F103C8T6
5.所有的元件都不是固定的,包括我给出的立创商城编号,我们可以只是用它的封装,然后可以在其他渠道或者立创商城买同样封装的可替换型号
二、电路
1、ST-LINK下载接口
ST-LINK有三种接口(SWD、JTAG、SWIM)我们使用的是SWD接口,四条线(VCC、SWDIO、SWCLK、GND),通过一个ST-LINK下载器就可以将程序烧录到单片机
这里通过四根排针引出:
- 通过标签连接单片机引脚
- 图中BOOT0、BOOT1引脚的高低电平决定了程序启动位置,也决定程序的下载方式,这里我们需要将BOOT0、BOOT1接地,这部分详细原理可以查看数据手册,或者搜索相关介绍,会对这里理解更加透彻,这里我们不一次性介绍,先学会使用
通过标签连接单片机对应引脚,在数据手册中可以找到每款单片机的引脚说明,stm32f103c8t6对应下载引脚如下:
下载器使用下面这种就可以,小巧便携,虽然市面上大部分都是盗版,但是不用担心,去一些较大的店铺买回来,都是可以使用的,但是相较于正版它的固件更新、仿真等方面会有各种问题,优点是便宜,如果只用来下载就无所谓了,可以买到正版更好。
2、串口
- 串口也可以用于程序下载,更多也用来程序调试,有些外设或者传感器也是通过串口与单片机通信
- 因为电脑和单片机信号不同、连接电脑时要使用一个USB转TTL转换器转接,插到电脑的USB接口就可以使用了
-常用的串口转接器和ST-LINK下载器长得很像,购买时注意上面的标识
- 一般STM32单片机不只有一个串口,可以根据数据手册选择对应型号的任意一个,这里我们选择这款单片机的串口1,PA9是TXD(发送),PA10是RXD(接收),注意不要接反;
- 串口通讯除去VCC、GND还有俩条线,主机TXD接从机RXD,主机RXD接从机TXD。
3、按键
功能按键
- 按键的功能可以在程序里随便定义,这里我们按键是做成像游戏手柄的左边方向按键和右边功能按键一样,总共八个按键,之后是可以像手柄一样装一个外壳,按键可以套一个塑料按键,这样使用体验会更加舒适;
- 图中有一个符号我们第一次见到,短接符,形状是一个菱形,在一条线上不同名称标签时会被认为是短路连接,如果我们确定要连接,就可以使用这样的短接符连接,就不会报错了;
- 这里放置俩个标签分别是单片机对应引脚和按键名称,写程序时候可以快速配置对应的按键
按键名称是可以修改的,双击名称右侧属性栏可以修改,修改后转为PCB名称也会对应改变:
唤醒按键
这里按键与之前复位电路按键相同
元件 | 编号 |
---|---|
轻触按键 | C83205 |
在单片机对应引脚也加上标签,当然这里按键使用的引脚是可以修改的,尤其在PCB布线不好走线的时候既可以改变PCB的布局又可以在原理图修改外设连接的引脚,从而使布线更顺畅
4、摇杆
滑动变阻器摇杆
- 每个摇杆有俩个方向,每个方向有一个滑动变阻器,且俩边都加了电压,拨动摇杆时,变阻器滑片引出电阻变化,滑片(变阻器中间引脚)与GND之间电压也变大变小,将该电压信号接入ADC采集(模数转换,将电压信号转换为数字信号)就可以检测每个摇杆各方向上拨动幅度;
- 此次选用摇杆自带一个按键,拨杆向下按动就可以使用,利用起来可提高可玩性。
使用标签连接到单片机对应引脚,这款单片机PA0~PB2引脚分别可以配置为ADC1 ~ ADC2;
这里摇杆的左摇杆的X和Y方向分别对应ADC1和ADC2,右边的X和Y方向分别对应ADC3和ADC4,同时也定义好了俩个摇杆上的按键连接的引脚
霍尔摇杆
-虽然本次遥控器使用了滑动变阻器摇杆,但我测试多个实验室摇杆,发现其线性度很差,电压会在拨动摇杆时候跳变,且在拨到极限位置之前很长的行程就已经达到电压最大,使用体验很不丝滑;
- 除滑动变阻器摇杆外也可以使用霍尔摇杆,霍尔摇杆的功能相同,但原理不同,霍尔器替换了变阻器,俩端也要加电压,且霍尔元件周围有磁铁,摇杆拨动时霍尔元件上磁场改变,电压改变,也可以使用ADC采集回来信号,从而判断摇杆位置;
- 相比变阻器摇杆,霍尔摇杆线性度非常好,感兴趣同学可以尝试做一个霍尔摇杆遥控器
- 当然本次设计的简单遥控器变阻器摇杆就可以使用了,而且霍尔摇杆价格会贵跟多
霍尔摇杆图片(取自淘宝)
这是我另一个工程的原理图,我所购买的摇杆是一个很小的3Pin接口,所以这里我选择了一个合适的3Pin母口,连接方式与上面变阻器摇杆相似,如果有需要买这个摇杆找不到的话,这里不便放,可以私信我
元件 | 编号 |
---|---|
3pin接口 | C2939427 |
5、电量检测
- 电池会随着放电电压降低,我们可以通过ADC采集电源电压大致计算电池的电量,所以我们这里接ADC通道5
- 由于我们使用的电池是7.4V,stm32ADC采集电压最大3.3V,所以我们使用一个20K和10K电阻分压后检测
参考选型:
元件 | 编号 |
---|---|
10K电阻 | C5139509 |
20K电阻 | C3017708 |
6、LED指示灯
这里我们使用三个0603的LED,左边第一个红色LED用作指示电源,系统上电,红灯亮起,其他俩个(蓝灯和绿灯)之后可以用作其他功能
使用标签连接单片机对应引脚:
7、0.96寸OLED屏
实物图:
这里OLED我选用的是接线较少的IIC接口,接口可以直接用4Pin的排母(引脚都是2.54mm间距)
与单片机用标签连接好:
8、NRF24L01
实物图:也可以选择带天线的,距离会更远,程序不需要修改也可以用
- 这是一款2.4GHz的无线芯片,用于遥控器与其他设备的无线通信,通信方式为SPI,下面是电路原理图
- 立创商城找不到有对应封装的元件,这时候我们可以自己画封装,这里也可以用2*4的排母代替,按照引脚顺序接好就行,标记好对应引脚
使用标签连接好单片机:
9、原理图总体完善
VBAT接3.3V,其余未连接引脚放置叉号(非连接标识):
总体原理图:
三、结语
- 好啦,电路原理图部分就告一段落了,之后就是PCB设计了,如果之后有补充我也会更新到对应章节里
- 上面像IIC、SPI等通信协议会在程序章节介绍到
- 有问题的地方欢迎指正交流