技术文档

单片机 蓝牙 灯 用10元钱的单片机自制「蓝牙遥控小车」

小编 2025-07-26 技术文档 23 0

用10元钱的单片机自制「蓝牙遥控小车」

本文会结合:电路学习、PCB 设计、焊接与单片机开发进行教学,并以视频和图文的形式 讲述如何制作出一辆帅气的智能小车 ,做到零基础也能学会!成本100多。

PS:视频在文末,STC32是一块制作成本只有10元的单片机:一不小心做出了产品级51单片机

一、功能介绍

逐梦壹号是这款智能小车的名字。它通过蓝牙连接手机APP遥控。拥有无人驾驶循迹功能。

以 STC32 核心板为主控 ,两节 3.7V14500 锂电池供电,经过 7805稳压芯片输出 5V 电压给单片机与其它模块进行供电。

一辆优秀的四驱小车,它的功能必须是强大的,逐梦壹号具备以下八项核心功能 ,且每一项功能都对应了单片机知识点

车头放置两个 LED,模拟汽车灯光系统 ,如行驶过程中的单闪,双闪以及近光灯和远光灯的功能,学习单片机的输出功能;使用独立按键,模拟汽车一键启动功能 ,模式切换功能,学习单片机的输入检测;无源蜂鸣器用于产生音乐警报功能 ,学习定时器功能配置;路上没电怎么办,使用电池电压检测功能 ,ADC 电阻分压网络给单片机采集电池电压,电量过低时会警报,学习 ADC 电压采集功能;四路电机独立控制,实现小车行走,学习电机驱动“及” PWM 输出功能;前方有障碍物,超声波避障, 读取与前方障碍物的距离,避免撞车,让小车行驶更安全,学习传感器的使用;使用 393 比较器电路与红外光电传感器检测地面黑线,实现小车无人驾驶循迹功能 ,学习传感器的使用;使用蓝牙模块,通过手机 APP 控制 小车行驶,掌握串口协议与数据传输;

逐梦壹号功能布局图如下所示:

图 2-1 逐梦壹号功能布局图

二、原理图设计

相信聪明的你已经对逐梦壹号的功能有了一个大致的了解,那么这些功能是如何实现的,它们的电路应该如何进行设计呢?

1.核心板电路

逐梦壹号上的主控是一块可拔插的 STC32 核心板,使用核心板的好处是可以自由设计更换主控,而且焊接起来更加方便。

在学习过程中完成逐梦壹号四驱车的设计后还可以用核心板去设计其它的扩展项目,另外核心板尺寸小巧可以直接插到面包板或者洞洞板 ,实现快递搭建电路模块进行验证。

图 3-1 STC32 核心板电路原理图

图 3-2 STC32 核心板功能布局图

核心板上板载 CH340N 串口芯片 ,配合程序下载按钮,可以直接进行程序烧录以及串口调试。24C02 Flash 存储芯片用于程序空间的扩展 ,适应更加复杂的项目开发使用 431 基准源给芯片提供稳定的基准电压 。作为最小系统必备的独立按键和 LED 灯也是必不可少的

单独对核心板进行学习,也能够掌握 STC32 的基本开发能力,接下来要做的就是通过一些扩展项目加强个人能力和培养与项目开发的能力。

2.电源输入电路

在设计电源电路时需要重点考虑四驱小车整体的工作电压:

比如 STC32 核心板的工作电压是 5V,电机参考电压是 6V,那么电源输入电压就不能低于 6V 。常见的供电设备就是外接电池。

一般的干电池是 1.5V,那至少需要 4 节电池, 而干电池又不能循环充电,容易造成资源浪费。故而选择支持充电的锂电池。

锂电池的种类很多,在具体选型的时候主要根据体积以及容量来选型。综合考虑小车整体大小,最终选用了 14500 两节锂电池供电,工作电压为 3.7*2=7.4V。

设计电路如图 3-3 所示:

图 3-3 电源输入电路

图中P1 为双节 14500 的电池座,装上电池后,经过 D1 防反接的二极管,开关 SW1 打开,电源通过 7805 线性稳压器稳压到 5V 输出。

