项目效果:通过手机蓝牙向蓝牙模块发送指令,蓝牙模块接受指令并通过串口发送给单片机,单片机控制舵机旋转角度,实现开,关节能灯开关。

一.设备:

硬件:BT08-B蓝牙模块(较为便宜),MG90S舵机(较为便宜),

51单片机(STC89C52RC芯片);

软件:STC-ISP,keil 4,大夏龙雀—串口助手(微信小程序);

1. BT08-B(蓝牙模块):

BT08蓝牙模块资料:https://pan.baidu.com/s/1n1hVz_CiRZYZchYPTSr9lA 提取码: zu9r

蓝牙名称:BT04-A;

初始密码:1234;

蓝牙模块未连接成功,指示灯闪烁;连接成功则不闪烁。

如果出错,查阅AT指令。如果还有问题,bilibili上搜大夏龙雀有相关视频。

2.MG90S舵机介绍:

PWM信号线(黄色),电源线VCC(红色),地线GND(棕色)

使用电压:3.5-6V

分类:普通舵机分为180度舵机和360度舵机。

控制:所有的普通舵机都是由PWM控制的。舵机的控制一般需要一个20毫秒左右的时基脉冲,该脉冲的高电平部分一般为0.5-2.5ms(500-2500us)。

360度舵机是PWM控制它的旋转速度和旋转方向,500-1500us的PWM控制它正转,值越小,旋转速度越大;1500-2500us的PWM是控制它的反转,值越大,旋转速度越大。1500us的PWM控制它的停止。

180度舵机是PWM控制它的旋转角度,500-2500us的PWM对应控制180度舵机的0-180度,是一一对应的,一个PWM对应一个角度。

这个PWM图与我们用的PWM图略有不同,大家大概看一下,主要强调一下PWM的起始和最终位置都要为低电平,否则舵机不工作。

3.51单片机

有一块核心板即可,无需过多外设。(主要现在板子也挺贵的。。。)

IO口:P1^1(舵机PWM信号输出口接舵机黄色线);P3^0(单片机RXD接蓝牙模块TXD);

P3^1(单片机TXD接蓝牙模块RXD);只是VCC,GND接口需要加扩展板。

4. 大夏龙雀串口助手

进入小程序,设置UUID,BT16模块,确定。

操作:

连接操作:蓝牙模块通电,手机蓝牙连接上,然后进入微信小程序连接进入,等待连接成功,若长时间连接不成功,退出小程序重连。

断开操作:小程序断开,蓝牙模块指示灯不闪烁,小程序无法重连,需要手机蓝牙功能关闭才能重新连接。

数据发送:默认为字符格式。具体查阅ASCII表;

5.STC-ISP

烧录程序需要冷启动,下载程序时RXD,TXD最好断开。

代码展示:

