找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索

數(shù)碼管亮度自動(dòng)調(diào)節(jié),單片機(jī)控制程序上的問(wèn)題

查看數(shù): 6086 | 評(píng)論數(shù): 22 | 收藏 0
關(guān)燈 | 提示:支持鍵盤(pán)翻頁(yè)<-左 右->
    組圖打開(kāi)中,請(qǐng)稍候......
發(fā)布時(shí)間: 2019-3-14 10:49

正文摘要:

各位好,我想用單片機(jī)+光敏電阻實(shí)現(xiàn)數(shù)碼管亮度調(diào)節(jié), 目前程序位選放中斷,但要實(shí)現(xiàn)亮度自動(dòng)調(diào)節(jié),那么位選開(kāi)和關(guān)都需要加時(shí)延,這樣一來(lái)位選就不能在定時(shí)中斷中進(jìn)行了。 我已知的位選不放中斷的思路: 開(kāi)始: ...

回復(fù)

ID:140489 發(fā)表于 2019-3-25 12:32
去看看我這個(gè)帖子,有你想要的關(guān)于數(shù)碼管根據(jù)環(huán)境亮度自動(dòng)調(diào)節(jié)的程序及電路http://www.torrancerestoration.com/bbs/dpj-146620-1.html
ID:84492 發(fā)表于 2019-3-21 16:00
geyobing 發(fā)表于 2019-3-20 09:54
19樓的講的已經(jīng)很好了,關(guān)于你采集光敏電阻波動(dòng)的情況,你可以做一些小手段,舉例0-1000,分10段,理論上0- ...

非常感謝你的回復(fù)!我會(huì)試著把程序調(diào)整。
ID:490652 發(fā)表于 2019-3-20 09:54
19樓的講的已經(jīng)很好了,關(guān)于你采集光敏電阻波動(dòng)的情況,你可以做一些小手段,舉例0-1000,分10段,理論上0-100對(duì)應(yīng)1,101-200對(duì)應(yīng)2,以此類(lèi)推,但是為了不出現(xiàn)一會(huì)弱一會(huì)亮的情況,可以加些額外條件,比如現(xiàn)在屬于1段,那就必須值大于120才能跳到2段,如果現(xiàn)在屬于2段值必須小于80才能調(diào)到1段,這樣就可以避免臨界值切來(lái)切去的問(wèn)題,這個(gè)值要根據(jù)你實(shí)際的調(diào)整一下。
ID:84492 發(fā)表于 2019-3-19 21:29
hhh402 發(fā)表于 2019-3-18 22:18
用中斷是最好的選擇,延時(shí)程序要慎用,延時(shí)就是浪費(fèi)資源。4位數(shù)碼管100HZ刷新率,就是2.5ms刷新一位數(shù)碼管 ...

解決我之前的那個(gè)疑惑。很感謝你的思路,受益匪淺!
ID:491577 發(fā)表于 2019-3-18 22:18
用中斷是最好的選擇,延時(shí)程序要慎用,延時(shí)就是浪費(fèi)資源。4位數(shù)碼管100HZ刷新率,就是2.5ms刷新一位數(shù)碼管,要分10級(jí)亮度就是:使用250us的中斷,10個(gè)中斷(總共25ms)刷一位數(shù)碼管,要1級(jí)亮度就是1個(gè)中斷開(kāi),9個(gè)中斷關(guān);要2級(jí)亮度就是2個(gè)中斷開(kāi),8個(gè)中斷關(guān);以此類(lèi)推。
ID:84492 發(fā)表于 2019-3-18 21:36
geyobing 發(fā)表于 2019-3-14 13:38
固定刷新頻率,然后根據(jù)光敏電阻來(lái)調(diào)節(jié)開(kāi)的時(shí)間長(zhǎng)短,實(shí)現(xiàn)亮度變化,一般會(huì)放在中斷中去進(jìn)行切換的,主流程 ...

抱歉還是有個(gè)點(diǎn)沒(méi)想明白,固定刷新率,光敏電阻來(lái)調(diào)節(jié)開(kāi)的時(shí)間長(zhǎng)短,這兩點(diǎn)我都做了,但位選放中斷中,比如5ms就要開(kāi)一個(gè)位選,這時(shí)該位選打開(kāi)后又存在開(kāi)時(shí)間的延時(shí),要是大于5ms話(huà)豈不是影響第二個(gè)位選的顯示效果,一直不明白這點(diǎn),請(qǐng)賜教多謝了。
ID:84492 發(fā)表于 2019-3-17 22:31
本廚 發(fā)表于 2019-3-15 14:45
延時(shí)1的向上加,到0延時(shí)結(jié)束 延時(shí)2的向下減,到0延時(shí)結(jié)束