C1 和C2 为电源滤波电容LED1 为电源指示灯R5 为限流电阻 ,这里取 10K,让LED 发光不会太亮,同时也是为了减少项目中所用元件种类;U1 为 7805 稳压器的散热片 ,避免工作过久芯片发热严重,给它降降温。

3.LED 驱动电路

没有车灯的小车是没有灵魂的,那还必须选择高亮的 LED 用来模拟汽车的左右车灯。

LED 灯的阴极接电源地 GND ,这里限流电阻取值就稍微小一些,让LED 电流更大,灯更亮;LED 灯的程序控制也比较容易,R7 电阻左端连接一个LED-R 的网络标签与单片机引脚连接 ,当引脚输出高电平时,二极管导通,LED 点亮;利用定时器及延时以及 IO 口输出配置就可以实现车灯闪烁以及高亮和弱亮的呈现效果了。

图 3-4 LED 灯驱动电路

4.按键输入电路

为了模拟一键启动以及模式切换功能,在智能小车上使用一个独立按键进行控制,可以实现长按以及短按的功能。

该按键引脚与单片机的中断引脚相连,也可以进行中断实验演示。

检测原理为:单片机的引脚与按键连接,当按键按下时, 按键导通接到 GND 电平 ,即单片机引脚检测到低电平后告诉单片机我已经检测到按键按下的信号了,你可以去执行 XXX 操作。这就是单片机外部信号检测的基本原理。

图 3-5 独立按键电路

5.蜂鸣器驱动电路

为了当智能小车能发出声音,你可能会想加上一个喇叭,但是同样还需要一个声音信号的产生,如此设计的话整体电路会变得比较复杂。

在众多电子元器件中,有那么一种神奇的元件,它可以发出各种音调的声音,它就是无源蜂鸣器。相对于无源蜂鸣器,它还有个亲兄弟叫有源蜂鸣器。

值得注意的是这里的“源”指的是振荡源而不是电源。

有源蜂鸣器只要通上电就可以发出响声 ,无需外围电路设计,缺点是只能固定发出某个频率的音调, 不能更改。

而无源蜂鸣器不能直接通电使用还需要外部输入一个振荡信号 ,缺点是外围电路设计相对复杂些,但能够自由控制蜂鸣器输出的声音,我们就可以使用无源蜂鸣器这一特性生成一些美妙的音乐了。

图 3-6 无源蜂鸣器驱动电路

由于单片机的 IO 口驱动电流太小,不能直接驱动无源蜂鸣器,所以需要专门设计一个驱动电路,如图 3-6 所示。

S8050 三极管起开关作用,当输入信号为高电平时,三极管导通,蜂鸣器发声。 二极管 D2 为续流作用,保护蜂鸣器不会损坏。

6.ADC 检测电路

ADC,即模拟信号转数字信号的转换器。

电压信号是一个模拟值,一直不断的变化状态的,使用单片机的 ADC 功能,可以将变化的电压状态转换成我们所需要的电压参数。

我们所用的锂电池电压为 3.7V 不代表电池满电电压是 3.7V, 而是 4.2V,当电池电压为 3.7V 时电量仅剩 20%,此时应注意充电。

有了 ADC 电压检测功能就可以很方便的时刻监控电池的容量,再结合无源蜂鸣器做一个电量过低的警报,提醒我们该去充电了。

逐梦壹号使用两节锂电池供电,即 4.2*2=8.4V,这个电压是不能直接接到单片机的 IO 口的,容易损坏单片机。 通用的处理方式是使用电阻进行分压或者说使用运放电路将电压降低到单片机容忍的电压以内。

这里我们使用了三颗 10K 的电阻进行分压,取 1/3 电压点接到单片机的 ADC 引脚。

图 3-7 ADC 电阻分压电路

7.电机驱动电路

电机驱动是小车的基础所在。单片机直接输出的电流太小,不足以带动小车行走。

电机电路采用了 RZ7899 电机专用驱动芯片 ,该芯片外围电路简单,非常适合智能小车等小型电机驱动应用。它由逻辑输入端口 BI 和 FI 控制电机前进、后退以及制动,配合单片机 PWM 输出可以控制电机转速。

