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

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

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

數(shù)碼管亮度怎么調(diào)節(jié)?

冬至子 ? 來源:單片機(jī)技術(shù)宅 ? 作者:小代 ? 2023-06-13 16:13 ? 次閱讀

之前在我們?cè)O(shè)計(jì)的DIY電子時(shí)鐘里面,有一項(xiàng)需求就是數(shù)碼管顯示的亮度要隨環(huán)境亮度的改變而自動(dòng)調(diào)節(jié)。這幾天在群里也有人問到這個(gè)問題,在群里說了大體思路后,還是不能理解,程序部分還是沒有是成功,今天小代就寫此文來說說數(shù)碼管亮度怎么調(diào)節(jié)?文后會(huì)附上源碼。

在我們硬件電路做好之后,再要去調(diào)節(jié)數(shù)碼管的亮度,那就只能從軟件入手,也就是編程來實(shí)現(xiàn)它。正常情況下,我們的程序都是給數(shù)碼管全亮,就像電機(jī)全速運(yùn)行一樣,需要調(diào)速了,我們就采用PWM信號(hào)去控制,PWM信號(hào)的原理其實(shí)就是在相同的頻率下,減小了驅(qū)動(dòng)電平的時(shí)間,這里調(diào)節(jié)亮度的原理也是差不多,就是在保持刷新頻率不變得情況下,減少每一位數(shù)碼管點(diǎn)亮的時(shí)間。

下面我們簡單說說正常的數(shù)碼管顯示程序怎么寫。全亮?xí)r,我們是現(xiàn)給數(shù)碼送段選數(shù)據(jù),再送位選數(shù)據(jù),然后延時(shí)一小會(huì)時(shí)間,再重復(fù)以上內(nèi)容顯示下一位?,F(xiàn)在我們有四位數(shù)碼管,我們讓每位點(diǎn)亮6ms,這樣4位數(shù)碼管顯示完一次(掃描一次)大約25ms,那1秒就可以掃描40次(40幀/秒),這樣我們?nèi)搜劭吹降木褪峭瑫r(shí)顯示(視頻一般為25幀/秒)。具體過程如下(4位數(shù)碼管分別計(jì)為A、B、C、D):

開始: A 選通 延時(shí)6ms ,關(guān)閉A

B 選通 延時(shí)6ms ,關(guān)閉B

C 選通 延時(shí)6ms ,關(guān)閉C

D選通 延時(shí)6ms ,關(guān)閉 D

結(jié)束一幀掃描

(注:此處的選通包含段碼和位碼)

詳細(xì)程序如下:

圖片

正常顯示程序

如上圖就是正常的顯示代碼段(共陰數(shù)碼管),以上程序運(yùn)行后可以在數(shù)碼管上看到顯示1234全亮度。這里說的延時(shí)一小會(huì),這個(gè)時(shí)間是在毫秒級(jí)別的,調(diào)節(jié)這個(gè)時(shí)間,是可以調(diào)節(jié)亮度,但是時(shí)間稍微大一點(diǎn),就會(huì)出現(xiàn)閃爍的情況了。我們要的是既要亮度可以調(diào)節(jié),又要不閃爍,那就要用到我們說的PWM信號(hào)了。

現(xiàn)在要在不改變掃描速率的情況下,降低每一位點(diǎn)亮的時(shí)間,這樣我們看到的效果就是亮度的降低了。比如上圖中的程序,我們延時(shí)時(shí)間是6ms,這6ms時(shí)間都是點(diǎn)亮數(shù)碼管的,現(xiàn)在要減少點(diǎn)亮?xí)r間,那我們就點(diǎn)亮3ms,關(guān)閉3ms,這樣一來,掃描一位的時(shí)間還是6ms,但是這6ms時(shí)間內(nèi)只有3ms時(shí)間是點(diǎn)亮的,自然亮度就降低了,而沒有改變掃描時(shí)間,自然不會(huì)出現(xiàn)閃爍的情況。具體過程如下:

開始: A 選通 延時(shí)3ms ,關(guān)閉A 延時(shí)3ms

B 選通 延時(shí)3ms ,關(guān)閉B 延時(shí)3ms

C 選通 延時(shí)3ms ,關(guān)閉C 延時(shí)3ms

