串口控制小车电机转动+蓝牙长按控制

程序

1.main.c:调用串口初始化函数,循环里调用Stop函数让小车停止

2.Motor.c:小车前进、后退、左转、右转和停止的函数

3.Delay.c:延时函数

4.Uart.c:串口初始化函数,发送一个字节函数,发送一个字符串函数,中断处理函数接收串口指令,从而控制小车启动

长按模式:蓝牙助手按钮一直按着,小车就一直启动,松手就停止

1.在main函数的while循环中添加让小车停止的函数,如果没有串口中断时就一直是停止状态,当有中断信号过来时就控制小车启动,

void main()
{UartInit();while(1){/*1.要实现点动,就要让main函数里一直是停止,串口有控制信号过来后,跟main函数争夺控制权,要在串口控制信号后加适当延时,让动起来一小会后再自动停止2.要实现长按启动松手停止也是要在main函数中一直停止*/Stop();     }
}

2.中断处理函数中也要相应修改,在控制信号后加适当的延时,延时越小,就越接近点动模式,太小的话小车轮子会抽搐,适当加大点就有点动的现象;

若要长按模式的话,延时就要适当大点,经实验延时400ms效果挺好,同时手机蓝牙助手也要修改为长按一直发送串口信号才能实现

/*** @brief 串口中断处理函数* @param 无* @retval无*/
void Uart_Rountine() interrupt 4
{static unsigned int i = 0;unsigned char temp;if(RI){RI = 0;temp = SBUF;if(temp == 'F' || temp == 'B' || temp == 'L' || temp == 'R' || temp == 'S'){i = 0;}rec[i++] = temp;if(rec[0] == 'F' && rec[1] == 'o'){GoForward();//收到前进信号后延时400ms,再被main函数停止,延时时间越小,就越接近点动模式Delay1ms(400);         i = 0;memset(rec,'\0',SIZE);}if(rec[0] == 'B' && rec[1] == 'a'){GoBack();Delay1ms(400);      //延时i = 0;memset(rec,'\0',SIZE);}if(rec[0] == 'L' && rec[1] == 'e'){GoLeft();/*左转的延时少一点,可通过点动方式一点一点地调方向,如果延时大的话,按一下就转动很大,不便调方向*/Delay1ms(200);       i = 0;memset(rec,'\0',SIZE);}if(rec[0] == 'R' && rec[1] == 'i'){GoRight();Delay1ms(200);     //右转的延时跟左转同理i = 0;memset(rec,'\0',SIZE);}if(rec[0] == 'S' && rec[1] == 't'){Stop();i = 0;memset(rec,'\0',SIZE);}if(i == SIZE){i = 0;}}
}

3.修改蓝牙助手

连上HC-08蓝牙后再去自定义按钮界面修改点击属性

点击后设置按钮,选择长按发送,持续发送时间间隔为50ms,间隔越小,说明一直按着按钮的话串口发送数据的频率就越高

修改完后下载程序,独立给小车供电就能用手机蓝牙助手长按控制小车前进后退左转和右转了,跟遥控车一样

串口控制小车电机转动+蓝牙长按控制相关推荐

  1. ESP8266从点灯到遥控小车(三)——组装小车,0代码开发APP控制小车

    ESP8266从点灯到APP遥控小车(三)--组装小车,0代码开发APP控制小车 文章目录 ESP8266从点灯到APP遥控小车(三)--组装小车,0代码开发APP控制小车 所需组件 一.小车所需组件 ...

  2. arduino 蓝牙 android 小车,arduino智能蓝牙小车

    大家好!这是小编第二次做小项目~ 小编目前专业是电气自动化的,不搞点硬件方面的东西,不学点控制技术,有点对不起自己所学的专业. 小编这次打算做arduino多功能智能小车~ 首先,为啥选择arduin ...

  3. 串口控制小车(二次开发)

    0.资料 项目工程文件夹 分文件原理 之前的代码 1.L9110S电机驱动模块demo 2.串口通信(习题4:PC发送字符串指令给单片机) 3.wifi模块(串口中断代码优化) 3.蓝牙模块 1.串口 ...

  4. 89c51控制小车运行c语言,STC89C52单片机蓝牙遥控小车代码

    所用模块: 1.蓝牙模块 2.超声波模块 3.LCD1602模块 4.L298N模块 5.寻迹模块 主要功能: 1.蓝牙可以遥控小车 2.超声波可以测距避障 3.小车可以寻黑线 使用逻辑: 串口初始化 ...

  5. 个人项目 小跟班——蓝牙控制小车(蓝牙控制篇)

    5 蓝牙的配置 到了核心部分了,首先,想要控制手机蓝牙的打开和关闭,需要在manifest中添加相应的权限: <uses-permission android:name="androi ...

  6. 基于51单片机的蓝牙控制小车的简单实现(有源代码,无图) (上篇)

    1. 简介 这是2016年底两周时间做的一个蓝牙小车,它分为上下两篇,本文是上篇.原本是发在了http://bbs.elecfans.com/ 的,不过由于我的博客都在CSDN上,因此我就把它们重新复 ...

  7. 【51】基于51单片机的蓝牙控制小车的简单实现(有源代码,无图)

    原文地址:http://bbs.elecfans.com/forum.php?mod=viewthread&tid=544143 此帖子现在有一个后续版本,实现了手机端的蓝牙程序控制小车运动以 ...

  8. ESP32:蓝牙BLE控制M3508电机

    ESP32:蓝牙BLE控制M3508电机 先给各位朋友拜个年,祝大家新春快乐,事事顺利,身体健康啊! 还是熟悉的3508,内容概述: ESP32主控 蓝牙BLE通信 使用实时系统(FreeRTOS) ...

  9. STM32蓝牙控制循迹避障小车源代码——4.蓝牙控制

    STM32蓝牙控制循迹避障小车源代码--4.蓝牙控制 注意-所需模块: 蓝牙模块 接线: 串口通信 A2–RX A3–TX 所有的代码都是直接从工程里面复制的,实测是没有问题的. 蓝牙控制原理: 设计 ...

最新文章

  1. 团队编程项目作业3-模块开发过程
  2. python刷抖音_用Python生成抖音字符视频!
  3. C++ Deque(双向队列
  4. 用HashMap去重
  5. 滴滴新规则明日起试行:将影响一大波人
  6. sd卡和sdio sdhc_想买TF卡,那些标注卡上的参数看懂了么?
  7. AutoPlay Media Studio光盘开发利器
  8. Oracle start with.connect by prior子句实现递归查询
  9. BAT大牛这样搞Python,真是绝了
  10. 又一知名教授在美被捕!饶毅发文声援,中方也回应了!
  11. c++ opencv mat_【CV实战】OpenCV—Hello world代码示例
  12. 一个元素调用css3动画 fixed元素会微抖动
  13. android导航工厂设置密码,导航工厂设置密码大全,所有导航工厂密码多少
  14. C#使用MX Component与三菱PLC建立通讯(以FX5U举例)
  15. java期末大作业:记事本
  16. 计算机毕业设计Java乡村基层政务管理系统(源码+系统+mysql数据库+Lw文档)
  17. ddos应急处理_来看看DDoS攻击应急预案
  18. MindManager22全新版思维导图软件工具
  19. COLLADAMaxNew插件,opencollada导出DAE文件格式 for 3dmax2019
  20. BTrace-Java 线上问题排查神器

热门文章

  1. 建模大佬们都不外传的3D max游戏建模神操作技巧
  2. 经常用电脑辐射大怎么办?这5个习惯可以防辐射
  3. qq三国单刀赴会服务器找不到,单刀赴会,收武器装备“图纸”,70-120等级,130级按套收,......
  4. java+调用飞信_java调用飞信接口发短信
  5. 算法:js 数组 array 去重,并显示所有重复的元素
  6. python输出水仙花数_python打印水仙花数(基础版)
  7. 2020黑客大会——深入浅出现代Windows Rootkit
  8. 2.安装node-red
  9. java编译器源码分析之语法分析器
  10. 梯度累积(Gradient Accumulation)