在焊接时注意在电机上并联一个 104 的瓷片电容起着防干扰的作用。 电机则使用的 N20 电机,小巧精致,电机焊接时使用排针直接与电机控制引脚连接,十分方便,小车的安装后续可观看组装视频。

图 3-8 电机驱动电路

8.超声波避障电路

为了避免逐梦壹号在行驶过程中出现撞车事故,使用了一个超声波模块放置在小车车头。

超声波模块的型号为 HC-SR04 ,使用四个引脚与单片机连接,分别是 GND、VCC、Trig 以及 Echo 引脚。

除去电源引脚,只需要两根信号线就可以检测超声波, 也能检测前方障碍物的距离,检测原理方法将在软件部分讲解。

图 3-9 HC-SR04 超声波模块

图 3-10 超声波模块接口电路

9.红外循迹电路

红外循迹电路是以 ITR9909 传感器为核心使用 XD393 比较器进行检测输入状态 ,配合精度调整的电位器,测量距离在 1mm~15mm 范围 内可调节。

小车循迹一般是在白色地板上沿着一根黑线行走,利用红外光在不同颜色的反射情况进行识别:

红外光一直对外发射,车底如果是白色地板,光线会被折射回去,此时接收管接收到信号,经过比较器输出低电平,LED 指示灯亮,单片机检测到低电平;如果车行驶在黑线周边,红外光被黑色吸收,接收管接收不到发射的信号,此时比较器电路输出为高电平,LED 指示灯熄灭,单片机检测到高电平。

循迹其实也就是一个寻找黑线以及沿着黑线行走的过程。

图 3-11 红外光电循迹电路(右侧两路)

10.蓝牙接口电路

既然是要做一辆智能小车,那么无线控制少不了。

常用的智能小车控制方案有:红外、蓝牙、WIFI、2/4G 等方案。逐梦壹号所选用的是蓝牙控制,这种方式电路简单,手机就是遥控器,另外还可以学习蓝牙 APP 的设计。

智能小车上使用 HC05 蓝牙主从模块,一共有 6 个引脚。

EN 引脚用于控制蓝牙模块进入 AT 指令 ,设置为高电平时,可以设置蓝牙模块的状态与数据传输;VCC 引脚和 GND 引脚为电源输入引脚 ,输入电压范围为 3.6-6V;TXD 和 RXD 是用于与单片机连接的串口引脚 ,其中 RXD 接单片机的 TXD,TXD 接单片机的 RXD 引脚,此处需留意不能接反;最后一个引脚为 STATE 引脚,功能是显示蓝牙配对的状态。 当蓝牙连接上手机时,该引脚输出高电平。

图 3-12 HC-05 蓝牙主从模块

图 3-13 蓝牙模块接口电路

11.电路原理图及器件列表

将以上电路进行整合,我们就得到了下图的整体电路设计图。

图 3-14 逐梦壹号电路原理图

在嘉立创EDA 绘制逐梦壹号原理图时,可按照下表中的器件名称、封装及立创商城编号进行搜索设计,也可以自由选型,设计过程中如有疑惑可查看逐梦壹号原理图设计视频视频就在文末 ,以下物料清单仅供设计参考:

三、PCB 设计

完成电路原理图的设计之后那么下一步就来到了 PCB 设计环节。

1.小车外形设计

一辆帅气的四驱小车,那么必须拥有一个精致的车型。

我们可以在网络上找到各式各样四驱车的车型参照设计,如果你恰好会 3D 建模,还可以打造属于自己独一无二的智能小车。

图 4-1 田宫双星四驱车T2 底盘

图 4-2《四驱兄弟》胜利冲锋四驱车

智能小车的外形可以在专业的CAD 软件里面设计后将DXF 软件导入到嘉立创EDA 专业版里面作为板框层—即 PCB 的外形,也可以直接在软件里面根据自己的想法进行设计创造。

逐梦壹号的车型设计时参照了技小新四驱智能小车结合电路结构特性设计而成 ,完美地将所有元器件合理地摆放在车体上,即使不加外壳也显得十分好看。

具体设计方法请查看视频教程。

图 4-3 技小新四驱小车底盘图

图 4-4 逐梦壹号外形示意图

2.PCB 布局