D選通 延時(shí)3ms ,關(guān)閉 D 延時(shí)3ms

結(jié)束一幀掃描

(注:此處的選通包含段碼和位碼)

具體代碼如下:

圖片

如上圖所示,每一位點(diǎn)亮的時(shí)間只有3ms,但是掃描每一位數(shù)碼管的時(shí)間還是原來的6ms,這樣就實(shí)現(xiàn)了在不改變刷新頻率的情況下減少了每一位點(diǎn)亮的時(shí)間,從而減低了亮度,上圖中的亮度已經(jīng)是全亮的一半了。

好了,到這要調(diào)節(jié)亮度的任務(wù)就已經(jīng)完成了,但是我們還想拓展一下,如何讓這個(gè)亮度可以通過程序自動(dòng)來調(diào)節(jié)而不是我們認(rèn)為的修改程序呢?辦法很簡單,我們?cè)诔绦蛑性O(shè)一個(gè)變量為點(diǎn)亮的時(shí)間參數(shù)(比如設(shè)為on_time),每一位還是點(diǎn)亮6ms,那關(guān)閉的時(shí)間就是6ms-on_time。

那過程就變?yōu)槿缦拢?/p>

開始: A 選通 延時(shí)on_time ,關(guān)閉A延時(shí)6ms-on_time

B 選通 延時(shí)on_time ,關(guān)閉B延時(shí)6ms-on_time

C 選通 延時(shí)on_time ,關(guān)閉C延時(shí)6ms-on_time

D選通 延時(shí)on_time ,關(guān)閉 D延時(shí)6ms-on_time

結(jié)束一幀掃描

