用Arduino代碼庫做LED燈帶控制 太強了!
本文介紹了Arduino代碼庫的強大功能, 推薦使用Arduino Uno等開發(fā)板,并詳細說明了如何安裝和使用Adafruit NeoPixel庫來控制智能可尋址 LED燈帶。文章還解釋了如何組裝電路、編寫和修改函數(shù)以創(chuàng)建獨特的燈光效果,并強調了庫在簡化設備通信和程序構建中的重要性。此外,文章還介紹了如何安裝額外的開發(fā)板。Arduino社區(qū)最強大的點之一在于它的代碼庫 —— 這些專門的編程包能夠讓您用簡單的指令控制復雜的計算工具。Arduino會識別這些附加模塊,讓您可以在您的程序中使用這些指令。以下視頻將帶來走進Arduino代碼庫。趕快點開來看,實現(xiàn)您的創(chuàng)意吧!
本文引用地址:http://m.butianyuan.cn/article/202501/466193.htmArduino的代碼庫涵蓋各種復雜任務,比如控制大量LED、讀取傳感器、生成聲音、處理數(shù)據(jù)、寫入顯示器等等。有些庫是 Arduino 軟件內置的,例如允許您控制伺服電機的庫。任何人都可以發(fā)布其代碼庫,而Arduino軟件也自帶了成千上萬個可供安裝的代碼庫。
在開始時,我建議首先使用的開發(fā)板是 Arduino Uno (1050-1024-ND) 或兼容產品,例如 Adafruit Metro (1528-1214-ND) 、 Sparkfun Redboard (1568-1977-ND) 或 Seeeduino (102010026-ND) 。
要構建本視頻中的電路,您需要:
Arduino Uno 或兼容產品,以及 USB 線
無焊面包板
跳線 或 實心連接線
WS2812 可尋址 LED 燈帶(又名 NeoPixel 燈帶)
讓我們從 智能可尋址 LED 開始,這是一系列可控制的 LED 燈,通常稱為 NeoPixels,這是 Adafruit 的品牌名稱。每個像素包含一個 WS2812 芯片,該芯片與 Arduino 主板和燈帶中的其他像素進行通信,以確定是否點亮以及點亮什么顏色——沒有控制器,它是無法亮起的。為了控 制這條燈帶,我們需要一些額外的Arduino函數(shù),您可以通過安裝代碼庫來獲取它們。
安裝庫的步驟是,打開庫管理器,點擊“Sketch”(菜單) > “Include Library”(包含庫)>“ Manage Libraries” (管理庫) 。
然后搜索 “NeoPixel” ,找到 “Adafruit NeoPixel” 庫并點擊安裝?,F(xiàn)在,您已準備好在 Arduino 項目中使用 NeoPixel 庫!您可以在需要時使用庫管理器安裝新的庫。
NeoPixel 燈帶中的每個像素都包含一個非常小的 RGB LED,理論上可以形成任何顏色的光。但是,生成純白色對于RGBLED來說有難度,產生的光的色調不準或混合質量不佳等問題常常令用戶失望。
因此,還有一種 RGBW 類型的 LED,在其封裝內部還包括一個白色LED,編寫這些像素的代碼將包括四個亮度值來描述像素的顏色: 紅色、綠色、藍色和白色。這類似于 本系列前面一集 中的an alogWrite()函數(shù)示例,您需要提供0到255之間的數(shù)字來表示每個LED的亮度。Neo Pixel庫中的函數(shù)以像素編號和這些顏色值作為參數(shù),然后將它們轉換為要發(fā)送給像素的命令。
要組裝電路,請將導線焊接到了像素的電源、地線和輸入引腳上,然后將Arduino板斷電,現(xiàn)在是時候連接電路了。
將紅色導線連接到5伏電源,黑色導線接地。白色數(shù)據(jù)線需要連接到Arduino 引腳 6,因為這是所包含的代碼示例使用的引腳。
請確保您將數(shù)據(jù)線連接到燈帶的輸入端,因為如果連接到輸出端,它將無法工作。電源和地線可以連接到燈帶的任何位置。
您可以在 “File”(文件) > “Examples”(示例)滾動到底部來找到代碼示例,在那里您可以根據(jù)庫的名稱查看子菜單。然后,打開名為 “strandtest” 的示例。
第一部分創(chuàng)建了NeoPixel燈帶的實例,并設置了程序的可配置部分,比如連接到NeoPixel燈帶的引腳,像素數(shù)量以及全局亮度級別。
# define語句類似于變量聲明,但用于在程序運行時不會更改的信息,比如引腳號或LED數(shù)量。它們占用的內存比常規(guī)變量聲明要少。
strip.show()可以用來使像素燈帶產生變化,設置像素顏色和顯示最新更改被分成兩個單獨的命令。
The main loop just calls other functions. The first is colorWipe(), which takes two arguments: a ? color, and a speed value in milliseconds.主循環(huán)只是調用一些外部函數(shù),第一個是 colorWipe(),它接受兩個參數(shù):一個顏色值和一個以毫秒為單位的速度值。
要了解 colorWipe() 的作用,請在主循環(huán)下方尋找定義該函數(shù)的位置。函數(shù)定義以指定函數(shù)將返回或發(fā)送回主程序的數(shù)據(jù)類型開始。這次,該函數(shù)不返回任何內容,它只是控制像素,因此,在函數(shù)定義的開頭使用了 'void'。接下來是函數(shù)的名稱,在本示例中為“colorWipe”。當您定義自己的函數(shù)時,您可以隨意命名。在函數(shù)名稱后的括號中,是該函數(shù)接受的參數(shù)。在本示例中,有一個名為“color”的 32 位無符號整數(shù)和一個名為“wait”的 8 位無符號整數(shù)。在函數(shù)內部,這些局部變量用于引用您從主循環(huán)或另一個函數(shù)傳遞給它的信息。
該函數(shù)本身使用 for 循環(huán)和 NeoPixel 庫函數(shù) strip.numPixels(); 逐個處理燈帶中的所有像素,讓每個像素發(fā)出有顏色的光,然后再繼續(xù)下一個。strandtest 程序中的其他函數(shù)以相同的方式工作,并通過計算實現(xiàn)一些特別的燈光效果。
您可以輕松修改 colorWipe() 函數(shù)以編寫自己獨特的動態(tài)效果。復制并粘貼整個函數(shù)定義,更改函數(shù)名稱,然后就可以嘗試代碼了。務必從主循環(huán)內部調用新函數(shù)。如果您找到喜歡的效果,則可以停止編輯該函數(shù)并創(chuàng)建一個新的函數(shù)。函數(shù)對于分離出您想要重復訪問的代碼塊很方便,并且可以使您的代碼更易于閱讀。
當您熟悉了安裝庫和通過包含的示例和庫的文檔,查找如何使用它們內置的函數(shù),Arduino 世界就由您掌控。除了我們在 前幾集 中介紹的基本輸入和輸出之外,庫還讓您可以輕松地與使用 i2c 或 SPI 等數(shù)據(jù)協(xié)議進行通信的設備進行通信。這些設備使用更少的導線來發(fā)送和接收復雜信息。如果您對剛了解的所有新知識感到有些不知所措,請查看 我的指南 ,了解如何將您的 Arduino 項目從想法轉化為代碼?;旧希梢允褂脦焓纠a讓每個單獨的輸入和輸出都正常工作,然后可以提取其他示例代碼中的片段逐步構建一個新的程序。
在您學習使用 Arduino 的這個階段,還有一件很有用的事情就是如何安裝額外的電路板。就像 Sketch 菜單下的庫管理器一樣,工具菜單下也有一個開發(fā)板管理器。但與庫不同的是,開發(fā)板管理器需要知道在哪里查找新的開發(fā)板信息。
例如,如果您想安裝 ESP開發(fā)板 ,您需要先將該ESP開發(fā)板的URL粘貼到Arduino首選項的這個字段中。然后打開開發(fā)板管理器,您將在列表中看到它們。您可以通過在這個字段中用逗號分隔來添加多個開發(fā)板管理器的URL。有時兼容的開發(fā)板還需要安裝驅動程序,因此,請務必在準備使用新開發(fā)板時仔細閱讀文檔。
無論您是新手還是經(jīng)驗豐富的工程師,Arduino都為您提供豐富的資源和靈感。希望能通過這些代碼庫,可以讓您輕松實現(xiàn)創(chuàng)意,開啟無限的可能性。讓我們繼續(xù)一起探索Arduino的世界,創(chuàng)造出令人驚嘆的項目吧!
看完視頻想提問?或者有使用Auduino的經(jīng)驗想分享?歡迎點擊以下按鈕↓ ↓ ↓
我要到技術論壇一起討論
關于本系列視頻
電子設計博大精深,對于初學者來說,有一定的難度。本系列視頻旨在介紹一些入門級的技術和技巧,包括電路設計基礎知識、簡單編程等,讓初學者從基礎開始,再一步步向更進階出發(fā),在電子設計的世界里,發(fā)掘更多樂趣,同時也可以讓電子設計愛好者溫故知新。關于Becky Stern
Becky Stern 是一名創(chuàng)客,擁有多年設計電子項目的經(jīng)驗,創(chuàng)作和分享是她兩大愛好。在獨立創(chuàng)業(yè)之前,她曾擔任 Instructables (Autodesk) 的產品經(jīng)理、Adafruit 的可穿戴電子產品總監(jiān)等。她的作品曾被 BBC、CNN、Business Insider、Forbes 和 Science Friday 等知名媒體報道過。她創(chuàng)建了數(shù)百個關于技術和手工制作的在線DIY教程和視頻,旨在分享她的知識,幫助同是電子設計愛好者的同路人學習,相互交流。
評論