91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

【晶心科技ADP-Corvette-T1開(kāi)發(fā)板試用體驗(yàn)】使用Arduino的SPI庫(kù),直接驅(qū)動(dòng)WS2812B炫彩點(diǎn)陣板

開(kāi)發(fā)板試用精選 ? 來(lái)源:開(kāi)發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-11-11 11:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來(lái)源電子發(fā)燒友社區(qū),作者:HonestQiao, 帖子地址:https://bbs.elecfans.com/jishu_2287848_1_1.html

效果演示(開(kāi)發(fā)板體驗(yàn)視頻,詳見(jiàn)作者原帖子文章)

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

說(shuō)干就干,先在Adafruit NeoPixel 擴(kuò)展庫(kù)的Arduino開(kāi)發(fā)環(huán)境中,安裝Adafruit NeoPixel 擴(kuò)展庫(kù),方法如下:
poYBAGKv8u6AMKDtAAMzO4CEeRM505.png


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

仔細(xì)看了 ADP-Corvette-T1 的官方資料,了解到如下信息:
poYBAGKv9EmAKbE0AAAxnuWe8AA802.png

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

詳細(xì)查看板子的定義:
pYYBAGKv8u-AW9_UAAthN4ClyXU969.png

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

參考開(kāi)頭提供的文章,最終具體的連線如下:
poYBAGKv8vGABASGABPHxQlDoa4637.png


具體的實(shí)物連線如下:
pYYBAGKv8vSAH9plAFdgibYwXs858.jpeg


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

而在此之前,我還分享過(guò)另外一篇控制WS2812B的文章:Debian-StarFive下的SPI驅(qū)動(dòng)WS2812B炫彩燈珠,在該篇文章中,就詳細(xì)的說(shuō)明了,想要控制,應(yīng)該如何發(fā)送數(shù)據(jù)。
在上面的這篇分享中,控制的是單顆LED燈珠。在ADP-Corvette-T1開(kāi)發(fā)板上,這次我們要控制8*8點(diǎn)陣共64顆LED燈珠。

通過(guò)對(duì)Arduino官方的SPI庫(kù)資料的學(xué)習(xí),最終完成了演示代碼,實(shí)現(xiàn)了流水燈的效果。
在該演示代碼中,同時(shí)包括:
1. 串口調(diào)試輸出
2. 板載LED控制
3. SPI控制WS2812B

具體代碼文件:
?ADP-Corvette-T1_SPI_WS2812B.zip(1.32 KB, 下載次數(shù): 3 )

代碼展示:
pYYBAGKv9i6AKVVvABecAPWHWHQ412.png


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

2. 啟動(dòng)設(shè)置部分:setup()
1). 設(shè)置串口速度
2). 設(shè)置D13為輸出,用于控制板載的LED3(在板子背面)
3). 定義SPI的傳送參數(shù);具體的參數(shù)說(shuō)明,后面詳細(xì)的說(shuō)。

3. 循環(huán)部分:loop()
1). 串口輸出當(dāng)前要點(diǎn)亮的LED燈珠
2). 根據(jù)當(dāng)前要點(diǎn)亮的燈珠序號(hào)取2的余,來(lái)亮滅LED3
3). 點(diǎn)亮指定的LED燈珠
4). 延時(shí)
5). 指向下一刻燈珠;如果達(dá)到最大,則從頭開(kāi)始。

在上面的代碼中,SPI參數(shù)設(shè)置部分,尤為重要。
要設(shè)置SPI參數(shù),有兩種辦法:
1). SPI.setClockDivider():相對(duì)于系統(tǒng)時(shí)鐘設(shè)置SPI時(shí)鐘分頻器。
關(guān)于分頻器的基本知識(shí),我在定時(shí)器使用基礎(chǔ):使用系統(tǒng)時(shí)基定時(shí)器和基本定時(shí)器閃爍LED分享中,有講過(guò)。
因?yàn)?ADP-Corvette-T1開(kāi)發(fā)板 的最高頻率為 96MHz,我們找一個(gè)接近 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ù)使用默認(rèn)值即可。

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

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