在进行 PCB 设计一定需要注意的是布局的合理性 ,在有限的板子空间内放置电池、电机、核心板以及各种电路模块。

布局合理性指的是输入输出接口能操作方便各电路模块摆放在同一区域且摆放整理。

在对智能小车进行布局时只需要根据小车的功能区域进行摆放:四个电机分布在两侧,超声波模块放前面,光电循迹传感器靠近车头,电池盒和核心板位置放中间位置,电源及开关放车尾便于操作

这样一顿操作下来其实小车整体布局已经出来了,左右两翼可以根据电路情况摆放蓝牙模块以及蜂鸣器电路。

总结下来就是先放核心器件,再摆放其它次要器件 ,器件布局时按各个电路模块放置, 考虑电气特性,摆放整齐合理。 详细布局流程与方法请观看视频课程:

图 4-5 逐梦壹号布局参考图1

图 4-6 逐梦壹号布局参考图 2

3.PCB 走线

一个好的布局相当于完成了 PCB 设计的一大半工作。

在 PCB 走线时需将电源线适当加粗,网络线粗细程度为:GND 线>电源线>信号线

在逐梦壹号智能小车设计中,主电源输入线宽为 45mil,VCC 及+5V 网络线宽为 30mil,常规信号线为 15mil,电机驱动处使用 80mil 粗导线连接 ,提高导线过流与散热能力。

图 4-7 电源线与信号线线宽比较

图 4-8 电机驱动芯片连接图

走线避免走直角,使用 45°角折线或者圆弧走线,走线以横平竖直为主,需要拐弯时拐角要小,保持走线的美观性。

图 4-9 圆弧拐角走线(正确)

图 4-10 135°拐角走线(正确)

图 4-11 直角拐角走线(错误)

图 4-12 拐角折线过长(错误)

4.整理与优化

PCB 走线完成后接下来进行下一步,整理与优化。

这一个步骤需要像菜市场挑菜一样,细细检查,把一些可能存在的问题依次排除,最后在加上丝印标记以及 logo 就可以完成整个 PCB 的设计了,可根据以下步骤逐一优化 PCB:

第一步:检查 DRC,根据提示解决 DRC 错误

DRC(设计规则检查)的检查在 PCB 设计里面尤为重要,为了避免走线遗漏以及走线太近等问题的出现,在完成 PCB 设计后需进行 DRC 检查。

点击嘉立创 EDA 顶部工具栏的“设计”-“DRC 检查”,也可以使用快捷键“S”打开底部面板 ,选择 DRC,点击“检查 DRC”,检查出问题后点击问题的对象即可在PCB 中定位到错误的地方,根据报错解释进行修改即可。

图 4-13 的错误提醒就是忘记连接 GND 导线了,当然这个问题可以用敷铜功能快速解决。

图 4-13 DRC 检查窗口

第二步:放大 PCB,逐步检查走线连接情况

这一步其实就是用鼠标滚轮放大 PCB,从电源输入部分再到单片控制电路逐一排查,对整体走线进行优化。

需要检查的地方有: 导线超过焊盘冒尖、导线折角过长、差分等长走线未对齐、焊盘出线方向不对、导线太细、导线间距太窄、电源走线不合理等基础问题。

检查完毕后还需要对整体 PCB 进行添加泪滴操作 , 以加固焊盘与导线的连接,避免焊接过程中过热导致导线铜皮脱落。

第三步:添加丝印及 logo 标识

走线优化完成便我们的 PCB 设计已经接近尾声了,为了让这份辛苦有一个好的收尾,丝印标记以及 logo 添加也是必不可少的。

逐梦壹号智能小车上需要外接一个蓝牙模块以及超声波模块,设计时需要留意是否有明显标记引脚功能,防止模块插反报废。

接口位置标记后接下来需要对所有的元器件位号进行整理,位号摆放位置需一致 。空间允许的情况下还可以把元件的参数也显示出来,在焊接时就显得十分方便了。

最后再合适的位置加上自己喜欢的图案以及 logo,完成 PCB 的设计。

四、视频课程

智能小车视频课程<原理图绘制教学>如下:

视频加载中...

