0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

聲控LED頻譜分析儀的制作

454398 ? 來源:wv ? 2019-10-17 10:03 ? 次閱讀

第1步:測(cè)試您的LED

將所有東西布置在適當(dāng)大小的工作空間上。插入電烙鐵。您要做的第一件事就是測(cè)試您的LED。

我很快了解到這些燈不喜歡在沒有數(shù)據(jù)的情況下響應(yīng)電源。如果您跳起來嘗試僅用電源測(cè)試它們而它們不起作用,請(qǐng)稍等片刻。他們可能只需要注入一些代碼即可激活LED。在切割LED燈條之前,請(qǐng)遵循本指南將燈條連接至Arduino/電源。然后運(yùn)行此處找到的示例代碼。

注意:一端確實(shí)已預(yù)焊接了導(dǎo)線。隨意嘗試一下。在卷軸上,我收到了預(yù)包裝的電纜,但沒有用(哼哼聲),所以我不得不切斷兩個(gè)LED并從卷軸的裸露端開始。

步驟2:焊接VU防護(hù)板

抓住Shifty VU防護(hù)板和Arduino。

VU防護(hù)板帶有一組接頭引腳,用于連接到Arduino的。這些接頭需要焊接,因?yàn)檫B接太松,甚至不能出于測(cè)試目的而簡(jiǎn)單地插入。有關(guān)如何將屏蔽層焊接到Arduino的技巧,請(qǐng)參閱Sparkfun的這份出色指南。

步驟3:切割LED燈條

對(duì)于這個(gè)項(xiàng)目,我使用了3條帶,每條帶38個(gè)LED。

您可以決定要保留多長(zhǎng)時(shí)間。較短的燈條(少于10個(gè)LED)可能不會(huì)給您帶來很大的效果,但是請(qǐng)確定適合您的項(xiàng)目的長(zhǎng)度,并相應(yīng)調(diào)整本指南中的步驟。

LDP8806燈帶每節(jié)帶有兩個(gè)LED,每16個(gè)LED與焊錫相連。您可以在插排的任何點(diǎn)進(jìn)行切割和連接,但是如果需要在連接點(diǎn)斷開插排的連接,請(qǐng)務(wù)必拆焊。觀看此視頻,該視頻顯示了如何分割這種類型的條帶。

步驟4:連接準(zhǔn)備

在本指南中,我將使用黑色,紅色,黃色和綠色的線。您可以使用所需的任何顏色,但是請(qǐng)記住,在以下步驟中將參考這些顏色。

剝開兩端的線以獲得每種四種顏色的幾根導(dǎo)線。

獲取您的LED指示燈。您想找到箭頭指向遠(yuǎn)離帶狀切口的末端。

小心地切掉密封條的末端,這樣就可以到達(dá)連接器(或?qū)⑵渫耆械簦?/p>

用焊料固定連接器。這樣可以更輕松地焊接電線。再次注意箭頭的方向;注意它是如何指向遠(yuǎn)離焊料的。這就是數(shù)據(jù)流的方向,如果將它們混在一起,可能會(huì)損壞條帶。

只需檢查一下,箭頭方向是否正確?如果沒有,您將破產(chǎn)。

第5步:連接LED

這些LED有四個(gè)引腳;地,5v,C(時(shí)鐘)和D(數(shù)據(jù))。條帶的某些部分上標(biāo)有值,有些則沒有。沒關(guān)系,只要知道您要焊接到哪個(gè)引腳即可。繼續(xù)操作時(shí)請(qǐng)參閱接線圖,并仔細(xì)檢查條帶面對(duì)的方向。

將條帶焊接在一起,確保每個(gè)輸出都連接到其各自的輸入。

第6步:連接到Arduino/電源

獲取5V電源和Arduino。

從在插排布置的輸入端開始,將綠色數(shù)據(jù)線連接到引腳2,將黃色時(shí)鐘線連接到引腳3。紅色5V線直接連接到電源,并且電源和LED燈帶與驅(qū)動(dòng)器共享公共接地。 Arduino。

請(qǐng)參閱上面的接線圖,并仔細(xì)檢查所有連接。

第7步:代碼

將Arduino連接到您的PC。抓住您的音頻分配器并將其連接到PC。使用一根音頻電纜連接至VU屏蔽,另一根電纜連接至揚(yáng)聲器。將電源適配器連接到電源插座。

一旦一切都連接好,請(qǐng)從步驟0開始運(yùn)行測(cè)試程序以再次檢查所有指示燈是否點(diǎn)亮。