要讓程序自動(dòng)調(diào)節(jié)這個(gè)變量on_time,就需要來調(diào)節(jié)的參數(shù),比如時(shí)間參數(shù),在幾點(diǎn)到幾點(diǎn)之間亮度為多少,可以多少幾個(gè)檔次。更高級(jí)別的可以通過光敏電阻來實(shí)現(xiàn)檢測(cè)環(huán)境光照度來調(diào)節(jié)這個(gè)現(xiàn)實(shí)的時(shí)間參數(shù)on_time,這樣就可以實(shí)現(xiàn)正真的隨環(huán)境的變化而變化。我們做的DIY電子時(shí)鐘就是采用最后說的方式,通過光敏電阻分壓后單片機(jī)ADC轉(zhuǎn)換得到電壓值,再根據(jù)這個(gè)電壓值來自動(dòng)的調(diào)節(jié)點(diǎn)亮的時(shí)間。通過修改延時(shí)函數(shù),可以做到真正的無極調(diào)光。

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

    關(guān)注

    6037

    文章

    44561

    瀏覽量

    635637
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1882

    瀏覽量

    91154
  • 光敏電阻
    +關(guān)注

    關(guān)注

    4

    文章

    293

    瀏覽量

    49004
  • PWM信號(hào)
    +關(guān)注

    關(guān)注

    3

    文章

    95

    瀏覽量

    20152
  • ADC采樣
    +關(guān)注

    關(guān)注

    0

    文章

    134

    瀏覽量

    12849
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    數(shù)碼管驅(qū)動(dòng)芯片的使用方法

    數(shù)碼管驅(qū)動(dòng)芯片是一種專門設(shè)計(jì)用于控制數(shù)碼管的集成電路。它通常包含多個(gè)輸出通道,每個(gè)通道可以獨(dú)立控制一個(gè)數(shù)碼管亮度和顯示內(nèi)容。數(shù)碼管驅(qū)動(dòng)芯
    的頭像 發(fā)表于 12-08 16:24 ?1w次閱讀

    LED數(shù)碼管

    (/)等運(yùn)算符號(hào)功能。圖1.118示出了幾種不同類型的LED數(shù)碼管。 與熒光數(shù)碼管和輝光數(shù)碼管相比,LED數(shù)碼管具有體積小、重量輕、發(fā)光響應(yīng)速度快、單色性好、
    發(fā)表于 01-04 01:35

    LED數(shù)碼管驅(qū)動(dòng)芯片選型指南

    端口發(fā)送數(shù)據(jù)給芯片即可,實(shí)現(xiàn)單線通訊,節(jié)省單片機(jī)端口;2.LED數(shù)碼亮度可調(diào):可調(diào)節(jié)段的驅(qū)動(dòng)電流和占空比兩種方式來調(diào)節(jié)LED數(shù)碼管
    發(fā)表于 12-17 16:20

    數(shù)碼管顯示亮度太暗怎樣增加亮度?

    有一個(gè)設(shè)備用單片機(jī)控制,它的八位O/I口輸出數(shù)據(jù)供給十八位數(shù)碼管做動(dòng)態(tài)掃描用,數(shù)碼管的位選用三八譯碼器控制,現(xiàn)在的問題是數(shù)碼管顯示亮度太暗,我在八位數(shù)據(jù)線上串接74LS245驅(qū)動(dòng)器后
    發(fā)表于 02-19 23:26

    數(shù)碼管時(shí)鐘怎么調(diào)節(jié)亮度

    通過什么辦法調(diào)節(jié)數(shù)碼管亮度
    發(fā)表于 09-26 08:24

    數(shù)碼管的分類

    數(shù)碼管的分類     數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管
    發(fā)表于 11-06 11:41 ?7474次閱讀

    數(shù)碼管的驅(qū)動(dòng)方式

    數(shù)碼管的驅(qū)動(dòng)方式   數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管
    發(fā)表于 11-06 11:42 ?3979次閱讀

    為什么數(shù)碼管亮度不均勻?

    為什么數(shù)碼管亮度不均勻?  關(guān)于亮度一致性的問題是一個(gè)行業(yè)內(nèi)的常見問題?! ∮卸€(gè)大的因素影響到亮度一致性?! ∫皇鞘褂迷牧闲酒倪x
    發(fā)表于 11-06 11:44 ?6311次閱讀

    動(dòng)態(tài)數(shù)碼管

    動(dòng)態(tài)數(shù)碼管 基于51單片機(jī)的動(dòng)態(tài)數(shù)碼管源代碼。
    發(fā)表于 05-09 09:41 ?9次下載

    靜態(tài)數(shù)碼管

    靜態(tài)數(shù)碼管靜態(tài)數(shù)碼管靜態(tài)數(shù)碼管靜態(tài)數(shù)碼管
    發(fā)表于 05-13 15:39 ?6次下載

    多位數(shù)大尺寸高亮度低成本LED數(shù)碼管驅(qū)動(dòng)電路的設(shè)計(jì)

    多位數(shù)大尺寸高亮度低成本LED數(shù)碼管驅(qū)動(dòng)電路的設(shè)計(jì)
    發(fā)表于 01-24 16:54 ?21次下載

    數(shù)碼管的用途

    本文首先介紹了數(shù)碼管的分類,其次介紹了數(shù)碼管的驅(qū)動(dòng)方式,最后介紹了數(shù)碼管的用途及應(yīng)用范圍。
    的頭像 發(fā)表于 08-21 18:46 ?1.5w次閱讀

    led數(shù)碼管怎么接線_LED數(shù)碼管的測(cè)試

    本文主要介紹了LED數(shù)碼管的安裝接線方式及LED數(shù)碼管的測(cè)試方法。
    發(fā)表于 10-09 10:44 ?2.8w次閱讀

    51匯編(六):數(shù)碼管顯示

    文章目錄數(shù)碼管驅(qū)動(dòng)單位數(shù)碼管數(shù)碼管數(shù)碼管分為共陰數(shù)碼管和共陽數(shù)碼管。
    發(fā)表于 11-22 09:06 ?10次下載
    51匯編(六):<b class='flag-5'>數(shù)碼管</b>顯示

    靜態(tài)數(shù)碼管和動(dòng)態(tài)數(shù)碼管

    目錄一,什么是數(shù)碼管二,靜態(tài)數(shù)碼管的驅(qū)動(dòng)三,動(dòng)態(tài)數(shù)碼管四,動(dòng)態(tài)數(shù)碼管顯示編程實(shí)戰(zhàn)五,使用38譯碼器驅(qū)動(dòng)動(dòng)態(tài)數(shù)碼管一,什么是
    發(fā)表于 01-12 18:31 ?40次下載
    靜態(tài)<b class='flag-5'>數(shù)碼管</b>和動(dòng)態(tài)<b class='flag-5'>數(shù)碼管</b>