編寫好代碼后,編譯下載,就能運(yùn)行起來(lái):
poYBAGKv8vmAd57DAAqRTwFNl78041.png

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

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

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

    關(guān)注

    0

    文章

    122

    瀏覽量

    19125
  • 開(kāi)發(fā)板試用

    關(guān)注

    3

    文章

    303

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    在昉·星光開(kāi)發(fā)板上控制WS2812B彩燈環(huán)

    擴(kuò)展庫(kù),其通過(guò)開(kāi)發(fā)板SPI接口來(lái)輸出控制信號(hào)給WS2812B。 代碼中,一共進(jìn)行了三種效果的演示: 整個(gè)彩燈環(huán)顏色的變化,從(0,0,
    發(fā)表于 03-06 06:15

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

    :pass發(fā)送WS2812B的控制信號(hào)需要特定的結(jié)構(gòu)化數(shù)據(jù),了解其原理后,我們可以自己組裝。在上面的代碼中,py-新像素-spidev使用擴(kuò)展庫(kù),通過(guò)電路SPI接口輸出控制信號(hào)
    發(fā)表于 03-05 07:32

    有獎(jiǎng)丨米爾全志 T153 MINI開(kāi)發(fā)板免費(fèi)試用來(lái)啦

    米爾與全志合作發(fā)布的新品基于全志T153應(yīng)用處理器的MYD-YT153MX-MINI開(kāi)發(fā)板免費(fèi)試用名額來(lái)啦~~米爾提供了3套價(jià)值399元的MYD-YT153MX-MINI開(kāi)發(fā)板發(fā)起
    的頭像 發(fā)表于 01-29 08:04 ?281次閱讀
    有獎(jiǎng)丨米爾全志 <b class='flag-5'>T</b>153 MINI<b class='flag-5'>開(kāi)發(fā)板</b>免費(fèi)<b class='flag-5'>試用</b>來(lái)啦

    ESP32-C5迷你開(kāi)發(fā)板上手指南!輕松驅(qū)動(dòng)SPI屏幕!

    本文將帶你一步步完成WT9932C5-TINY開(kāi)發(fā)板的燒錄與SPI屏幕驅(qū)動(dòng),從硬件連接到軟件燒錄,直至最終的效果演示。無(wú)需復(fù)雜的前期準(zhǔn)備,跟著教程操作即可快速上手。硬件連接1準(zhǔn)備材料
    的頭像 發(fā)表于 01-19 18:04 ?693次閱讀
    ESP32-C5迷你<b class='flag-5'>開(kāi)發(fā)板</b>上手指南!輕松<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>SPI</b>屏幕!

    【瑞薩RA6E2地奇星開(kāi)發(fā)板試用】點(diǎn)亮 WS2812 全彩點(diǎn)陣

    = R_SPI_Write(&g_spi0_ctrl, &dat, 1, SPI_BIT_WIDTH_8_BITS); WS28
    發(fā)表于 12-27 03:28

    Renesas FPB - RA2T1快速原型開(kāi)發(fā)板:開(kāi)啟高效設(shè)計(jì)之旅

    Renesas FPB - RA2T1快速原型開(kāi)發(fā)板:開(kāi)啟高效設(shè)計(jì)之旅 在電子設(shè)計(jì)領(lǐng)域,一款優(yōu)秀的快速原型開(kāi)發(fā)板能極大地提升開(kāi)發(fā)效率,為項(xiàng)目的成功奠定基礎(chǔ)。Renesas的FPB -
    的頭像 發(fā)表于 12-26 16:20 ?289次閱讀

    【瑞薩RA6E2】點(diǎn)亮 WS2812 全彩點(diǎn)陣

    = R_SPI_Write(&g_spi0_ctrl, &dat, 1, SPI_BIT_WIDTH_8_BITS); WS28
    發(fā)表于 11-05 08:36

    如何用Arduino Nano/UNO R3開(kāi)發(fā)板給另一個(gè)Arduino IDE不能下載的Arduino Nano/UNO R3開(kāi)發(fā)板重新燒錄引導(dǎo)程序bootlaoder

    本文介紹了如何用能夠Arduino IDE下載的Arduino Nano/UNO R3開(kāi)發(fā)板給另一個(gè)Arduino IDE不能下載的Arduino
    的頭像 發(fā)表于 08-08 20:16 ?3571次閱讀
    如何用<b class='flag-5'>Arduino</b> Nano/UNO R3<b class='flag-5'>開(kāi)發(fā)板</b>給另一個(gè)<b class='flag-5'>Arduino</b> IDE不能下載的<b class='flag-5'>Arduino</b> Nano/UNO R3<b class='flag-5'>開(kāi)發(fā)板</b>重新燒錄引導(dǎo)程序bootlaoder

    【RA4L1-SENSOR】點(diǎn)亮 WS2812 全彩點(diǎn)陣

    = R_SPI_Write(&g_spi0_ctrl, &dat, 1, SPI_BIT_WIDTH_8_BITS); WS28
    發(fā)表于 06-09 12:48

    基于RK處理器,創(chuàng)龍TL3562-MiniEVM開(kāi)發(fā)板試用體驗(yàn)

    數(shù)量: 10塊 ? 更多熱點(diǎn)文章閱讀 基于平頭哥TH1520芯片,潤(rùn)開(kāi)鴻HH-SCDAYU800A開(kāi)發(fā)板免費(fèi)試用 RISC-V開(kāi)發(fā)板深度評(píng)測(cè)!頂級(jí)開(kāi)發(fā)板免費(fèi)
    的頭像 發(fā)表于 06-05 16:31 ?1177次閱讀
    基于RK處理器,創(chuàng)龍TL3562-MiniEVM<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>試用</b>體驗(yàn)

    性能強(qiáng)悍!合眾HZ-RK3568開(kāi)發(fā)板試用體驗(yàn)

    月19日 ? 評(píng)測(cè)數(shù)量: 10塊 ? 更多熱點(diǎn)文章閱讀 基于平頭哥TH1520芯片,潤(rùn)開(kāi)鴻HH-SCDAYU800A開(kāi)發(fā)板免費(fèi)試用 RISC-V開(kāi)發(fā)板深度評(píng)測(cè)!頂級(jí)開(kāi)發(fā)板免費(fèi)
    的頭像 發(fā)表于 06-05 16:30 ?1479次閱讀
    性能強(qiáng)悍!合眾HZ-RK3568<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>試用</b>體驗(yàn)

    【評(píng)測(cè)試用】合眾HZ-T536開(kāi)發(fā)板免費(fèi)試用體驗(yàn)

    【評(píng)測(cè)試用】合眾HZ-T536開(kāi)發(fā)板免費(fèi)試用體驗(yàn)
    的頭像 發(fā)表于 05-27 08:05 ?975次閱讀
    【評(píng)測(cè)<b class='flag-5'>試用</b>】合眾HZ-<b class='flag-5'>T</b>536<b class='flag-5'>開(kāi)發(fā)板</b>免費(fèi)<b class='flag-5'>試用</b>體驗(yàn)

    【RA-Eco-RA4M2開(kāi)發(fā)板評(píng)測(cè)】點(diǎn)亮WS2812點(diǎn)陣

    = R_SPI_Write(&g_spi0_ctrl, &dat, 1, SPI_BIT_WIDTH_8_BITS); WS28
    發(fā)表于 05-07 15:28

    【新品體驗(yàn)】正點(diǎn)原子STM32MP257開(kāi)發(fā)板免費(fèi)試用

    試用產(chǎn)品概述ATK-DLMP257B開(kāi)發(fā)板是正點(diǎn)原子基于STM32MP257DAK3處理器研發(fā)的一款高性能嵌入式開(kāi)發(fā)平臺(tái),適用于嵌入式系統(tǒng)開(kāi)發(fā)
    的頭像 發(fā)表于 04-22 08:05 ?1380次閱讀
    【新品體驗(yàn)】正點(diǎn)原子STM32MP257<b class='flag-5'>開(kāi)發(fā)板</b>免費(fèi)<b class='flag-5'>試用</b>

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

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