国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

【試用體驗】晶心ADP-Corvette-T1編程驅(qū)動WS2812B炫彩LED

電子發(fā)燒友論壇 ? 2022-06-27 09:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

昨天我在 DFRobot Beetle ESP32-C3開發(fā)板開發(fā)板上,成功用 Adafruit NeoPixel 擴展庫,驅(qū)動了ws2812B炫彩點陣。具體可見文章:Arduino編程控制WS2812B炫彩LED,既然ADP-Corvette-T1開發(fā)板也能用Arduino,那應(yīng)該可以把類似的程序,按照ADP-Corvette-T1開發(fā)板的Arduino支持,使用Adafruit NeoPixel 擴展庫來驅(qū)動WS2812B。


說干就干,先在Adafruit NeoPixel 擴展庫的Arduino開發(fā)環(huán)境中,安裝Adafruit NeoPixel 擴展庫,方法如下:

9b4e4066-f4aa-11ec-a2f4-dac502259ad0.png

安裝完成后,開發(fā)板選擇ADP-Corvette-T1,然后點擊編譯。
沒想到,杯具的事情發(fā)生了,錯誤提示:Adafruit NeoPixel 擴展庫不支持該開發(fā)板。
不甘心,這么通用的WS2812B,一定要辦法驅(qū)動起來。

仔細看了 ADP-Corvette-T1 的官方資料,了解到如下信息:

9b6a4b6c-f4aa-11ec-a2f4-dac502259ad0.png

在開發(fā)板上,提供了SPI數(shù)據(jù)傳輸接口,而WS2812B真是使用SPI來驅(qū)動的。

詳細查看板子的定義:

9b7d3e70-f4aa-11ec-a2f4-dac502259ad0.png

IO11可復(fù)用為SPI/MOSI,剛好可以用作WS2812B的數(shù)據(jù)控制。

參考開頭提供的文章,最終具體的連線如下:

9b9482f6-f4aa-11ec-a2f4-dac502259ad0.png

具體的實物連線如下:

9baec314-f4aa-11ec-a2f4-dac502259ad0.jpg

直接使用SPI底層設(shè)備來驅(qū)動,需要使用到Arduino官方的SPI庫,其官方網(wǎng)址為:SPI - Arduino Reference

而在此之前,我還分享過另外一篇控制WS2812B的文章:Debian-StarFive下的SPI驅(qū)動WS2812B炫彩燈珠,在該篇文章中,就詳細的說明了,想要控制,應(yīng)該如何發(fā)送數(shù)據(jù)。


在上面的這篇分享中,控制的是單顆LED燈珠。在ADP-Corvette-T1開發(fā)板上,這次我們要控制8*8點陣共64顆LED燈珠。

通過對Arduino官方的SPI庫資料的學習,最終完成了演示代碼,實現(xiàn)了流水燈的效果。


在該演示代碼中,同時包括:
1. 串口調(diào)試輸出
2. 板載LED控制
3. SPI控制WS2812B

代碼展示:

9bc2c558-f4aa-11ec-a2f4-dac502259ad0.png

上述代碼的具體說明:


1. 全局定義:


1). 使用SPI.h,確定使用SPI庫
2). 定義燈珠、引腳信息
3). 定義要發(fā)送的數(shù)據(jù)信息;關(guān)于其具體的定義,可以查看 Debian-StarFive下的SPI驅(qū)動WS2812B炫彩燈珠
4). 定義當前要點亮的燈珠
5). 定義lgiht_n函數(shù),表示通過SPI發(fā)送控制數(shù)據(jù),當前燈珠發(fā)送點亮數(shù)據(jù),其他的發(fā)送熄滅數(shù)據(jù);具體顏色,根據(jù)i值取余取前面定義的顏色。

2. 啟動設(shè)置部分:setup()


1). 設(shè)置串口速度
2). 設(shè)置D13為輸出,用于控制板載的LED3(在板子背面)
3). 定義SPI的傳送參數(shù);具體的參數(shù)說明,后面詳細的說。

3. 循環(huán)部分:loop()


1). 串口輸出當前要點亮的LED燈珠
2). 根據(jù)當前要點亮的燈珠序號取2的余,來亮滅LED3
3). 點亮指定的LED燈珠
4). 延時
5). 指向下一刻燈珠;如果達到最大,則從頭開始。

在上面的代碼中,SPI參數(shù)設(shè)置部分,尤為重要。
要設(shè)置SPI參數(shù),有兩種辦法:


1). SPI.setclockDivider():相對于系統(tǒng)時鐘設(shè)置SPI時鐘分頻器。
關(guān)于分頻器的基本知識,我在定時器使用基礎(chǔ):使用系統(tǒng)時基定時器和基本定時器閃爍LED 分享中,有講過。
因為 ADP-Corvette-T1開發(fā)板 的最高頻率為 96MHz,我們找一個接近 6.4MHz的分頻。