從Github下載項(xiàng)目代碼并添加到您的Arduino庫(kù)。打開Arduino IDE并上傳。

#include “fix_fft.h”

#include “HSBColor.h”

#include “LPD8806.h”

#include “SPI.h”

// Choose 2 pins for Arduino output

#define DATA_PIN 2

#define CLOCK_PIN 3

// Defines the number and arrangement of LEDs in the visualizer. For a vertical setup, this will determine the space to light ratio as they wrap

#define NUM_BARS 12

#define BAR_LENGTH 12

// The difference in hue for each bar after the first.

#define BAR_HUE_DIFF 8

// Create a LPD8806 instance to control the strip

LPD8806 strip = LPD8806(NUM_BARS * BAR_LENGTH, DATA_PIN, CLOCK_PIN);

// The current hue of the first strip of the bar

int curHue = 0;

// FFT data storage

char im[NUM_BARS * 2], data[NUM_BARS * 2];

int prev[NUM_BARS];

// HSB/RGB data buffer

int rColor[3];

// Converts a 2d visualizer point to it‘s location on the strip

int getStripLocation(int col, int row)

{

// Controls the strip in alternating directions. This allows for chaining horizontal bars end-to-end

if (col % 2 == 0)

row = BAR_LENGTH - row - 1;

return col * BAR_LENGTH + row;

}

void setup()

{

analogReference(DEFAULT);

strip.begin();

strip.show();

}

void loop()

{

uint16_t i, j, k;

uint32_t color;

// Read analog input

for (i = 0; i 《 NUM_BARS * 2; i++)

{

int val = (analogRead(3) + analogRead(2)) / 2;

data[i] = val * 2;

im[i] = 0;

delay(1);

}

// Set the background colour of the LEDs when they are not receiving music data

for (i = 0; i 《 NUM_BARS * BAR_LENGTH; i++)

strip.setPixelColor(i, 20, 20, 40);

// Set the proper pixels in each bar

for (i = 0; i 《 NUM_BARS; i++)

{

// Each LED bar has 2 FFT frequencies that are summed together

int fft_start = i * 2;

int fft_count = 2;

// Get a positive data point from the FFT

int curData = 0;

for (k = 0; k 《 fft_count; k++)

curData += sqrt(data[fft_start + k] * data[fft_start + k] + im[fft_start + k] * im[fft_start + k]);

// Account for the ShiftyVU’s filtering

if (i == 0 || i == 7)

curData /= 2;

// Smoothly drop from peaks by only allowing data points to be one LED lower than the previous iteration.

// This prevents seizure-inducing flashes which might be caused by the ShiftyVU‘s filtering (?)

if (prev[i] 》 BAR_LENGTH && curData 《 prev[i] - BAR_LENGTH)

curData = prev[i] - BAR_LENGTH;

// Base color for each bar

H2R_HSBtoRGB((curHue + i * 8) % 360, 99, 99, rColor);

color = strip.Color(rColor[0] / 2, rColor[1] / 2, rColor[2] / 2);

// If only the first LED is lit, but not fully. This is outside the for loop because the subtraction of

// BAR_LENGTH causes the value to wrap around to a very high number.

if (curData 《 BAR_LENGTH)

{

int brightness = curData * 99 / BAR_LENGTH;

H2R_HSBtoRGB((curHue + i * BAR_HUE_DIFF) % 360, 99, brightness, rColor);

// Colour of the base of each bar. Change this to match the background colour of the LEDs

strip.setPixelColor(i, 20, 20, 40);

}

else

{

for (j = 0; j 《 BAR_LENGTH; j++)

{

// Light up each fully lit LED the same way.

if (curData - BAR_LENGTH 》 j * BAR_LENGTH)

strip.setPixelColor(getStripLocation(i, j), color);

else if (curData 》 j * BAR_LENGTH)

{

// Dims the last LED in the bar based on how close the data point is to the next LED.

int brightness = (j * BAR_LENGTH - curData) * 99 / BAR_LENGTH;

H2R_HSBtoRGB((curHue + i * BAR_HUE_DIFF) % 360, 99, brightness, rColor);

strip.setPixelColor(getStripLocation(i, j), strip.Color(rColor[0] / 2, rColor[1] / 2, rColor[2] / 2));

}

}

}

// Store all of the data points for filtering of the next iteration.

prev[i] = curData;

}

// Cycle through all the colors.

if (curHue == 359)

curHue = 0;

else

curHue++;

// Display the strip.

strip.show();

}

步驟8:播放一些音樂