逐梦壹号的开源文章已经结束,但实践学习之路才刚刚开始 ,当你结合视频课程继续学习,你将收获:

学习单片机项目电路分析的方法,学会如何看懂原理图;学习单片机电路设计方法,初步掌握元器件选型与数据手册阅读;掌握嘉立创 EDA 设计原理图和 PCB 方法,设计属于自己的智能小车;掌握元器件焊接的基础方法与硬件调试技能,成为新一代“焊武帝”;学习 STC32 单片机的基础功能和外设使用,上手 STC32 项目开发;掌握嵌入式软件开发、代码的阅读与 BUG 调试的方法与技巧;

希望大家可以通过小车的学习,顺利掌握单片机项目的开发能力!

如果您认为这篇文章不错,欢迎点赞、关注、转发!

我会持续更新优质开源项目!

电子DIY:基于手机蓝牙控制的LED灯的设计

电子DIY:基于手机蓝牙控制的LED灯的设计

简介:本研究采用更普遍的蓝牙技术,采用手机蓝牙与单片机通信产生可调占空比PWM波信号控制LED驱动电路实现LED的调光和DIY调色。

1.引言

随着,2012年10月30日飞利浦在AppleStore出售最新的高科技Hue系列LED灯,并且只会交由苹果出售。Hue系列将是完全可有自定义的,并且通过一个灯泡内红蓝绿三原色的LED可以混合出1600万种颜色的灯光。整个过程完全由iPhone上的App来进行控制。从而引发了智能灯控发展的新思考,国内相关人士也纷纷进行研究。考虑到Hue是采用WiFi无线控制,而国内WiFi并未普及,本研究采用更普遍的蓝牙技术,采用手机蓝牙与单片机通信产生可调占空比PWM波信号控制LED驱动电路实现LED的调光和DIY调色。

2.脉冲宽制(PWM)调光技术

PWM调光是一种利用简单的数字脉冲,反复开关LED驱动器的调光技术。应用者的系统只需要提供宽、窄不同的数字式脉冲,即可简单地实现改变输出电流,从而调节LED的亮度。PWM调光的优点在于调光范围大,只要带宽足够,任何模拟值都可以使用PWM进行编码,PWM调光可以在精确控制LED的亮度的同时,也保证LED发光的色度。

2.1 脉冲宽制(PWM)调光原理

利用人眼睛视觉惰性,按固定频率操作占空比实现LED亮度调节,只要调光比即PWM波频率大于200Hz人眼就不会感觉到LED的闪烁。具体调光实现,通过控制LED的亮灭时间,从而控制LED亮度,从电力学来看就是控制一定周期内电流的有效值。这种方法在改变电流有效值大小的同时不改变电压和电流的大小,这样就保证了LED的发光色度,这是模拟调光和可控硅调光无法实现的。

2.2 占空比

占空比是指高电平在一个周期之内所占的时间比率。方波的占空比为50%,占空比为0.5,说明正电平所占时间为0.5个周期。

Ts为脉冲周期

Tw为脉冲宽度

占空比τ=Tw/Ts×100。

占空比的解释可以归纳为如下几种:

1)在一串理想的脉冲序列中(如方波),正脉冲的持续时间与脉冲总周期的比值。

2)在一段连续工作时间内脉冲占用的时间与总时间的比值。

3)在周期型的现象中,现象发生的时间与总时间的比。

也就是电路释放能量的有效时间与总释放时间的比。

2.3 调光比

调光比则是按下面的方法计算:

Foper=工作频率

Fpwm=调光频率

调光比率=Foper/Fpwm

其实也就是调光的最低有效占空比,比如Foper=100khz;Fpwm=200Hz,则调光比为:

100k/200=500。

3.蓝牙模块组成

3.1 蓝牙技术基础

蓝牙的创始人是瑞典爱立信公司,蓝牙技术是一种无线数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接。手机之间通过蓝牙实现数据共享已成为常理,将手机变身为遥控器为人们的生活带来无限方便。

蓝牙技术由三部分组成,包括蓝牙无线电技术、蓝牙协议栈和蓝牙互操作性。

3.1.1 蓝牙无线电技术