分頻器可以使用的系統(tǒng)定義為:
SPI_CLOCK_DIv2,SPI_CLOCK_DIV4,SPI_CLOCK_DIV8, SPI_CLOCK_DIV16,SPI_CLOCK_DIV32,SPI_CLOCK_DIV64,SPI_CLOCK_DIV128
在其中,16分之一接近6.4MHz,所以這里可以使用SPI_CLOCK_DIV16。
在該方式下,其他的參數(shù)使用默認值即可。

2). SPI.beginTransaction()
通過傳入 SPISettings()獲取的定義參數(shù)來初始化SPI設(shè)備;
SPISettings()具體定義為:SPISettings(speedMaximum,dataOrder,dataMode)
其中:
speedMaximum:表示時鐘
dataOrder:表示數(shù)據(jù)發(fā)送優(yōu)先順序,MSBFIRST表示高位優(yōu)先,LSBFIRST表示低位優(yōu)先。
dataMode:表示SPI的四種操作模式:
2.1) 模式0:默認值,時鐘通常為低電平(CPOL = 0),數(shù)據(jù)在從低電平到高電平(前沿)(CPHA = 0)的轉(zhuǎn)換時采樣。
2.2)模式1:時鐘通常為低電平(CPOL = 0),數(shù)據(jù)在從高電平到低電平(后沿)(CPHA = 1)的轉(zhuǎn)換時采樣。
2.3)模式2:時鐘通常為高電平(CPOL = 1),數(shù)據(jù)在從高電平到低電平(前沿)(CPHA = 0)的轉(zhuǎn)換時采樣。
2.4)模式3:時鐘通常為高電平(CPOL = 1),數(shù)據(jù)在從低電平到高電平(后沿)(CPHA = 1)的轉(zhuǎn)換時采樣。

演示代碼中,具體傳入的為:SPISettings(6400000, MSBFIRST, SPI_MODE0),表示時鐘為6.4MHz對應(yīng)值,高位優(yōu)先,操作模式為默認值。

編寫好代碼后,編譯下載,就能運行起來:

9be252ec-f4aa-11ec-a2f4-dac502259ad0.png

打開串口,Ardunio的串口工監(jiān)視器,就能看到串口輸出的信息,會顯示當前要點亮的燈珠;
把板子翻過來,可以看到背后的LED3在狂閃,因為代碼中設(shè)置的delay為100毫秒,1秒得有10次。
再看WS2812B炫彩8*8點陣,燈珠按順序點亮并熄滅。
具體效果,如視頻所示。