一旦上傳了所有內(nèi)容,就播放一些音樂!現(xiàn)在,您應(yīng)該具有類似的內(nèi)容(我的上面覆蓋有用于擴(kuò)散的光面板)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    240

    文章

    23062

    瀏覽量

    657038
  • 聲控
    +關(guān)注

    關(guān)注

    3

    文章

    92

    瀏覽量

    32804
  • 頻譜分析儀
    +關(guān)注

    關(guān)注

    16

    文章

    1085

    瀏覽量

    85210
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Keysight 頻譜分析儀(信號(hào)分析儀

    Keysight頻譜分析儀(信號(hào)分析儀)足夠的性能和卓越的可靠性,幫助您更輕松、更快速地應(yīng)對(duì)常見的射頻-微波測(cè)試測(cè)量挑戰(zhàn)??煽康?b class='flag-5'>頻譜分析儀和信號(hào)分析儀提供準(zhǔn)確可信的測(cè)量結(jié)果無論您是要在
    的頭像 發(fā)表于 09-12 08:10 ?360次閱讀
    Keysight <b class='flag-5'>頻譜分析儀</b>(信號(hào)<b class='flag-5'>分析儀</b>)

    頻譜分析儀項(xiàng)目有哪些

    頻譜分析儀是一種用于測(cè)量信號(hào)頻率成分的電子儀器。它廣泛應(yīng)用于通信、電子、電力、科研等領(lǐng)域。本文將詳細(xì)介紹頻譜分析儀的項(xiàng)目,包括其原理、類型、應(yīng)用、性能指標(biāo)、操作步驟、維護(hù)與保養(yǎng)等方面。 一、頻譜分析儀
    的頭像 發(fā)表于 06-03 09:46 ?358次閱讀

    頻譜分析儀檢定規(guī)程標(biāo)準(zhǔn)

    引言 頻譜分析儀是一種用于測(cè)量信號(hào)頻譜分布的儀器,它能夠?qū)⑿盘?hào)分解成不同頻率成分,并對(duì)各頻率成分進(jìn)行測(cè)量和分析。頻譜分析儀廣泛應(yīng)用于通信、電子、科研等領(lǐng)域,對(duì)于信號(hào)的
    的頭像 發(fā)表于 06-03 09:26 ?531次閱讀

    頻譜分析儀是否有磁性原理

    頻譜分析儀是一種用于測(cè)量信號(hào)頻率成分的電子儀器,它廣泛應(yīng)用于通信、電子、電力等領(lǐng)域。本文將詳細(xì)介紹頻譜分析儀的工作原理、分類、應(yīng)用以及磁性原理在頻譜分析儀中的應(yīng)用。 一、頻譜分析儀的工
    的頭像 發(fā)表于 06-03 09:23 ?394次閱讀

    頻譜分析儀使用方法 頻譜分析儀的作用

    頻譜分析儀是一種用于測(cè)量信號(hào)頻譜成分的電子測(cè)量?jī)x器,廣泛應(yīng)用于通信、電子、電力、科研等領(lǐng)域。本文將詳細(xì)介紹頻譜分析儀的使用方法和作用。 一、頻譜分析儀的作用 信號(hào)
    的頭像 發(fā)表于 05-31 17:17 ?858次閱讀

    頻譜分析儀是干什么用的 頻譜分析儀和示波器的區(qū)別

    頻譜分析儀和示波器是電子測(cè)量領(lǐng)域中兩種非常重要的儀器。它們?cè)陔娮釉O(shè)計(jì)、調(diào)試、故障診斷等方面發(fā)揮著關(guān)鍵作用。本文將詳細(xì)介紹頻譜分析儀的功能、原理以及與示波器的區(qū)別。 頻譜分析儀的功能和原理 功能 信號(hào)
    的頭像 發(fā)表于 05-31 16:43 ?880次閱讀

    信號(hào)分析儀頻譜分析儀的區(qū)別

    在電子工程、通信、無線電以及生物醫(yī)學(xué)等多個(gè)領(lǐng)域中,信號(hào)分析儀頻譜分析儀都是至關(guān)重要的測(cè)量和分析工具。雖然兩者在功能和應(yīng)用上有一定的重疊,但它們?cè)谠O(shè)計(jì)和應(yīng)用上存在著顯著的差異。本文將對(duì)信號(hào)分析
    的頭像 發(fā)表于 05-17 14:21 ?1359次閱讀

    便攜式頻譜分析儀與手持式頻譜分析儀的區(qū)別

    隨著無線通信技術(shù)的快速發(fā)展,頻譜分析儀在電子測(cè)試、通信調(diào)試、頻譜監(jiān)測(cè)等領(lǐng)域的應(yīng)用越來越廣泛。其中,便攜式頻譜分析儀和手持式頻譜分析儀因其便攜性和高效性受到了廣大工程師和技術(shù)人員的青睞。
    的頭像 發(fā)表于 05-16 16:07 ?541次閱讀

    實(shí)時(shí)頻譜分析儀的關(guān)鍵技術(shù)淺析

    實(shí)時(shí)頻譜分析儀作為電子測(cè)試與測(cè)量領(lǐng)域的重要工具,其在無線通信、雷達(dá)系統(tǒng)、電子對(duì)抗等多個(gè)領(lǐng)域都發(fā)揮著至關(guān)重要的作用。隨著現(xiàn)代通信技術(shù)的飛速發(fā)展,對(duì)頻譜分析儀的性能要求也日益提高。實(shí)時(shí)頻譜分析儀作為
    的頭像 發(fā)表于 05-16 15:39 ?792次閱讀

    頻譜分析儀怎么測(cè)量頻率

    頻譜分析儀作為電子測(cè)量領(lǐng)域的重要工具,主要用于分析信號(hào)的頻譜特性,包括信號(hào)的頻率、幅度、相位等參數(shù)。在無線通信、雷達(dá)、電子對(duì)抗等領(lǐng)域,頻譜分析儀對(duì)于頻率的測(cè)量尤為關(guān)鍵。本文將詳細(xì)介紹
    的頭像 發(fā)表于 05-14 15:57 ?1143次閱讀

    頻譜分析儀的用途與應(yīng)用詳解

    頻譜分析儀,作為電子測(cè)量領(lǐng)域的重要工具,其應(yīng)用廣泛且功能強(qiáng)大。它主要用于分析信號(hào)的頻譜特性,即信號(hào)在頻域上的分布和變化。在現(xiàn)代通信、雷達(dá)、電子對(duì)抗、航空航天等領(lǐng)域,頻譜分析儀都發(fā)揮著不
    的頭像 發(fā)表于 05-14 15:52 ?1384次閱讀

    掃頻頻譜分析儀與實(shí)時(shí)頻譜分析儀的區(qū)別

    在電子測(cè)量領(lǐng)域中,頻譜分析儀是一種至關(guān)重要的工具,它能夠幫助工程師和技術(shù)人員精確地測(cè)量和分析信號(hào)的頻譜特性。傳統(tǒng)的頻譜分析儀,如掃頻頻譜分析儀
    的頭像 發(fā)表于 05-13 18:04 ?1444次閱讀

    頻譜分析儀的功能和特點(diǎn)

    頻譜分析儀最核心的功能是對(duì)信號(hào)進(jìn)行頻譜分析,即將信號(hào)從時(shí)域轉(zhuǎn)換到頻域,以顯示信號(hào)的頻率組成。通過頻譜分析,可以觀察到信號(hào)的頻率分布、幅度、帶寬等參數(shù)。
    的頭像 發(fā)表于 05-08 16:18 ?1278次閱讀

    掃頻頻譜分析儀、矢量信號(hào)分析儀及實(shí)時(shí)頻譜分析儀的工作原理及差異

    掃頻式頻譜分析儀是傳統(tǒng)頻域測(cè)量?jī)x器,是傳統(tǒng)結(jié)構(gòu)的掃描調(diào)諧超外差頻譜分析儀,掃頻頻譜分析儀的出現(xiàn)使得工程師在幾十年前就能夠進(jìn)行頻域測(cè)量。
    的頭像 發(fā)表于 02-22 14:53 ?1635次閱讀
    掃頻<b class='flag-5'>頻譜分析儀</b>、矢量信號(hào)<b class='flag-5'>分析儀</b>及實(shí)時(shí)<b class='flag-5'>頻譜分析儀</b>的工作原理及差異

    頻譜分析儀的常見誤差來源 頻譜分析儀的校準(zhǔn)方法

    頻譜分析儀的常見誤差來源 頻譜分析儀的校準(zhǔn)方法 頻譜分析儀是一種廣泛應(yīng)用于電子測(cè)量領(lǐng)域的儀器,用于測(cè)量信號(hào)在不同頻率上的功率分布。然而,頻譜分析儀在測(cè)量過程中存在一些誤差來源。這些誤差
    的頭像 發(fā)表于 12-21 15:03 ?1336次閱讀