7段顯示組件
在面包板上構建該電路或使用模擬器軟件。紅色表示5v,藍色表示0v。在實際電路中,我們會使用示波器或電壓表。
看看顯示組件的每條引線是如何有字母a到g,帶點和-ve電源連接的。a引腳上的5v電壓打開顯示器的頂部條?這些通常被標記在物理設備上。
每段供電
按下開關,每次打開一段。第8個引線指向點,通常不包含代碼和連接。您的代碼可以在沒有連接的情況下使用點,但它不會顯示。
使數字
將這些片段組合成可見的數字。我們的演示代碼將為字母添加一些組合。
用計算機實現自動化
這不是我們想手工做的事情。這正是我們想要用程序自動化的東西。ATmega328是一個單芯片計算機,連接電源,它將運行任何程序在閃存。
C++軟件
ATmega328是Arduino Uno板中的處理器。我們可以用Arduino IDE用C++或C++語言編程。一個演示程序將只使用我們在板上的32kB閃存中的2kB。
首先,我們必須安裝一個庫程序,它將添加知道如何與LED電路一起工作的代碼。
高級七段
更新您的Arduino代碼庫并搜索Advance Seven Segment。有很多為這些顯示器編寫的軟件庫。這個很小。
它添加了兩個源代碼文件,您可以打開并讀取、修改它們。頭文件是AdvanceSevenSegment.h,它為我們將要使用的函數提供了一個聲明。我們在代碼中包含了這個頭文件,并且這個庫中的函數可以在我們的草圖中使用。
以及AdvanceSevenSegment.cpp,它提供函數定義。注意,1和0與輸出引腳上的5伏和0伏匹配。通讀源代碼可以了解程序的工作原理。它可以是可讀的。
這里展示了c++和面向對象編程的許多原理。輸入的1和0成為數據對象,我們的LED段也是如此。
編程你的Uno板
像你在圖中看到的那樣連接電線并上傳草圖。注意,當引腳13通電時,Uno板上的LED也會亮起。
代碼
打開Arduino草圖并復制這段代碼。它需要包含的庫。顯示模塊循環(huán)通過數字0到9,然后在7段顯示上工作的一些字母數字。
關鍵的一行是數據對象構造函數AdvanceSevenSegment display(variables);取每個顯示段的1和0并計算是否打開每個顯示段的數學函數。
包含文件
前面我們看了庫頭和cpp代碼?;仡^查看頭文件和cpp源文件,了解程序如何將字母數字值轉換為電壓。
記事本打開這些文件。
我們寫#包括在我們的草圖,然后所有上述添加。位于另一個目錄中,“binary.h”位于同一目錄中。
那么,就這樣了?
不,才剛開始。這里我們只看到基本的7段LED組件。更多的電路組合涉及多個顯示器、附加接口和芯片。
我們的單個模塊在電路板上使用7或8個引腳。添加模塊不會以這種方式工作。為了處理所有的連接引線,有解決方案可以在2線上串行工作,或者減少連接到4引線BCD二進制編碼十進制。
我們的模塊使用地面為我們所有的部分。我們在每條上加5v或3v來獲得光。這被稱為共享或公共陰極類型。其他公共陽極模塊被連接到一個共享的正極。我們可能需要翻轉我們的比特。
是創(chuàng)造性的。想象Uno將此草圖作為顯示驅動程序設備運行。我們的草圖是顯示驅動軟件。您可以使用串行端口功能來打印您選擇的消息。
這個草圖很小。在較小的芯片上運行,比如ATmega8或atiny。物理上較小,我們只使用8個引腳。
查找7段的代碼和電路圖可能會很混亂,因為有太多的選擇。這個項目不是移位寄存器項目,它不是BCD,也不是串行接口。每個信號接口都是不同的。
這個項目是關于模塊有7段a, b, c, d, e, f, g。有時被稱為管,因為熱發(fā)光真空管是一種顯示技術。
本文編譯自hackster.io