與LCD顯示器相比,七段LED顯示器更亮,更吸引人,并且提供了較遠(yuǎn)的觀看距離和更寬的視角。該項(xiàng)目描述了用于Arduino Uno或兼容板的串行七段LED顯示護(hù)罩。屏蔽層由八個(gè)MAX6190芯片驅(qū)動(dòng)的八個(gè)0.56英寸的七段顯示器組成。屏蔽層還具有一個(gè)光敏電阻(LDR),以對(duì)LED顯示屏實(shí)施自適應(yīng)亮度控制。 LDR輸出可以饋入Arduino的A0或A1模擬輸入通道以讀取周?chē)恼彰魉?。然后,Arduino可以使用該信息來(lái)調(diào)整LED顯示屏的亮度。本文的后半部分還提供了演示代碼和Eagle CAD文件。
串行七段式LED顯示屏護(hù)罩
MAXIM的MAX7219顯示驅(qū)動(dòng)器芯片提供3線串行(SPI)接口,可驅(qū)動(dòng)多達(dá)八個(gè)七段LED顯示(共陰極型),芯片上包括BCD解碼器,多路掃描電路,段和數(shù)字驅(qū)動(dòng)器, 8×8靜態(tài)RAM存儲(chǔ)數(shù)字值。所有LED的最大段電流通過(guò)外部電阻設(shè)置。但是,該設(shè)備還能夠通過(guò)軟件對(duì)LED段進(jìn)行16級(jí)亮度控制。有關(guān)MAX7219內(nèi)部框圖和操作的更多詳細(xì)信息,請(qǐng)閱讀我先前的項(xiàng)目串行4位LED顯示屏以及 Maxim的數(shù)據(jù)手冊(cè)。
顯示屏防護(hù)罩功能
由八行七段式LED顯示屏(0.56英寸高度)組成,兩行四位數(shù)字排列。
帶并聯(lián)跳線的接頭插針(1),用于連接將MAX7219的DIN,CLK和LOAD引腳連接到Arduino引腳。使用跳線,您可以將DIN連接到引腳8或2,將CLK連接到引腳9或3,將LOAD連接到引腳10或4。
用于檢測(cè)環(huán)境光水平的LDR電路。 LDR輸出可以通過(guò)跳線J2連接到A0或A1引腳。
這些功能在下圖中突出顯示。
串行7段LED顯示屏屏蔽功能
跳線選擇Arduino I/O引腳用于DIN,CLK和LOAD MAX7219的引腳
自適應(yīng)亮度控制
基本上,自動(dòng)亮度調(diào)節(jié)是一種閉環(huán)系統(tǒng),能夠評(píng)估環(huán)境光并相應(yīng)地調(diào)節(jié)顯示器的亮度。在該屏蔽層中,通用LDR和固定值電阻器(10K)串聯(lián)連接在電源和接地引腳之間,以創(chuàng)建分壓網(wǎng)絡(luò)。在明亮的照明條件下,典型LDR的電阻小于1KΩ。在極端黑暗的條件下,其電阻可能高達(dá)數(shù)百KΩ。因此,跨過(guò)10K電阻器的電壓會(huì)隨著周?chē)恼斩瘸杀壤黾?。?duì)于給定的設(shè)置,10K電阻兩端的電壓可以從0.1V(在黑暗條件下)到超過(guò)4.0V(在非常明亮的照明下)之間變化??梢詫?duì)Arduino進(jìn)行編程,以通過(guò)其模擬輸入通道(A0或A1)讀取該模擬電壓,然后將適當(dāng)?shù)?a target="_blank">信號(hào)發(fā)送至MAX7219驅(qū)動(dòng)器,以調(diào)整七段LED顯示屏的亮度。我已經(jīng)在上一篇文章中詳細(xì)解釋了該主題。
測(cè)試代碼
該代碼通過(guò)讀取LDR輸出來(lái)檢測(cè)環(huán)境光線條件通過(guò)A0通道并調(diào)節(jié)LED顯示屏的亮度。顯示屏僅顯示0-7之間的數(shù)字。您將需要安裝 LedControl 庫(kù)。
/* Testing SPI 7-Segment LED display shield
* Uses LedControl library
* Demonstrates the use of LDR for auto brightness adjustment.
*/
#include “LedControl.h”
// Arduino Pin 8 to DIN, 9 to Clk, 10 to LOAD, no.of devices is 1
LedControl lc=LedControl(8,9,10,1);
int adc_value, brightness;
void setup()
{
// Initialize the MAX7219 device
lc.shutdown(0,false); // Enable display
lc.setIntensity(0,8); // Set brightness level (0 is min, 15 is max)
lc.clearDisplay(0); // Clear display register
}
void loop()
{
adc_value = analogRead(A0);
brightness = adc_value/65; // Divide by 65 to get Maximum Brightness 15.
lc.setIntensity(0,brightness);
// Display 1 through 8
for(int i=0; i《8; i++){
lc.setDigit(0,i,i,false);
}// End i
delay(500);
}
使溫度/濕度計(jì)顯示自動(dòng)調(diào)節(jié)亮度
您只需將DHT22傳感器插入Arduino屏蔽接頭(引腳GND,13、12、11)即可制成溫度/濕度計(jì),如下所示。 DHT22引腳的GND,數(shù)據(jù)和VCC連接到Arduino的GND,D12和D11引腳。然后,您只需向D11引腳寫(xiě)入“邏輯1”即可為DHT22傳感器供電。
制造一個(gè)具有自適應(yīng)亮度控制的基于DHT22的簡(jiǎn)單溫度/濕度計(jì)
要進(jìn)行測(cè)試,您可以將DHT22直接插入Arduino接頭并通過(guò)I/O引腳為傳感器供電。
責(zé)任編輯:wv
-
LED顯示屏
+關(guān)注
關(guān)注
35文章
1820瀏覽量
98595 -
防護(hù)罩
+關(guān)注
關(guān)注
0文章
4瀏覽量
6600
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論