本项目将使用智能手机设置rgb led灯带的颜色,这些rgb灯带内建蓝牙功能,可接收智能手机上的android应用程序发送的指令。这样,我们就可以通过手机控制rgb led灯带的颜色了。如果你觉得这还不够酷,文章后部分介绍的是声控rgb led灯带的制作,同一电路,两种用途!
电路图及bom表 本项目只有三个关键组件,bom表如下:
- bluetooth模组(hc05)
- arduino nano开发板
- 可寻址rgb led灯带
- 杜邦线
rgb led灯带只有三个接口线:12v、gnd、din。其中,din用于数据输入,连接于arduino开发板的数字引脚d13;灯带和arduino nano开发板使用来自适配器的同一12v电源供电。
hc05具有四个引脚:vcc、gnd、txd、rxd。其中,vcc引脚从arduino开发板的5v供电;gnd连接于公共接地引脚,txd和rxd分别连接于数字引脚d4、d5。
操作说明 电路从适配器供电后,灯带的所有led熄灭,只有hc05模组闪烁,表示正在寻找另一个即将配对的蓝牙设备。
如果希望改变灯带颜色,就用智能手机发送配对信息,hc05模组的默认密码为1234。当手机与hc05模组连接后,闪烁速度将会慢下来。
用手机输入并发送字母‘r’,手机就通过蓝牙把‘r’发送给hc05模组。hc05模组收到‘r’后,将通过串口将其发送给 arduino。
arduino收到‘r’后,就把数据传递给 rgb 灯带,并设置灯带中所有rgb led灯珠的颜色为红色(red),灯带中的所有led灯珠以红色(red)方式点亮。
同样,用android应用程序发送如下字母,将看到预期的灯带颜色。
最后,如果希望灯带上的所有led熄灭,那就用android程序发送字母一个‘x’吧。
有趣吧!以下是本项目的arduino代码:
#include
#include
#define num_leds 40
#define data_pin1 13
#define tx_pin 4
#define rx_pin 5
int i;
char recv_char;
crgb led_strip1[num_leds];
softwareserial bt_serial(rx_pin,tx_pin);
void setup()
{
fastled.addleds(led_strip1, num_leds);,>
for(i=0;i;i++)>
fastled.show();
delay(1000);
for(i=0;i;i++)>
fastled.show();
delay(1000);
for(i=0;i;i++)>
fastled.show();
delay(1000);
bt_serial.begin(9600);
bt_serial.println(select desire colour);
}
void loop()
{
if(bt_serial.available())
{
recv_char = bt_serial.read();
bt_serial.println(recv_char);
switch(recv_char)
{
bt_serial.println(recv_char);
case 'r':
for(i=0;i;i++)>
fastled.show();
break;
case 'y':
for(i=0;i;i++)>
fastled.show();
break;
case 'o':
for(i=0;i;i++)>
fastled.show();
break;
case 'g':
for(i=0;i;i++)>
fastled.show();
break;
case 'l':
for(i=0;i;i++)>
fastled.show();
break;
case 'b':
for(i=0;i;i++)>
fastled.show();
break;
case 's':
for(i=0;i;i++)>
fastled.show();
break;
case 'c':
for(i=0;i;i++)>
fastled.show();
break;
case 'p':
for(i=0;i;i++)>
fastled.show();
break;
case 'm':
for(i=0;i;i++)>
fastled.show();
break;
case 'x':
for(i=0;i;i++)>
fastled.show();
break;
case 'w':
for(i=0;i;i++)>
fastled.show();
break;
}
}
}
项目升级:声控led灯带
如果觉得蓝牙还不够方便,那就来个声控的!也就是说,你可以说出想要的led灯带颜色。例如,你大声说“blue”,led灯带就显示蓝色了!!!!
其实,这无需额外电路,只要从google商店下载一个“arduino bluetooth controller” app即可,这个app会将语音命令转化成text文本,并通过手机的蓝牙功能发送给另一部手机。具体操作步骤如下:
1.下载并安装 arduino bluetooth controller 应用程序。
2.打开并安装该,程序会提示你开启手机的蓝牙功能。
3.turn on 蓝牙功能。
4.程序将寻找另一台蓝牙设备,点按 “available device”就会发现 hc05模组。
5.最后,连接 hc05 模组。
6.下载如下 arduino 代码:
#include
#include
#define num_leds 43
#define data_pin1 4
#define tx_pin 3
#define rx_pin 2
int i,j=0,k;
char recv_color_str[8];
char red[4] = red;
char green[6] = green;
char blue[5] = blue;
char magenta[8] = magenta;
char yellow[7] = yellow;
char orange[7] = orange;
char white[6] = white;
char purple[7] = purple;
char rainbow[8] = rainbow;
char black[6] = black;
crgb led_strip1[num_leds];
softwareserial bt_serial(rx_pin,tx_pin);
void setup()
{
fastled.addleds(led_strip1, num_leds);,>
for(i=0;i;i++)>
fastled.show();
delay(1000);
for(i=0;i;i++)>
fastled.show();
delay(1000);
for(i=0;i;i++)>
fastled.show();
delay(1000);
bt_serial.begin(9600);
// serial.begin(9600);
//serial.println(select desire colour);
}
void loop()
{
while(bt_serial.available())
{
if(bt_serial.available()>0)
{
recv_color_str[j] = bt_serial.read();
serial.print(recv_color_str[j]);
j++;
}
}
if(strcmp(recv_color_str,black)==0)
{
//serial.println(recv_color_str);
for(i=0;i;i++)>
fastled.show();
j=0;
for(k=0;k
fastled.show();
j=0;
for(k=0;k
fastled.show();
j=0;
for(k=0;k
fastled.show();
j=0;
for(k=0;k
fastled.show();
j=0;
for(k=0;k
fastled.show();
j=0;
for(k=0;k
fastled.show();
j=0;
for(k=0;k
fastled.show();
j=0;
for(k=0;k
fastled.show();
j=0;
for(k=0;k<8;k++) recv_color_str[k] = '\0';
}
else if(strcmp(recv_color_str,rainbow)==0)
{
//serial.println(recv_color_str);
for(i=0;i<3;i++) {led_strip1[i] = crgb::yellow;}
for(i=3;i<6;i++) {led_strip1[i] = crgb::magenta;}
for(i=6;i<9;i++) {led_strip1[i] = crgb::orange;}
for(i=9;i<12;i++) {led_strip1[i] = crgb::blue;}
for(i=12;i<15;i++) {led_strip1[i] = crgb::green;}
for(i=15;i<18;i++) {led_strip1[i] = crgb::red;}
for(i=18;i<21;i++) {led_strip1[i] = crgb::cyan;}
for(i=21;i<24;i++) {led_strip1[i] = crgb::yellow;}
for(i=24;i<27;i++) {led_strip1[i] = crgb::magenta;}
for(i=27;i<30;i++) {led_strip1[i] = crgb::orange;}
for(i=30;i<33;i++) {led_strip1[i] = crgb::blue;}
for(i=33;i<36;i++) {led_strip1[i] = crgb::green;}
for(i=36;i<39;i++) {led_strip1[i] = crgb::red;}
for(i=39;i<43;i++) {led_strip1[i] = crgb::cyan;}
fastled.show();
j=0;
for(k=0;k<8;k++) recv_color_str[k] = '\0';
}
else
{
j=0;
for(k=0;k<8;k++) recv_color_str[k] = '\0';
}
}
将这些代码上传到 arduino ide后,只要对着手机喊出颜色名称,灯带就会按照你的要求改变颜色了。
云计算积极推动核电领域、能源行业乃至千行百业加快数字化转型
微型片式元件立碑缺陷的机理、影响因素及解决措施
ThinkPad T41拆解:带你全面了解ThinkPad
用友网络2019实现营业收入85.10亿元,坚持3.0战略净利润接近翻倍
部署企业统一通信四步骤
用自己声音或智能手机控制RGB LED灯带实现梦幻效果
嵌入式系统中高速度大容量的数据存储器件的综合介绍
什么是传输线?传输线电路模型简析
现实就是残忍,美国联邦快递CEO议区块链:要么布局,要么出局
三元催化器寿命多长_三元催化器多久更换_三元催化器安装位置在哪
海康威视发布远距离无线传输设备
汽车电路原理图的识读方法
杨思枏:辉能科技陶瓷电池(LCB)的技术、产品与量产能力发展回顾与展望
继VR、AR之后,MR(混合现实)正在悄然升温
Intel 7nm Xe独立显卡问世,一切才刚刚起步
电子元器件的故障特点 电子元器件配单使用注意事项
刚开发的新大陆:3D打印技术可制造柔性电路板
一种三维激光雷达SLAM算法名为地面SLAM
深天马拟在厦门建第6代柔性AMOLED生产线项目
力矩电机的主要特点是具有软的机械特性