總時(shí)長(zhǎng)25ms,開(kāi)顯示時(shí)長(zhǎng)為on_time,
那么關(guān)顯示25-on_time,你的累加累減能麻煩再講下嗎?
ID:84492 發(fā)表于 2019-3-17 22:28
Y_G_G 發(fā)表于 2019-3-15 15:11
位選要中斷干嘛呢?
8個(gè)數(shù)碼管以下的,掃描顯示,一個(gè)接一個(gè)的顯示,最后ADC一次,用不也多長(zhǎng)時(shí)間的
如果你 ...

感謝解答!
我記得學(xué)動(dòng)態(tài)數(shù)碼管顯示時(shí),老師強(qiáng)調(diào)用中斷來(lái)開(kāi)位,所以之前都是這么做的,但現(xiàn)在像這樣需要延時(shí)的,就行不通了,所以很疑惑。
ID:84492 發(fā)表于 2019-3-17 22:27
多謝各位的幫助,現(xiàn)在程序能實(shí)現(xiàn)10級(jí)自動(dòng)亮度調(diào)節(jié),但發(fā)現(xiàn)adc分階用的值不好取,導(dǎo)致有時(shí)光線(xiàn)變化在某個(gè)值附近時(shí),數(shù)碼管亮度一直來(lái)回切換,看著閃動(dòng)。
我大概知道用冗余,但是比如一級(jí)亮度(100 < adc)&&(adc >150),
二級(jí)亮度( 159  < adc ) && ( adc > 200 ),此時(shí)150-159間的數(shù)值狀態(tài)我該怎么處理,如果都放else那么肯定不行的。
另外:光敏電阻的特性曲線(xiàn)網(wǎng)上也沒(méi)找到相關(guān)資料,只知道亮阻值暗阻值,比較融通。
ID:401564 發(fā)表于 2019-3-15 15:11
join22life 發(fā)表于 2019-3-15 12:28
抱歉還是有個(gè)疑問(wèn),位選不是應(yīng)該通過(guò)中斷才是最好的嗎?

位選要中斷干嘛呢?
8個(gè)數(shù)碼管以下的,掃描顯示,一個(gè)接一個(gè)的顯示,最后ADC一次,用不也多長(zhǎng)時(shí)間的
如果你覺(jué)得程序還要干點(diǎn)的別的什么的話(huà),加入到延時(shí)函數(shù)里面進(jìn)行也可以的了
ID:491456 發(fā)表于 2019-3-15 14:45
延時(shí)1的向上加,到0延時(shí)結(jié)束 延時(shí)2的向下減,到0延時(shí)結(jié)束
ID:84492 發(fā)表于 2019-3-15 12:28
Y_G_G 發(fā)表于 2019-3-14 23:41
其實(shí)沒(méi)有那么復(fù)雜的,不要用中斷
你寫(xiě)兩個(gè)延時(shí)的函數(shù),一個(gè)控制數(shù)碼管開(kāi),另一個(gè)控制數(shù)碼管關(guān)
等于是數(shù)碼亮> ...

抱歉還是有個(gè)疑問(wèn),位選不是應(yīng)該通過(guò)中斷才是最好的嗎?
ID:84492 發(fā)表于 2019-3-15 12:24
Y_G_G 發(fā)表于 2019-3-14 23:41
其實(shí)沒(méi)有那么復(fù)雜的,不要用中斷
你寫(xiě)兩個(gè)延時(shí)的函數(shù),一個(gè)控制數(shù)碼管開(kāi),另一個(gè)控制數(shù)碼管關(guān)
等于是數(shù)碼亮> ...

恩,多謝,下午準(zhǔn)備解決這個(gè)問(wèn)題
ID:491171 發(fā)表于 2019-3-15 06:40
join22life 發(fā)表于 2019-3-14 15:43
我現(xiàn)在寫(xiě)了一個(gè)光敏電阻不同值對(duì)應(yīng)開(kāi)位選的時(shí)長(zhǎng)的函數(shù),放主循環(huán)中;
另一個(gè)開(kāi)各個(gè)位選函數(shù),放主循環(huán)中 ...

思路很好,可以試一試!不行了再換種方式,作品就是在不斷的調(diào)試中成長(zhǎng)的

評(píng)分

參與人數(shù) 5黑幣 +42 收起 理由
Sawardeakar + 8 很給力!
areyouok + 10
春風(fēng)十里吹 + 10
微小苛 + 10 贊一個(gè)!
zhengchong60 + 4 贊一個(gè)!

查看全部評(píng)分