#include <reg52.h>sbit PWMOUT = P1^1;
unsigned char THRH = 0;   //  高电平高字节
unsigned char THRL = 0;
unsigned char TLRH = 0;      //  低电平低字节
unsigned char TLRL = 0;
unsigned char RXByte = '3'; //串口数据缓存区设初值为'3';
void ConfigPWM( float ms1,float ms2);
void ClosePWM(void);
void ConfigUART(unsigned int baud);void main(void)
{unsigned int i = 0;for(i = 0;i<3000;i++);EA = 1;            //使能总中断PWMOUT = 0;           //舵机低电平起始,高电平触发ConfigUART(9600);  //配置波特率为9600while(1){switch(RXByte){case 48:                   //'0'的十进制为48   ,'0'为关闭ConfigPWM(0.5,19.5);for(i = 20000; i > 0; i-- );ClosePWM();for(i = 1000; i > 0; i-- );break;case 49:                  //'1'的十进制为49,'1'为开启ConfigPWM(2.5,17.5);for(i = 20000; i > 0; i-- );     ClosePWM();for(i = 1000; i > 0; i-- );break;case 51:                 //'3'的十进制为51,'3'为平衡位置ConfigPWM(1.55,18.45);for(i = 20000; i > 0; i-- );ClosePWM();for(i = 1000; i > 0; i-- );break;default:break;}}
}
/* 串口配置函数,baud-通信波特率 */
void ConfigUART(unsigned int baud)
{SCON  = 0x50;  //配置串口为模式1TMOD &= 0x0F;  //清零T1的控制位TMOD |= 0x20;  //配置T1为模式2TH1 = 256 - (11059200/12/32)/baud;  //计算T1重载值TL1 = TH1;     //初值等于重载值ET1 = 0;       //禁止T1中断ES  = 1;       //使能串口中断TR1 = 1;       //启动T1}
/* UART中断服务函数 */
void InterruptUART(void) interrupt 4
{if (RI)  //接收到字节{RI = 0;RXByte = SBUF;SBUF = RXByte;  //将接收到的字符反回以检验是否正确 }if(TI)    //发送字节{TI = 0;}
}
void ConfigPWM( float ms1,float ms2)    //配置 PWM
{unsigned  long high;unsigned  long low;high = 11059200/12;high = (high*ms1)/1000;high = 65536 - high;THRH = (unsigned char)(high >> 8);THRL = (unsigned char) high;low = 11059200/12;low = (low*ms2)/1000;low = 65536 - low;TLRH = (unsigned char)(low >> 8);TLRL = (unsigned char) low;TMOD &= 0xF0;TMOD |= 0x01;TH0 = THRH;TL0 = THRL;ET0 = 1;TR0 = 1;PWMOUT = 1;
}
void InterruptTimer0(void) interrupt 1        // PWM中断
{if(PWMOUT == 1){TH0 = THRH;TL0 = THRL;PWMOUT = 0;}else{TH0 = TLRH;TL0 = TLRL;PWMOUT = 1;}
}
void ClosePWM(void)                  //关闭PWM,停止舵机
{TR0 = 0;ET0 = 0;PWMOUT = 0;                    //舵机最终低电平停止

并不完美,但实测可以运行。

 

BT08-B(蓝牙模块)与MG90S(舵机)开发灯控系统(基于51单片机)相关推荐

  1. 智能手环功能模块设计_基于51单片机的智能手环蓝牙模块设计

    龙源期刊网 http://www.qikan.com.cn 基于 51 单片机的智能手环蓝牙模块设计 作者:王烈进 王游司 陈洪燕 孙超 卢宇 来源:<电脑知识与技术> 2018 年第 2 ...

  2. HC-05蓝牙模块与STM32控制led灯亮详解

    HC-05蓝牙模块与STM32控制led灯亮 一.HC-05蓝牙模块解析 1.简介 2.HC-05原理 3.HC-05实物图 二.使用AT指令进行配置 1.进入命令响应工作模式 2.配置串口 3.进行 ...

  3. 最简单DIY基于51单片机、PCA9685、IIC、云台的舵机集群控制程序

    51单片机物联网智能小车系列文章目录 第一篇:最简单DIY的51蓝牙遥控小车设计方案 第二篇:最简单DIY串口蓝牙硬件实现方案 第三篇:最简单DIY蓝牙PS2遥控器控制蓝牙智能小车 第四篇:最简单DI ...

  4. 最简单DIY基于51单片机的舵机控制器

    51单片机物联网智能小车系列文章目录 第一篇:最简单DIY的51蓝牙遥控小车设计方案 第二篇:最简单DIY串口蓝牙硬件实现方案 第三篇:最简单DIY蓝牙PS2遥控器控制蓝牙智能小车 第四篇:最简单DI ...

  5. 1.基于51单片机的蓝牙手机遥控小车

    第一节  基于51单片机控制的蓝牙遥控小车 51控制的蓝牙遥控小车是楼主大一刚开始接触单片机时DIY的项目,时间大概是2016年的6月,现在已经是19年的5月底,借毕业前有闲时间写一下之前自己做过得种 ...

  6. 基于51单片机蓝牙密码锁

    目录 一.项目需求 二.原理图 三.设计思路 四.实物 五.代码 资料下载地址:基于51单片机蓝牙密码锁-单片机文档类资源-CSDN下载 一.项目需求 1.采用DS1302时钟模块,通过该模块可检测当 ...

  7. (含代码)基于51单片机的红外遥控(独立按键)舵机开关灯控制

    硬件说明: 采用STC89C51作为主控芯片,结合SG90舵机模块,红外遥控(独立按键),等电路模块实现远程控制舵机. 应用实例: 在不改变外部电路的情况下,实现远程开灯,关灯. 远程控制机器开关状态 ...

  8. 基于51单片机制作的蓝牙小车

    基于51单片机制作的蓝牙小车 这是本人(小菜鸡一枚)于大一寒假所做的小玩意,以展现我这几月所学,这也是我发的第一篇博客,准确来说这可能是我搞51单片机的巅峰所做了,因为部长说以后要学stm32开发板了 ...

  9. 54、基于51单片机饮水机温度水位控制无线蓝牙APP控制报警系统设计(程序+原理图+PCB源文件+Proteus仿真+参考论文+开题报告+元器件清单等)

    方案的选择 方案一:采用51单片机作为控制核心,配合无线蓝牙模块.水温加热模块继电器开关.基于Dallas单线数字式的DS18B20温度传感器模块.蜂鸣器报警模块.按键模块.LCD1602液晶显示器模 ...

最新文章

  1. Java selenium操作下拉滚动条的几种方法
  2. oracle 600 侯,oracle在导入数据时报600错误的解决方法
  3. C++编译时多态和运行时多态
  4. 51单片机之定时器\计数器的工作原理
  5. poj 1511 Invitation Cards
  6. php表示昨天_php输出各种时间代码表示
  7. 职教高考专业课考计算机,职教高考和普通高考一样吗
  8. Vim安装使用和配置
  9. 浅析DC/DC转换器未来市场的发展前景
  10. 如何在路由上封掉某个ip或某个断口
  11. 中国500强企业是如何构建电子签章系统的?
  12. 关于拼多多的一些分析//2021-2-26
  13. Sigma Designs SMP8910媒体处理器的3DTV、蓝光和OTT体验
  14. Python 搭建excel数据分析环境(符Demo源码)
  15. pic16f1829 c语言,PIC16F1829 串口初始化程序及应用
  16. 【python】Python性能鸡汤
  17. 《王者圣域》2.23上线链游玩家|放置塔防、趣味竞技
  18. 四、注入(2)渗透测试常用工具
  19. 网管入门需掌握的电脑知识
  20. 【无标题】自定义Logo的WindowsPE?

热门文章

  1. LeetCode_589
  2. 2021年10月18日
  3. SAP公司间关联交易
  4. VC的调试中,AssertValid和Dump函数的应用(转)
  5. 5个轻量版小内存微博免费分享,堪比官方版,没多少人用过
  6. JSP总结(非常详细)
  7. python 二分法详解
  8. Hyperledger Burrow EVM
  9. 识别图中文字软件哪个好?推荐这四个软件给大家
  10. 【PEST++】05 QA常见问题释疑