由于圣誕節(jié)快到了,沒有裝飾和圣誕樹,它的本質(zhì)是不完整的。所以,不要使用我們每年都放的舊圣誕樹裝飾品,讓我們更上一層樓,使用帶有 Neo 像素 LED 燈條、JQ6500 語音模塊和PIR 傳感器的 Arduino 。PIR傳感器用于檢測運(yùn)動(dòng),JQ6500語音模塊用于播放圣誕頌歌,Neo Pixels用于點(diǎn)亮圣誕樹。
所需組件
Arduino納米
Neo Pixel LED燈條
PIR 傳感器
JQ6500 語音發(fā)聲模塊
8Ω 0.5W 喇叭
7805穩(wěn)壓器
直流電源插孔(母)
2× 10μf 電容
電路原理圖
上面給出了基于 Arduino 的裝飾圣誕樹的完整電路圖。非常簡單,我們只需要連接 PIR 傳感器、JQ6500 語音模塊和 Neo-Pixel LED 燈條。完整的設(shè)置由 12V 電池供電。電路的大腦是 Arduino Nano。PIR 傳感器用于檢測人員的存在。該傳感器的三個(gè)引腳中的兩個(gè),即 Vcc 和 GND 連接到 Arduino 的 5V 和 GND。而數(shù)據(jù)管腳連接到Arduino Nano的D5,Neo-Pixel條的數(shù)據(jù)管腳連接到Arduino Nano的D2管腳。
JQ5600 MP3模塊是一個(gè)3.3V的邏輯模塊,所以不能直接連接到Arduino的IO管腳,但是用Arduino的5V電源線供電就可以了。MP3 模塊的 RX 和 TX 引腳連接到 Arduino Nano 的數(shù)字引腳 9 和 8。在 Arduino 數(shù)字引腳 9 和 MP3 模塊的 RX 之間放置一個(gè) 1kΩ 電阻,以降低 Arduino 的 5V 電壓。
為裝飾圣誕樹編程 Arduino Nano
一旦我們準(zhǔn)備好硬件,我們就可以將 Arduino 連接到我們的計(jì)算機(jī)并開始編程。該項(xiàng)目的完整代碼在本頁底部給出;您可以將其直接上傳到您的 Arduino 板。但是,如果您想知道代碼是如何工作的,請進(jìn)一步閱讀。
該代碼使用JQ6500_Serial.h、Adafruit_NeoPixel.h和SoftwareSerial.h庫。SoftwareSerial 庫預(yù)安裝在Arduino IDE中??梢詮拇随溄影惭b JQ6500 串行庫。而Adafruit_NeoPixel.h庫可以直接從 Arduino IDE 下載。為此,請轉(zhuǎn)到Sketch 》 Include Library 》 Manage Libraries。然后在搜索框中搜索“ Adafruit Neo ”并下載并安裝“ Adafruit Neopixel ”庫。
像往常一樣,通過包含所有必需的庫并定義該項(xiàng)目中使用的所有引腳來啟動(dòng)代碼。
#include#include #include #include
之后,聲明 NeoPixel 條對象,其中參數(shù) 1 是 NeoPixel 條中的像素?cái)?shù),參數(shù) 2 是連接 LED 燈條的 Arduino 引腳。
Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);
然后在setup()函數(shù)中初始化輸入輸出引腳,并初始化串行監(jiān)視器和 JQ6500 語音模塊。
pinMode(傳感器,輸入); mp3.開始(9600); mp3.reset(); mp3.setVolume(50); mp3.setLoopMode(MP3_LOOP_NONE); 剝離.開始();
首先在主循環(huán)中,我們啟動(dòng) Neo-Pixel LED 燈條的彩虹模式,然后讀取 PIR 傳感器狀態(tài)?,F(xiàn)在,如果 PIR 傳感器的狀態(tài)為高,我們將調(diào)用mp3.play()函數(shù)來播放圣誕快樂歌曲,并將 Neo-Pixel 狀態(tài)更改為 TheaterChaseRainbow 模式。
無效循環(huán)(){ 彩虹1(10); val = digitalRead(傳感器); 序列號(hào).print(val); 如果(val == HIGH){ mp3.playFileByIndexNumber(1); 劇院追逐彩虹(50); 延遲(7000); } }
3D打印星形外殼
接下來,我使用比例尺測量了裝置的尺寸,還測量了筒式千斤頂?shù)某叽?,以便為我的裝置設(shè)計(jì)一個(gè)外殼。完成后,我的設(shè)計(jì)如下所示。
完成設(shè)計(jì)后,我將其導(dǎo)出為 STL 文件,根據(jù)打印機(jī)設(shè)置對其進(jìn)行切片,最后打印出來。STL 文件也可以從 Thingiverse 下載,您可以使用它打印您的外殼。打印完成后,我繼續(xù)將項(xiàng)目組裝在一個(gè)永久性的外殼中,將其安裝在圣誕樹上。完成連接后,我將電路組裝到我的外殼中,正如您在此處看到的那樣,一切都非常合適。
圣誕星測試
代碼和硬件準(zhǔn)備好后,將代碼上傳到 Arduino Nano。之后將所有東西安裝在外殼內(nèi),如下圖所示:
現(xiàn)在,使用 12V 適配器為設(shè)置供電,Neopixel 將開始以彩虹模式照明,當(dāng) PIR 傳感器檢測到有人時(shí),它將播放“圣誕快樂”歌曲并將 Neo-Pixel 模式從彩虹更改為 Theatrechase。
代碼
#include
#include#include #include JQ6500_Serial mp3(8,9); #define PIXEL_PIN 2 // 連接到 NeoPixels 的數(shù)字 IO 引腳。 #define PIXEL_COUNT 55 // NeoPixels 的數(shù)量 Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800); 常量 int 傳感器 = 5; 常量 int 狀態(tài) = 低; 整數(shù)值; 整數(shù)模式 = 0; // 當(dāng)前激活的動(dòng)畫模式,0-9 int r,g,b,數(shù)據(jù); 無效設(shè)置(){ 序列號(hào).開始(115200); pinMode(傳感器,輸入); mp3.開始(9600); mp3.reset(); mp3.setVolume(50); mp3.setLoopMode(MP3_LOOP_NONE); 剝離.開始();// 初始化 NeoPixel 條形對象(必需) 剝離.show(); // 將所有像素初始化為'off' } 無效循環(huán)(){ val = digitalRead(傳感器); 序列號(hào).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' 設(shè)置為值 'color' } 剝離.show(); // 使用新內(nèi)容更新條帶 //延遲(等待);//暫停片刻 firstPixelHue += 65536 / 90; // 一個(gè)循環(huán)的色輪超過 90 幀 } } }*/
-
Arduino
+關(guān)注
關(guān)注
188文章
6469瀏覽量
187114 -
LED燈條
+關(guān)注
關(guān)注
2文章
100瀏覽量
13322 -
PIR傳感器
+關(guān)注
關(guān)注
3文章
57瀏覽量
9687
發(fā)布評論請先 登錄
相關(guān)推薦
評論