由于圣誕節快到了,沒有裝飾和圣誕樹,它的本質是不完整的。所以,不要使用我們每年都放的舊圣誕樹裝飾品,讓我們更上一層樓,使用帶有 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 幀 } } }*/
-
Arduino
+關注
關注
188文章
6477瀏覽量
187824 -
LED燈條
+關注
關注
2文章
100瀏覽量
13393 -
PIR傳感器
+關注
關注
3文章
57瀏覽量
9751
發布評論請先 登錄
相關推薦
評論