由于圣诞节快到了,没有装饰和圣诞树,它的本质是不完整的。所以,不要使用我们每年都放的旧圣诞树装饰品,让我们更上一层楼,使用带有 Neo 像素 LED 灯条、JQ6500 语音模块和PIR 传感器的 Arduino 。PIR传感器用于检测运动,JQ6500语音模块用于播放圣诞颂歌,Neo Pixels用于点亮圣诞树。
所需组件
Arduino纳米
Neo Pixel LED灯条
PIR 传感器
JQ6500 语音发声模块
8Ω 0.5W 喇叭
7805稳压器
直流电源插孔(母)
2× 10µf 电容
电路原理图
上面给出了基于 Arduino 的装饰圣诞树的完整电路图。非常简单,我们只需要连接 PIR 传感器、JQ6500 语音模块和 Neo-Pixel LED 灯条。完整的设置由 12V 电池供电。电路的大脑是 Arduino Nano。PIR 传感器用于检测人员的存在。该传感器的三个引脚中的两个,即 Vcc 和 GND 连接到 Arduino 的 5V 和 GND。而数据管脚连接到Arduino Nano的D5,Neo-Pixel条的数据管脚连接到Arduino Nano的D2管脚。
JQ5600 MP3模块是一个3.3V的逻辑模块,所以不能直接连接到Arduino的IO管脚,但是用Arduino的5V电源线供电就可以了。MP3 模块的 RX 和 TX 引脚连接到 Arduino Nano 的数字引脚 9 和 8。在 Arduino 数字引脚 9 和 MP3 模块的 RX 之间放置一个 1kΩ 电阻,以降低 Arduino 的 5V 电压。
为装饰圣诞树编程 Arduino Nano
一旦我们准备好硬件,我们就可以将 Arduino 连接到我们的计算机并开始编程。该项目的完整代码在本页底部给出;您可以将其直接上传到您的 Arduino 板。但是,如果您想知道代码是如何工作的,请进一步阅读。
该代码使用JQ6500_Serial.h、Adafruit_NeoPixel.h和SoftwareSerial.h库。SoftwareSerial 库预安装在Arduino IDE中。可以从此链接安装 JQ6500 串行库。而Adafruit_NeoPixel.h库可以直接从 Arduino IDE 下载。为此,请转到Sketch 》 Include Library 》 Manage Libraries。然后在搜索框中搜索“ Adafruit Neo ”并下载并安装“ Adafruit Neopixel ”库。
像往常一样,通过包含所有必需的库并定义该项目中使用的所有引脚来启动代码。
#include#include #include #include
之后,声明 NeoPixel 条对象,其中参数 1 是 NeoPixel 条中的像素数,参数 2 是连接 LED 灯条的 Arduino 引脚。
Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);
然后在setup()函数中初始化输入输出引脚,并初始化串行监视器和 JQ6500 语音模块。
pinMode(传感器,输入); mp3.开始(9600); mp3.reset(); mp3.setVolume(50); mp3.setLoopMode(MP3_LOOP_NONE); 剥离.开始();
首先在主循环中,我们启动 Neo-Pixel LED 灯条的彩虹模式,然后读取 PIR 传感器状态。现在,如果 PIR 传感器的状态为高,我们将调用mp3.play()函数来播放圣诞快乐歌曲,并将 Neo-Pixel 状态更改为 TheaterChaseRainbow 模式。
无效循环(){ 彩虹1(10); val = digitalRead(传感器); 序列号.print(val); 如果(val == HIGH){ mp3.playFileByIndexNumber(1); 剧院追逐彩虹(50); 延迟(7000); } }
3D打印星形外壳
接下来,我使用比例尺测量了装置的尺寸,还测量了筒式千斤顶的尺寸,以便为我的装置设计一个外壳。完成后,我的设计如下所示。
完成设计后,我将其导出为 STL 文件,根据打印机设置对其进行切片,最后打印出来。STL 文件也可以从 Thingiverse 下载,您可以使用它打印您的外壳。打印完成后,我继续将项目组装在一个永久性的外壳中,将其安装在圣诞树上。完成连接后,我将电路组装到我的外壳中,正如您在此处看到的那样,一切都非常合适。
圣诞星测试
代码和硬件准备好后,将代码上传到 Arduino Nano。之后将所有东西安装在外壳内,如下图所示:
现在,使用 12V 适配器为设置供电,Neopixel 将开始以彩虹模式照明,当 PIR 传感器检测到有人时,它将播放“圣诞快乐”歌曲并将 Neo-Pixel 模式从彩虹更改为 Theatrechase。
代码
#include
#include#include #include JQ6500_Serial mp3(8,9); #define PIXEL_PIN 2 // 连接到 NeoPixels 的数字 IO 引脚。 #define PIXEL_COUNT 55 // NeoPixels 的数量 Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800); 常量 int 传感器 = 5; 常量 int 状态 = 低; 整数值; 整数模式 = 0; // 当前激活的动画模式,0-9 int r,g,b,数据; 无效设置(){ 序列号.开始(115200); pinMode(传感器,输入); mp3.开始(9600); mp3.reset(); mp3.setVolume(50); mp3.setLoopMode(MP3_LOOP_NONE); 剥离.开始();// 初始化 NeoPixel 条形对象(必需) 剥离.show(); // 将所有像素初始化为'off' } 无效循环(){ val = digitalRead(传感器); 序列号.print(val); 如果(val == HIGH){ mp3.playFileByIndexNumber(1); // 剧场追逐彩虹(5); 延迟(9000); Serial.print("工作"); } 彩虹(); } 无效彩虹(){ for(long firstPixelHue = 0; firstPixelHue < 3*65536; firstPixelHue += 256) { for(int i=0; i RGB strip.setPixelColor(c, color); // 将像素 'c' 设置为值 'color' } 剥离.show(); // 使用新内容更新条带 //延迟(等待);//暂停片刻 firstPixelHue += 65536 / 90; // 一个循环的色轮超过 90 帧 } } }*/
全部0条评论
快来发表一下你的评论吧 !