日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 工業(yè)控制 > 電路設(shè)計項目集錦
[導(dǎo)讀]盡管我們稱之為“字符顯示”,但每個字符并非是一個單獨的完整塊狀物。如果你給屏幕通電并仔細觀察,就會發(fā)現(xiàn)每個字母或數(shù)字都是由一個由小點組成的網(wǎng)格構(gòu)成的。

簡介

倘若你的 Arduino 項目不僅能發(fā)出閃爍的燈光或驅(qū)動電機運轉(zhuǎn),還能向你清晰地說明它正在做什么的話,那會是怎樣的情景呢?

在本節(jié)課中,您將學(xué)習(xí)如何使用 16x2 液晶顯示屏來顯示信息,了解幕后所發(fā)生的情況,并使您的項目顯得更加精致和專業(yè)。

這是“Arduino 初學(xué)者教程”系列的第 14 課,也是這類課程中那種能讓學(xué)習(xí)過程感覺更加“真實”的一課。

讓我們開始吧。

物資;供應(yīng)品

對于這個項目,您將需要:

?Arduino UNO

?I/O 擴展護罩

?液晶顯示屏

?四針電線

了解液晶顯示屏模塊

這是隨“MindPlus Arduino 編程套裝”一同配備的液晶顯示屏模塊,正是我們在本系列的 24 期內(nèi)容中一直使用的那套套裝。

乍一看,它似乎太過簡單了:正面有一個屏幕,背面有一些電子元件,還有一個僅四個針腳的連接器,這已經(jīng)暗示著接線過程會相當(dāng)簡便。

如果你仔細觀察顯示屏的底部前端,就會看到上面印著“LCD 1602”字樣。這個名稱確切地告訴我們這是何種類型的屏幕。

“16”指的是每行能夠顯示的字符數(shù)量,而“2”指的是行數(shù)。換句話說,這種顯示屏最多能在第一行顯示 16 個字符,在第二行也能顯示 16 個字符。

盡管我們稱之為“字符顯示”,但每個字符并非是一個單獨的完整塊狀物。如果你給屏幕通電并仔細觀察,就會發(fā)現(xiàn)每個字母或數(shù)字都是由一個由小點組成的網(wǎng)格構(gòu)成的。

具體來說,每個字符都是由一個 5×8 像素的矩陣構(gòu)成的。通過控制不同的像素開啟或關(guān)閉,液晶顯示屏就能繪制出字母、數(shù)字和符號。

一旦你明白了這個細節(jié),這款顯示器的各種局限性和可能性也就變得清晰明了了。

您還會發(fā)現(xiàn)其他格式的液晶顯示屏。有些尺寸較小,比如 16x1 顯示屏,而有些則較大,比如 16x4。它們還具有不同的顏色,例如綠色或藍色。盡管存在這些差異,但其基本理念是相同的。

I2C 通信及其重要性

如果我們將模塊翻轉(zhuǎn)過來,并將注意力集中在連接器上,就會立刻注意到兩個明顯的標(biāo)簽:SDA 和 SCL。這些標(biāo)簽告訴我們,這款液晶顯示屏采用的是 I2C 通信方式。

在 I2C 接口配置中,SDA 引腳負責(zé)傳輸數(shù)據(jù),而且有趣的是,它能夠雙向傳輸數(shù)據(jù)。

SCL 引腳傳輸時鐘信號,該信號由主設(shè)備生成。在我們的例子中,Arduino 起到主設(shè)備的作用,控制著通信過程。

I2C 的最大優(yōu)勢之一在于它能讓多個設(shè)備共用同一對導(dǎo)線。只要每個設(shè)備都有其獨特的地址,您就可以將多個傳感器、顯示器和模塊連接到相同的 SDA 和 SCL 線路上。

這的確實非常強大,尤其對于初學(xué)者項目而言更是如此,因為它能確保布線保持整潔、簡單,并且便于排查故障。

如果你之前使用過 Arduino,那么你可能見過另一種不使用 I2C 協(xié)議的液晶顯示屏。這類顯示屏通常有較多的引腳,連接它們需要更多的線路連接和配置工作。因此,很多人最終會購買一個 I2C 適配器,并將其焊接到標(biāo)準(zhǔn)液晶顯示屏的背面。

該適配器通常會包含一個名為 PCF8574 的芯片。這個芯片充當(dāng) I2C 輸入/輸出擴展器的功能。簡單來說,它就是為顯示屏添加 I2C 通信功能的部件。值得一提的是,這個芯片不僅適用于液晶顯示屏,還可以用于控制 LED、傳感器以及其他模塊。

現(xiàn)在理論部分就講到這里吧。咱們還是動手去做點實際的東西吧。

在我們開始項目之前,我想感謝 DFRobot 公司為我們提供了這次課程的贊助。

DFRobot 是全球領(lǐng)先的為創(chuàng)客、教育工作者和工程師提供硬件產(chǎn)品的企業(yè)之一。

