每日一言
即使慢一点也没关系,只要一直在路上,就会离目标更近。
案例:串口控制小车
好的以上的就是他会自动的走无法控制,那么肯定是不行的啊,我们要自己控制
我靠突然想起来了幼儿园的时候非要买50块钱的小车,但是那个时候家里又没有什么钱,都还在住着租的平房,最后还是买下了,可恶的是那个小车是没有遥控功能的,开关一开就直接只有前进的那种,我现在懂了,拿一个最垃圾的单片机,甚至都不用单片机,因为直接一个串联,开关开了就走,我现在还想得起来,作者我啊..也是为小时候的记忆泪目了.....
但是那个时候钱是真的好赚啊.....kao
那么我们串口控制小车怎么做呢?
那肯定要先把串口的初始化拿过来,还有中断拿过来
我们接着用分文件的操作来写代码(这个是一个好习惯)
代码如下
我们既然用串口控制了,那么while函数直接清空就可以了,然后加上一个串口初始化
以下是串口初始化的代码
配置波特率等等
串口中断函数,这个串口函数相信之前看过我笔记的都知道,这个中断函数很好用,那么我们这边选择串口助手发送M0 后执行前进 以及其他,记住这边的1、2、3、0等等都是字符1、2、3 别搞错了 简单介绍一下吧,假设就是PC端发送M0后,会先到单片机的SBUF接收缓存寄存器,记住哦SUBF每次只接收1个字节的数据,也就是M0会变成M进去之后0再进去,然后我们将数据读取到tmp这个临时的字符型变量,随后如果检测到tmp的值是’ M ’那么就会 将i设置为0,这个i是为了buffer[]这个数组的,因为我们是要先如果检测到M后就开始将把M和M之后的字符都放在buffer数组里面, 然后后面继续进行判断如果是M1、M2、M3等等那么就会各自去执行相应的代码。
那么串口驱动小车就基本上做好了
其他的是,比如这些,那这些都是分文件优化代码的重点,如果不会了就回去看看,我也有发视频到优快云
案例:蓝牙控制小车(自动)
如果不懂蓝牙模块是什么的可以看我之前的笔记,都有记录的
这个是最简单的了,直接将蓝牙模块接到单片机上面去,那么我们的蓝牙模块就好了
值得说的是这个蓝牙助手,还是有很好的功能的、这边有个自定义按钮,可以直接自己设置,就不用去手动输入M1、M2等等字符,我们直接设置成这样,我们只需要点击设置好的按钮就可以实现了,因为他内部也是我们按下这个按钮,他就会发送相应的M1M2等字符
代码不需要变动哈也是串口驱动小车的那个代码,之前学过的,蓝牙模块是最简单的模块接上后就可以用,数据透传
这个效果是按下哪个键小车就会一直走,而不是我们生活中小车还有一种方式就是手指触摸按键的时候才走,不摸的时候就不动,那么该怎么办呢??
案例:蓝牙控制小车(点动)
现在我们来解决一下上面这个问题
小车的这种运行模式这种叫做点动哈,那么要什么思路呢?
我们就直接在main函数while函数里面stop();让小车只要没有人点击按钮的时候就是不动的,
那么我们中断函数里面要怎么实现呢
其实这个也很好理解,就是我们按一下按键的时候200ms会动然后就不动,当然这边用10ms更能体现出来,但是其实点动其实就是在触摸按键的时候在不断的在发字符给单片机,松开手的时候就会过200ms就不动,好了这边还需要软件层面的加持,因为我们的这个蓝牙助手做不到这个功能,他只能我们按住按键的时候也只是发1次字符,所以我们单片机层面已经做的很好了,下面要提升软件层面才能实现了,就是按住会不断的发字符给单片机,这个是需要自己在安卓APP上面设计的。。。。当然要去自己开发一个安卓APP才能实现的哈,后续我相信会学到的
加油吧,我们还远远不够
视频展示
蓝牙小车