ID:401564 發(fā)表于 2019-3-14 23:41
其實(shí)沒(méi)有那么復(fù)雜的,不要用中斷
你寫(xiě)兩個(gè)延時(shí)的函數(shù),一個(gè)控制數(shù)碼管開(kāi),另一個(gè)控制數(shù)碼管關(guān)
等于是數(shù)碼亮>延時(shí)1>數(shù)碼管滅>延時(shí)2>顯示下一個(gè)數(shù)碼管
把光敏電阻ADC的值用來(lái)作為延時(shí)的時(shí)間,
延時(shí)1的向上加,到0延時(shí)結(jié)束
延時(shí)2的向下減,到0延時(shí)結(jié)束
這樣一來(lái),總的延時(shí)時(shí)長(zhǎng)就是恒定不變的了,不會(huì)因?yàn)楣饷綦娮璧淖兓兓?/td>
ID:84492 發(fā)表于 2019-3-14 22:22
wulin 發(fā)表于 2019-3-14 15:37
調(diào)節(jié)數(shù)碼管亮度其實(shí)就是調(diào)節(jié)數(shù)碼管導(dǎo)通和截止時(shí)間比例,具體方案還要看數(shù)碼管的驅(qū)動(dòng)方式。比較傾向于采用 ...

看來(lái)我把亮度調(diào)節(jié)想的簡(jiǎn)單化了
ID:84492 發(fā)表于 2019-3-14 22:21
zhb2004xp 發(fā)表于 2019-3-14 16:09
多位數(shù)碼管的顯示本身就是利用人眼的視覺(jué)錯(cuò)覺(jué)造成的,如果要增加視覺(jué)上亮度強(qiáng)度的感覺(jué),理論上是要增加閃爍 ...

這個(gè)像你說(shuō)的,我現(xiàn)在就是出現(xiàn)數(shù)字顯示不清有全8現(xiàn)象了
ID:234075 發(fā)表于 2019-3-14 16:09
多位數(shù)碼管的顯示本身就是利用人眼的視覺(jué)錯(cuò)覺(jué)造成的,如果要增加視覺(jué)上亮度強(qiáng)度的感覺(jué),理論上是要增加閃爍的頻率,但是如果顯示內(nèi)容同樣變化頻率較快的話(huà),會(huì)造成全部顯示8的視覺(jué)錯(cuò)覺(jué)。
ID:84492 發(fā)表于 2019-3-14 15:43
geyobing 發(fā)表于 2019-3-14 13:38
固定刷新頻率,然后根據(jù)光敏電阻來(lái)調(diào)節(jié)開(kāi)的時(shí)間長(zhǎng)短,實(shí)現(xiàn)亮度變化,一般會(huì)放在中斷中去進(jìn)行切換的,主流程 ...

我現(xiàn)在寫(xiě)了一個(gè)光敏電阻不同值對(duì)應(yīng)開(kāi)位選的時(shí)長(zhǎng)的函數(shù),放主循環(huán)中;
另一個(gè)開(kāi)各個(gè)位選函數(shù),放主循環(huán)中,通過(guò)中斷每5ms開(kāi)位,這個(gè)思路是正確的吧?
ID:213173 發(fā)表于 2019-3-14 15:37
join22life 發(fā)表于 2019-3-14 14:00
就像圖中那樣,每5ms中斷一次用于開(kāi)位選,但是一個(gè)數(shù)碼管顯示時(shí)間將近6ms,等到第二個(gè)中斷來(lái)時(shí)進(jìn)入第二個(gè)數(shù) ...

調(diào)節(jié)數(shù)碼管亮度其實(shí)就是調(diào)節(jié)數(shù)碼管導(dǎo)通和截止時(shí)間比例,具體方案還要看數(shù)碼管的驅(qū)動(dòng)方式。比較傾向于采用PWM方式給位選供電。數(shù)碼管靜態(tài)顯示控制亮度簡(jiǎn)單些,數(shù)碼管動(dòng)態(tài)顯示控制亮度比較麻煩。
ID:84492 發(fā)表于 2019-3-14 14:00
就像圖中那樣,每5ms中斷一次用于開(kāi)位選,但是一個(gè)數(shù)碼管顯示時(shí)間將近6ms,等到第二個(gè)中斷來(lái)時(shí)進(jìn)入第二個(gè)數(shù)碼管顯示,以此類(lèi)推,使用沒(méi)有顯示數(shù)碼管顯示沒(méi)有完畢被中斷,這樣對(duì)程序有什么影響嗎?
ID:490652 發(fā)表于 2019-3-14 13:38
固定刷新頻率,然后根據(jù)光敏電阻來(lái)調(diào)節(jié)開(kāi)的時(shí)間長(zhǎng)短,實(shí)現(xiàn)亮度變化,一般會(huì)放在中斷中去進(jìn)行切換的,主流程肯定有別的事要做的

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表