在他們的在線商店里,您可以找到開展下一個項目所需的各種物品,從電機、傳感器、微控制器到單板計算機、人工智能設(shè)備等等應(yīng)有盡有。

如果你打算打造一些酷炫的東西,我強烈建議你去看看他們的產(chǎn)品。他們的產(chǎn)品質(zhì)量上乘,價格也非常合理。

在本系列教程中,我使用的是“MindPlus Arduino 編程套件”,因為它包含了你開展 Arduino 項目所需的一切工具。

再次感謝 DFRobot 對此系列的支持,感謝你們讓 STEM 教育能夠惠及更多人。

啟動項目

那我們繼續(xù)吧,開始組裝我們的第一個液晶顯示器項目。

首先將 I/O 擴展板安裝到你的 Arduino UNO 上。這個擴展板使得連接模塊變得更加容易,并且還能使所有部件保持整齊有序。

接下來,使用四針電纜將液晶模塊連接到屏蔽板上。SCL 引腳連接到 A5,SDA 引腳連接到 A4。該顯示屏的工作電壓范圍為 3.3 至 5 伏,因此可以安全地與大多數(shù) Arduino 板配合使用。

一旦硬件準(zhǔn)備就緒,就前往本系列的 GitHub 倉庫。在描述中會找到相關(guān)鏈接。打開第 14 課的文件夾,復(fù)制名為“test-lcd”的文件,并將其粘貼到你的 Arduino IDE 中。

在上傳代碼之前,請確保已安裝了 DFRobot_RGBLCD1602 庫。完成此操作后,點擊“上傳”。

如果所有連接都正確無誤,您應(yīng)該會在屏幕上看到“第 14 課 - 液晶模塊”這一信息。這就是我們?nèi)〉玫牡谝粋€成功。

理解代碼

現(xiàn)在讓我們放慢速度,仔細看看這段代碼實際在做什么。

首先,我們要引入正確的庫,并創(chuàng)建一個能夠控制液晶顯示屏的對象。你可以將這個對象視為我們與屏幕進行直接通信的途徑。

在 setup() 函數(shù)內(nèi)部,我們初始化顯示屏、清除之前的所有數(shù)據(jù),并打印出我們的信息。需要記住的一個重要細節(jié)是,每行只能顯示 16 個字符。如果您的信息長度超過這個限制,您就需要將其分兩行顯示,下面就是這樣的實現(xiàn)方式。

如果這部分內(nèi)容您仍覺得難以理解,別擔(dān)心。我有一整套關(guān)于 Arduino 編程基礎(chǔ)的課程,如果您想更深入地理解的話,那讀一讀也是很有幫助的。

但接下來便出現(xiàn)了有趣的問題:倘若你的信息內(nèi)容實在太過冗長,以至于無法僅用兩行文字來表達清楚,那該怎么辦呢?

創(chuàng)建滾動文字效果

我們不必試圖一次性展示所有內(nèi)容,而是可以采用一種滑動或滾動的效果,使得在任何特定時刻只有一部分信息是可見的。這種技術(shù)在許多實際設(shè)備中都有應(yīng)用,從打印機到工業(yè)控制面板等等。

要實際體驗一下效果,請返回 GitHub 倉庫,復(fù)制名為“滑動文本”的示例代碼,將其上傳至你的 Arduino 設(shè)備,然后觀察液晶顯示屏。您會看到一條長長的文本信息在屏幕上流暢地滾動。

那么,這是如何運作的呢?

這段示例的開頭部分以及 setup() 函數(shù)與之前的示例幾乎完全相同,因此真正的重點在于 loop() 函數(shù)。這就是邏輯所在的地方。

核心思想是將信息不看作一條直線,而視為一個圓圈。想象一下文字寫在一個環(huán)上。當(dāng)你讀到結(jié)尾時,會立即回到開頭重新開始。這種方法使我們能夠?qū)崿F(xiàn)無限滾動的效果,而無需擔(dān)心信息的起始位置或結(jié)束位置。

由于液晶顯示屏每次只能顯示 16 個字符,所以該代碼會構(gòu)建一個名為“visibleText”的臨時字符串。這個字符串準(zhǔn)確地表示了在特定時刻屏幕上應(yīng)顯示的內(nèi)容。

一個 for 循環(huán)會運行 16 次,每次對應(yīng)顯示窗口中的一列內(nèi)容。在每次迭代中,它都會從消息中選取下一個字符。

模運算用于在字符串末尾到達時進行循環(huán)處理,這就是為什么模運算符在這里如此重要。它確保代碼不會超出邊界,并使文本能夠流暢地滾動。

構(gòu)建完 16 位字符串后,該代碼會將其輸出到液晶顯示屏上,然后將位置向前移動一個字符,并等待一段短暫的延遲。調(diào)整這個延遲時間會改變滾動的速度。

其結(jié)果是呈現(xiàn)出一條清晰、流暢且連貫的滾動信息。

本文編譯自hackster.io

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