色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

電子發燒友論壇 ? 2022-06-27 09:35 ? 次閱讀

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


說干就干,先在Adafruit NeoPixel 擴展庫的Arduino開發環境中,安裝Adafruit NeoPixel 擴展庫,方法如下:

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

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

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

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

在開發板上,提供了SPI數據傳輸接口,而WS2812B真是使用SPI來驅動的。

詳細查看板子的定義:

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

IO11可復用為SPI/MOSI,剛好可以用作WS2812B的數據控制。

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

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

具體的實物連線如下:

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

直接使用SPI底層設備來驅動,需要使用到Arduino官方的SPI庫,其官方網址為:SPI - Arduino Reference

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


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

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


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

代碼展示:

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

上述代碼的具體說明:


1. 全局定義:


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

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


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

3. 循環部分:loop()


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

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


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


分頻器可以使用的系統定義為:
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。
在該方式下,其他的參數使用默認值即可。

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

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

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

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

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

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

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

    關注

    242

    文章

    23311

    瀏覽量

    661633
  • 驅動
    +關注

    關注

    12

    文章

    1844

    瀏覽量

    85365
收藏 人收藏

    評論

    相關推薦

    【敏矽微ME32G070開發板免費體驗】點亮WS2812B燈板

    0001 1001 0000 0000 0000 1100]驅動方式 目前關于WS2812B大概有三種驅動方法: 1)GPIO配合機器空周期直接
    發表于 01-07 23:58

    基于瑞薩FPB-RA4E2智能床頭燈項目——2串口藍牙通訊

    ;lt;= 1; b <<= 1; pR++; pG++; pB++; } } void WS2812B_Task(void) { uint8_
    發表于 11-22 22:13

    基于瑞薩FPB-RA4E2智能床頭燈項目——1編譯環境搭建與點亮驅動ws2812全彩LED

    (FSP_SUCCESS== err); sci_spi_extended_cfg_tsci_spi_extended_cfg_t1; WS2812B
    發表于 11-22 21:34

    論如何使用WS2812以及類似燈珠

    ? ?WS2812 LED燈珠,這是一種非常流行的可尋址RGB LED。每個WS2812 LED內部集成了控制電路,因此可以通過一個數據輸入
    的頭像 發表于 09-30 15:11 ?507次閱讀
    論如何使用<b class='flag-5'>WS2812</b>以及類似燈珠

    在AvaotaA1全志T527開發板上驅動WS2812 RGB LCD

    對應 R,G,B 三種顏色)數據,剩余的數據經過內部整形處理電路整形放大后通過 DO 端口開始轉發輸出給下一個級聯的 LED 。因此,每經過一個 LED ,數據減少 24bit。 WS28
    發表于 07-22 10:45

    WS2812是否可以反轉UART的輸出?

    是否可以反轉 UART 的輸出。輸出 1 而不是 0,輸出 0 而不是 1。 問題背景:按照以下方案使用 UART 控制 WS2812: (1)XX XXX XX(0). 具有 7
    發表于 07-15 07:37

    ESP32-S3控制WS2812燈帶顯示異常如何解決?

    neopixel #import ws2812 import time GBIO_IN = Pin(40,Pin.OUT)# 控制信號輸入引腳 LED_NUM = 15 # LED燈的數量
    發表于 06-05 06:17

    【Vision Board創客營連載體驗】利用 OpenMV 實現 AprilTag 跟蹤以及通過串口通訊控制 Arduino 驅動 LED 燈帶

    作為下位機接收坐標信息并將信息轉化為 LED 矩陣坐標,再通過 FastLED 庫實現對 WS2812b 燈帶的 LED 操控。 開發現況 由于手頭上的 WS2812b 燈帶連接觸點
    發表于 05-31 00:01

    STM32F030 MDA+PWM驅動ws2812b,起始的50US的低電平是怎么產生?

    STM32F030 MDA+PWM 驅動 ws2812b,起始的50US的低電平怎么產生? 現在dma+pwm,倒是可以產生一個800K hz的驅動數據,但是WS2812要求有50US
    發表于 04-12 07:23

    STM32F051C8 PA0不能以DMA的方式輸出PWM,沒有正確波形輸出是哪里出了問題?

    實現功能:用STM32F051C8的PA0驅動WS2812B 彩色LED燈條; 實現方法和工具:1.使用Cubemx 生成代碼;2.配置PA0,PA0為PWM輸出; 配置方式:打開Cu
    發表于 03-13 06:20

    5050RGB三合一LED WS2850B數據手冊

    電子發燒友網站提供《5050RGB三合一LED WS2850B數據手冊.pdf》資料免費下載
    發表于 03-07 18:16 ?1次下載

    麥爵士madrix麥覺仕幻彩燈條燈帶的基本認識以及測點編程調試方法解析

    第一,幻的分類幻(燈帶,點光源,線條燈)可以分為3大類,第一種是單線SPI/TTL協議,最常見就是VVC(正極)-DAT(數據線)-GND。海外最知名的型號是WS2812B相比來說,外置型更穩
    的頭像 發表于 02-27 20:58 ?5258次閱讀
    麥爵士madrix麥覺仕幻彩燈條燈帶的基本認識以及測點<b class='flag-5'>編程</b>調試方法解析

    迪文屏控制WS2812氛圍燈

    ——來自迪文開發者論壇本期為大家推送迪文開發者論壇獲獎開源案例——迪文屏控制WS2812氛圍燈。工程師通過COF智能屏的OS核精準控制WS2812幻彩燈帶每一顆燈珠顏色,實現酷的燈帶顏色切換的動態效果。演示視頻完整開發資料
    的頭像 發表于 01-26 08:12 ?1085次閱讀
    迪文屏控制<b class='flag-5'>WS2812</b>氛圍燈

    PSoC4設備運行WS2812 RGB+IC LED,發出的數據并不對稱是為什么?

    這個 WS2812 LED。 有沒有使用過這種部件的人,我可能會仔細檢查我的代碼和設置,看看我出了什么問題。我的代碼很簡單,只驅動一個LED(像素)。 當我運行
    發表于 01-23 08:34

    智能外控集成LED光源WS2812B-V5/W產品手冊

      WS2812B-V5/W是一個集控制電路與發光電路于一體的智能外控LED光源。其外型與一個5050LED燈珠相同,每個元件即為一個像素點。像素點內部包含了智能數字接口數據鎖存信號整形放大
    發表于 01-12 15:36 ?1次下載
    主站蜘蛛池模板: 午夜福利院电影| 97视频在线观看视频最新| 国产成人精品久久一区二区三区| 日本阿v片在线播放免费| 疯狂第一次国语| 亚洲成a人不卡在线观看| 久久日本精品在线热| jizz破处| 亚洲第一页视频| 免费 高清 中文在线观看| 大肥婆丰满大肥奶bbw肥| 亚洲国产区中文在线观看| 妹妹的第一次有点紧| 国产成人aaa在线视频免费观看| 亚洲国产第一区二区三区| 美女大本营| 国产精品久久久久影院免费| 在线不卡中文字幕| 色偷拍自怕亚洲在线| 久久99综合国产精品亚洲首页| h版动漫在线播放的网站| 性XXXXX搡XXXXX搡景甜| 麻豆乱码一卡二卡三卡视频| 国产成人在线播放视频| 123超碰在线视频| 呜呜别塞了啊抽插| 美女白虎穴| 国语自产视频在线| 北原夏美 快播| 一级毛片免费视频网站| 色偷偷男人的天堂a v| 老人FREE VIODES老少配| 国产婷婷色一区二区三区在线| 97豆奶视频国产| 亚洲午夜精品一区二区公牛电影院| 日本一本在线播放| 啦啦啦 中文 日本 韩国 免费 | 亚洲免费无l码中文在线视频| 欧美日韩国产码在线| 久久精品亚洲热综合一本奇米| 俄罗斯18xv在线观看|