蓝牙无线电工作在全球通用的2.4GHzISM(即工业、科学、医学)频段,支持全双工传输,使用IEEE802.15协议。蓝牙设备即连即用,抗干扰能力强、使用方便[2]

3.1.2 蓝牙协议栈

蓝牙协议栈包含一个软件栈和一个硬件栈。蓝牙硬件协议栈由蓝牙硬件提供,蓝牙软件协议栈由软件实现。蓝牙软件协议栈提供Java蓝牙API给程序开放人员使用。

3.1.3 蓝牙互操作性

蓝牙互操作性包括三方面内容:①通用访问Profile定义了设备管理功能性;②服务发现应用Profiles定义了服务发现方面的内容;③串口Profiles定义了互操作设备和模拟串口电缆的能力3.2 HC-O6蓝牙模块。

BC04外置8M Flash,带EDR模块HC-06为民用级,兼容HC-04工业级。其中,HC-06模块的TX管脚跟STC15F204EA单片机的P3.0管脚相接,RX管脚跟P3.1接。HC-06模块接收手机端发来的数据,然后在通过串口TR,TX管脚与单片机通信。

蓝牙2.0带EDR,2Mbps-3Mbps调制度,内置2.4GHz天线,外置8Mbit FLASH,低电压3.3V工作(3.1V~4.2V)配对时30~40MA波动,配对完毕通信8MA,可选PIO控制标准HCI端口(UART or USB),数字2.4GHz无线收发射,CSR BC04蓝牙芯片技术,自适应跳频技术,蓝牙Class 2功率级别,工作温度为-25至+75,协波干扰为2.4MHz,发射功率3dBm,有效控制距离为10m。

4.手机APP设计

4.1 蓝牙连接相关程序设计

首先,初始化本地蓝牙设备,建立LocalDevice类,包括取得本地设备实例、蓝牙名称、设置发现模式、获得发现代理。创建public int BTS_Init()类函数,实现蓝牙初始化判断,寻找默认蓝牙设备,打开蓝牙。

启动蓝牙设备搜索,创建public voidBTS_StartScan()类函数,开始寻找从机蓝牙设备,注册搜寻函数,创建public int BTS_ConnectToDevice(String DeviceAddress)类函数,实现连接到一个指定的蓝牙设备。

创建public int BTS_SendDates(Stringbuffer)类函数实现字符串发送到已连接好的蓝牙设备上,创建public int BTS_Finish()类函数结束蓝牙通信,最后创建接收ACTION_FOUND广播的BroadcastReceiver privatefinal BroadcastReceiver mReceiver=newBroadcastReceiver()。

4.2 控制信号相关程序设计

首先创建一个用于控制信号的类publicclass PwmcontrolActivity extends Activity{},里面包含创建界面的类函数public voidonCreate(BundlesavedIn stan ceState){},发送控制信号类函数public void onStop TrackingTouch(SeekBar seekBar){}。

创建类class InitThread extends Thread{},实现资源加载线程,里面创建用于四路信号之间转换的public InitThread(PwmcontrolActivity act){}类函数,实现与蓝牙程序接口的public void run()线程体,用于软件退出的类函数public booleanonKeyDown(int keyCo de,KeyEvent event)。

5.单片机控制信号设计

5.1 硬件电路设计

系统框图如图1所示,本硬件电路采用STC15F204EA单片机为主控器,CH-06蓝牙模块的TXD与单片机11管脚P3.0连接,RXD与P3.1相连,实现蓝牙串口通信连接,从P1.0,P1.1,P1.2,P1.3四个口输出四路可调占空比的PWM信号,采用一个L298芯片将单片机控制信号和LED电源驱动隔离,避免了单片机带负载能力弱的缺点,以实现驱动大功率LED。

图1 系统框图

5.2 程序设计

