第16课 蓝牙调速智能车#
项目介绍:#
前面课程中,我们利用蓝牙控制智能车,在这课程中我们做一个蓝牙可以控制速度的智能车。既然要控制智能车速度,我们可以将速度定义一个变量speeds来表示。项目中我们只要改变这是变量speeds就可以改变智能车的速度啦。下面让我们通过代码来实现。
流程图:#
按照前面思路设计好智能车后,我们就需要按照设计思路开始制作智能车。我们需要设计对应的接线,测试代码,然后接线上传代码,运行,确保智能车能够实现理想中的功能。
接线图:蓝牙+电机#

接线跟上一课一样
测试代码:#
①初始化 |
|
|---|---|
②设置串口波特率为9600 |
|
③设置点阵8x16的时钟(SCL)引脚为SCL,数据(SDA)引脚为SDA; |
|
④点阵8x16清屏 |
|
⑤点阵8x16显示“V”图案 ; |
|
⑥蓝牙BLE模块接收蓝牙数据并在串口监视器中读取打印出来 |
|
⑦变量bluetooth_val的值与各个case逐个进行比较 |
|
⑧当变量bluetooth_val的值是F时,执行case下的命令(代码)并退出switch-case语句体 |
|
⑨小车以PWM:speed_L、speed_R的速度前进 |
|
⑩点阵8x16显示“↑”图案 |
|
⑪当变量bluetooth_val的值是B时,执行case下的命令(代码)并退出switch-case语句体 |
|
⑫小车以PWM:speed_L、speed_R的速度后退 |
|
⑬点阵8x16显示“↓”图案 |
|
⑭当变量bluetooth_val的值是L时,执行case下的命令(代码)并退出switch-case语句体 |
|
⑮小车以PWM:speed_L、speed_R的速度左旋转 |
|
⑯点阵8x16显示“←”图案 |
|
⑰当变量bluetooth_val的值是R时,执行case下的命令(代码)并退出switch-case语句体 |
|
⑱小车以PWM250的速度右旋转 |
|
当变量bluetooth_val的值是a时,执行case下的命令(代码)并退出switch-case语句体 |
|
按下加速按键,当speed小于255时,speed加一并延时10毫秒 |
|
把速度分别赋值给左右电机(speed_L,speed_R) |
|
通过串口打印左右电机的PWM值,方便调整 |
|
当串口读取到“S”时,跳出循环, |
|
当变量bluetooth_val的值是d时,执行case下的命令(代码)并退出switch-case语句体 |
|
按下加速按键,当speed大于0时,speed减一并延时10毫秒 |
|
把速度分别赋值给左右电机(speed_L,speed_R) |
|
通过串口打印左右电机的PWM值,方便调整 |
|
当串口读取到“S”时,跳出循环,因为我们最开始时加了一个无限循环 |
|
当变量bluetooth_val的值是S时,执行case下的命令(代码)并退出switch-case语句体 |
|
小车停止 |
|
点阵8x16显示“STOP”图案 |
|
完整代码:(注意上传代码的时候必须拔下蓝牙模块不然会上传不成功的,上传完在装回去)



测试结果:#
按下按钮
,小车加速;按下按钮
,小车减速。






