如在前兩篇分享的控制WS2812B的文章中所說,你可以根據(jù)自己的需要,讓這塊WS2812B炫彩8*8點陣呈現(xiàn)出更復(fù)雜的效果,行動起來吧!

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

    關(guān)注

    243

    文章

    24594

    瀏覽量

    690800
  • 驅(qū)動
    +關(guān)注

    關(guān)注

    12

    文章

    1954

    瀏覽量

    88522
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    在 VisionFive 2 上使用的彩色光環(huán)

    了控制WS2812B彩色光環(huán)。 WS2812B用于許多應(yīng)用,如城市夜景、激光照明顯示、廣告柜、珠寶展示柜、玩具等。 在情人節(jié)或 5 月 20 日,您還可以制作一顆效果絢麗的形,送給您心愛的人。
    發(fā)表于 03-05 07:32

    ADP8866:9通道LED驅(qū)動芯片的全方位解析

    8866,這是一款集可編程背光LED電荷泵驅(qū)動與自動閃爍功能于一體的芯片,能為我們帶來豐富多樣的LED控制體驗。 文件下載: ADP8866
    的頭像 發(fā)表于 02-02 10:20 ?269次閱讀

    ADP8863:多功能LED驅(qū)動芯片的深度解析

    ADP8863:多功能LED驅(qū)動芯片的深度解析 在電子設(shè)計領(lǐng)域,LED驅(qū)動芯片的性能和功能對于產(chǎn)品的表現(xiàn)至關(guān)重要。今天,我們就來深入探討一款
    的頭像 發(fā)表于 02-02 10:20 ?332次閱讀

    ADP8860:多功能LED驅(qū)動芯片的全解析

    ADP8860:多功能LED驅(qū)動芯片的全解析 在現(xiàn)代電子設(shè)備中,LED驅(qū)動芯片的性能直接影響著顯示效果和能源利用效率。
    的頭像 發(fā)表于 02-02 09:55 ?297次閱讀

    CW32L012/F030靈眸X1智能小車——板載WS2812驅(qū)動示例

    WS2812是一種廣泛使用的地址可控制的RGB LED模塊,其內(nèi)置驅(qū)動電路和控制芯片,允許用戶通過單線信號控制多個LED的顏色和亮度。
    的頭像 發(fā)表于 01-05 16:35 ?2865次閱讀
    CW32L012/F030靈眸X<b class='flag-5'>1</b>智能小車——板載<b class='flag-5'>WS2812</b><b class='flag-5'>驅(qū)動</b>示例

    XINGLIGHT成興光- 推出幻新品,迎合幻領(lǐng)域照明應(yīng)用新趨勢爆發(fā)!

    成興光深耕LED領(lǐng)域12年,基于技術(shù)沉淀與市場洞察,推出WS2812B系列和SK6812B系列產(chǎn)品,既精準響應(yīng)行業(yè)趨勢,更直擊市場痛
    的頭像 發(fā)表于 12-30 09:44 ?2113次閱讀
    XINGLIGHT成興光- 推出幻<b class='flag-5'>彩</b>新品,迎合幻<b class='flag-5'>彩</b>領(lǐng)域照明應(yīng)用新趨勢爆發(fā)!

    零知IDE——基于STM32F103RBT6的PAJ7620U2手勢控制WS2812 RGB燈帶系統(tǒng)

    先進的PAJ7620U2手勢識別傳感器和WS2812B RGB LED燈帶,實現(xiàn)智能手勢開關(guān)控制功能。系統(tǒng)能夠?qū)崟r檢測手部在三維空間中的位置和運動軌跡,并將這些動作信息轉(zhuǎn)換為直觀、絢麗的燈光效果項目
    發(fā)表于 12-29 19:04

    零知IDE——基于STM32F103RBT6的PAJ7620U2手勢控制WS2812 RGB燈帶系統(tǒng)

    基于STM32F103RBT6的手勢控制LED系統(tǒng),通過PAJ7620U2傳感器識別手勢動作,驅(qū)動WS2812B燈帶實現(xiàn)交互式燈光效果。系統(tǒng)采用軟件I2C通信和SPI+DMA驅(qū)動方案,
    的頭像 發(fā)表于 12-29 17:48 ?1856次閱讀
    零知IDE——基于STM32F103RBT6的PAJ7620U2手勢控制<b class='flag-5'>WS2812</b> RGB燈帶系統(tǒng)

    【瑞薩RA6E2地奇星開發(fā)板試用】點亮 WS2812 全彩點陣屏

    = R_SPI_Write(&g_spi0_ctrl, &dat, 1, SPI_BIT_WIDTH_8_BITS); WS2812 的控制時序一般是 800Kbps 左右,這里
    發(fā)表于 12-27 03:28

    基于STM32F103C8T6驅(qū)動WS2812彩燈模塊點亮RGB燈

    一、WS2812模塊簡介 WS2812是一個集控制電路與發(fā)光電路于一體的智能外控LED光源。其外型與一個5050LED燈珠相同,每個元件即為一個像素點。像素點內(nèi)部包含了智能數(shù)字接口數(shù)據(jù)
    的頭像 發(fā)表于 12-04 11:29 ?6598次閱讀
    基于STM32F103C8<b class='flag-5'>T</b>6<b class='flag-5'>驅(qū)動</b><b class='flag-5'>WS2812</b>彩燈模塊點亮RGB燈

    【瑞薩RA6E2】驅(qū)動 WS2812 實現(xiàn) RGB 跑馬燈效果

    : void ws2812_send_bit(uint8_t bit) { if(bit) { // 發(fā)送邏輯1T1H(0.8μs)高電平,T
    發(fā)表于 11-25 01:55

    【瑞薩RA6E2】點亮 WS2812 全彩點陣屏

    = R_SPI_Write(&g_spi0_ctrl, &dat, 1, SPI_BIT_WIDTH_8_BITS); WS2812 的控制時序一般是 800Kbps 左右,這里
    發(fā)表于 11-05 08:36

    【RA4L1-SENSOR】點亮 WS2812 全彩點陣屏

    通過單總線方式控制,只需一個 IO 口,就可以點亮數(shù)千個燈珠。 這里使用 RA4L1 點亮 WS2812 燈珠,效果如下: WS2812 可以使用 IO 模擬時序控制,也可以使用 PWM
    發(fā)表于 06-09 12:48

    【RA-Eco-RA4M2開發(fā)板評測】點亮WS2812點陣屏

    = R_SPI_Write(&g_spi0_ctrl, &dat, 1, SPI_BIT_WIDTH_8_BITS); WS2812 的控制時序一般是 800Kbps 左右,這里
    發(fā)表于 05-07 15:28

    WS2812B on S32K144始終閃爍白色,即使沒有數(shù)據(jù)也是如此,為什么?

    我正在嘗試控制WS2812B RGB LED使用型號 S32K144EVB-Q100.我的目標是發(fā)送GRB 數(shù)據(jù)使用 bit-banging onPTD0.但是,LED 始終閃爍白色 (R=255
    發(fā)表于 04-08 07:15