主函数流程图如图2所示,定义完相关变量和相关函数声明后,设计串口通信函数,设置定时器1中断,中断函数为占空比控制函数,然后设计数据接收函数,当串口服务函数接收到数据时,将数据发送到数据接收函数,然后将接受到的字符数据通过字符转型函数进行字符的转型,然后通过标志iCommdType判断控制哪一路信号,当无标志信号来时,一直循环检查,检查到相应的标志信号,然后执行占空比调节函数蓝牙模块与单片机之间的通信使用模拟串口实现的,串口为标准配置:波特率9600,编写一个串口初始化函数void UART_INIT(),初始化相关标志,和寄存器,然后编写中断接收函数void tm0()interrupt 1 using 1,接收串口发来的数据。设定定时器1中断并编写中断服务函数void tm1()interrupt 3 using1,实现P W M的占空比控制。编写数据接收函数char GetUartData(),将中断接收函数里接收到的数据发送这里,等待接收数据函数void WaitForChars(unsigned chariCount,char *Dest)通过调用数据接收函数char GetUartData(),将手机发送来的数据装载到定义好的变量数组,然后通过字符转型函数unsigned int GetCmdType(char*Commd),将字符型数据转成数字,通过标志判断,要控制哪一路PWM波,然后将相应的数据传到控制占空比的中断服务函数,改变其占空比的输出。

图2 主函数流程图

6.结果展示

6.1 手机端界面

如图3所示,其中W调节白光,从0到100R、B、G共有100万种组合,每一种组合对应一种颜色,通过改变RBG的组合,从而调节LED的颜色。

图3

6.2 PWM波输出效果

如图4所示,这是其中一路PWM波的控制信号,通过手机端控制其占空比,用示波器测出其波形。

图4

6.3 实际调光调色效果

选择几种组合调色效果如图5所示。

图5

相关问答

如何用 蓝牙 控制led ?_住范儿家装官网

首先,如果实现智能控制必须是有发射端和接收端,手机不用说已经有蓝牙功能了,问题是你的LED灯有没有蓝牙模块,如果有的话,就可以实现。估计我的回到...

LED台灯,能连 蓝牙 吗?

一般的LED台灯,不能连。但是蓝牙LED灯,LED灯内置蓝牙模块,可以用手机蓝牙连接LED的蓝牙模块,用手机APP来控制灯的亮暗和色彩。如果要用手机控制。手机端需...

利用 单片机 做一个让 随着音乐节奏闪烁的系统?

单纯地做一个呼吸灯并不厉害,买个开发版,接上几个灯泡,最后程序写进去,这用不了多长时间。难的是把呼吸灯做成一款产品。我大学期间和搭档也做过呼吸灯,大概...

51 单片机蓝牙 模块接法?

如果使用串口透传蓝牙模块,蓝牙模块通过三根线与51单片机的IO口连接:蓝牙模块的数据发送端txd与单片机串口的数据接收端rxd相连,蓝牙模块的数据接收端rxd与单...

蓝牙 模块AT指令修改如何用 单片机 实现 - 1... - 懂得

使用AT指令的时候,先使蓝牙模块进入AT模式,然后你就当蓝牙就是命令的接收端,单片机或者PC串口就是命令的发送端(就当蓝牙是独立的模块)。串口发送的...

蓝牙 模块AT指令修改如何用 单片机 实现 - 156****9724 的回答 ...

这个很简单,不用单片机的,你先是对蓝牙模块AT设定好,直接将TXD、RXD与单片机相连就行。对蓝牙模块AT设定通过usb转串口接到蓝牙就可以通过电脑的串...

51 单片机 与32 单片机 连接 蓝牙 一样不?

一样的,蓝牙和芯片型号无关一样的,蓝牙和芯片型号无关

单片机 与手机之间进行通信,什么方式比较好 - 懂得

1.串口对串口(不过一般普通用户不太容易连接到手机的串口)2.蓝牙:单片机+蓝牙模块-》手机蓝牙模块-》手机上应用程序3.红外:单片机+红外模块-》手机...

红绿灯能连 蓝牙 吗?

哈哈,这个问题真有趣!红绿灯和蓝牙是完全不同的东西,它们的功能和用途也不一样。红绿灯是用来控制交通流量的信号灯,而蓝牙是一种无线通信技术,用于在短距离...

HC-06 蓝牙 模块 如何与5v的51 单片机 通信 - 懂得

应该是51单片机的串口连接蓝牙模块的串口,通过单片机控制蓝牙的工作状态,实现通信。蓝牙模块是3.3V的话是不能直接接5V电压的可以加一个1117-3.3将...

猜你喜欢