基于Arduino装饰圣诞树的教程

描述

  由于圣诞节快到了,没有装饰和圣诞树,它的本质是不完整的。所以,不要使用我们每年都放的旧圣诞树装饰品,让我们更上一层楼,使用带有 Neo 像素 LED 灯条、JQ6500 语音模块和PIR 传感器的 Arduino 。PIR传感器用于检测运动,JQ6500语音模块用于播放圣诞颂歌,Neo Pixels用于点亮圣诞树。

  所需组件

  Arduino纳米

  Neo Pixel LED灯条

  PIR 传感器

  JQ6500 语音发声模块

  8Ω 0.5W 喇叭

  7805稳压器

  直流电源插孔(母)

  2× 10µf 电容

  电路原理图

Arduino

  上面给出了基于 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 ”库。

Arduino

  像往常一样,通过包含所有必需的库并定义该项目中使用的所有引脚来启动代码。

 

#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打印星形外壳

  接下来,我使用比例尺测量了装置的尺寸,还测量了筒式千斤顶的尺寸,以便为我的装置设计一个外壳。完成后,我的设计如下所示。

Arduino

  完成设计后,我将其导出为 STL 文件,根据打印机设置对其进行切片,最后打印出来。STL 文件也可以从 Thingiverse 下载,您可以使用它打印您的外壳。打印完成后,我继续将项目组装在一个永久性的外壳中,将其安装在圣诞树上。完成连接后,我将电路组装到我的外壳中,正如您在此处看到的那样,一切都非常合适。

Arduino

  圣诞星测试

  代码和硬件准备好后,将代码上传到 Arduino Nano。之后将所有东西安装在外壳内,如下图所示:

Arduino

  现在,使用 12V 适配器为设置供电,Neopixel 将开始以彩虹模式照明,当 PIR 传感器检测到有人时,它将播放“圣诞快乐”歌曲并将 Neo-Pixel 模式从彩虹更改为 Theatrechase。

Arduino

  代码

  #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 帧
    }
  }
}*/
 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分