久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

只需一步,快速開始

搜索
查看: 7794|回復(fù): 21
打印 上一主題 下一主題
收起左側(cè)

使用單片機(jī)PWM調(diào)制呼吸燈的時(shí)候,低亮度時(shí)會(huì)發(fā)生抖動(dòng),怎么處理

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:586048 發(fā)表于 2020-8-18 15:04 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
如題,請(qǐng)問一下各位大佬,在呼吸燈慢慢亮起來的時(shí)候,在低亮度區(qū),會(huì)發(fā)生抖動(dòng),有沒有辦法不降低頻率且不增加硬件的情況下解決這個(gè)問題?

有人說可以提高PWM的精度,但是我看不懂,有沒有大佬能解答一下的?
或者說大佬們有更好的解決方法?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:586048 發(fā)表于 2020-8-18 15:15 | 只看該作者
  1. U16 PWMD;//PWM占空比
  2. U8   PWMD_H;//占空比整數(shù)
  3. U8   PWMD_L;//占空比余數(shù)
  4. U8   PWM_COUNT;//PWM脈沖數(shù)
  5. void isr(void) interrupt//PWM中斷
  6. {
  7. u8 i;
  8.     if(T8P1IF)
  9.     {
  10.         T8P1IF=0;
  11.         if(++PWM_COUNT>15)
  12.         {
  13.             PWM_COUNT=0;
  14.             PWMD_H= PWMD/16;//求PWM的整數(shù)
  15.             PWMD_L=PWMD%16;//求PWM的余數(shù)
  16.         }
  17.         i= PWMD_H;
  18.         if( PWMD_L>0)
  19.         {
  20.             i+=1;
  21.             PWMD_L-=1;
  22.         }     
  23.          T8P1RL=i;//每次更新占空比
  24.     }

  25. }[b][/b]
復(fù)制代碼

看不懂是什么意思,硬件是8位的,他擴(kuò)展到12位,但是硬件沒有的分了,多出來的4位 硬件8位不支持,那他多出來的4位怎么會(huì)提高他的精度呢
回復(fù)

使用道具 舉報(bào)

板凳
ID:809311 發(fā)表于 2020-8-18 15:58 | 只看該作者
都是這樣子的。pwm波總會(huì)有抖動(dòng)的。程序也不好解決。
回復(fù)

使用道具 舉報(bào)

地板
ID:213173 發(fā)表于 2020-8-18 16:51 | 只看該作者
hzw854025403 發(fā)表于 2020-8-18 15:15
看不懂是什么意思,硬件是8位的,他擴(kuò)展到12位,但是硬件沒有的分了,多出來的4位 硬件8位不支持,那他多 ...

PWM周期大于20ms就會(huì)閃爍。
回復(fù)

使用道具 舉報(bào)

5#
ID:586048 發(fā)表于 2020-8-18 18:48 | 只看該作者
wulin 發(fā)表于 2020-8-18 16:51
PWM周期大于20ms就會(huì)閃爍。

不是常亮的時(shí)候閃爍,是呼吸的時(shí)候會(huì)有一點(diǎn)抖動(dòng),從暗到亮的時(shí)候抖動(dòng),我現(xiàn)在的頻率是22K,1000的精度,如果是4千的精度就不會(huì)出現(xiàn)抖動(dòng),但是頻率就下降了。
回復(fù)

使用道具 舉報(bào)

6#
ID:401564 發(fā)表于 2020-8-19 08:37 | 只看該作者
1KHZ以上的PWM頻率,LED燈就不會(huì)抖動(dòng)了,不管是大功率的LED手電還是LED指示燈,都不會(huì)抖動(dòng),我們這的手電筒統(tǒng)一用的就是1024HZ的PWM頻率
你的抖動(dòng),要么是程序的問題,要么是電路的問題
C語言我不會(huì),你的程序是不是調(diào)節(jié)的時(shí)候只調(diào)節(jié)PWMD_L,而PWMD_H沒有調(diào)節(jié)?
正常的是:高電平時(shí)間加1,低電平時(shí)間就減1,保持PWM頻率不變
回復(fù)

使用道具 舉報(bào)

7#
ID:235954 發(fā)表于 2020-8-19 11:10 | 只看該作者
抖動(dòng),剛啟動(dòng)的時(shí)候是有一些
回復(fù)

使用道具 舉報(bào)

8#
ID:800832 發(fā)表于 2020-8-19 11:40 | 只看該作者
掃描平率問題吧。
回復(fù)

使用道具 舉報(bào)

9#
ID:89515 發(fā)表于 2020-8-23 21:31 | 只看該作者
頻率太低,精度不夠,就會(huì)出現(xiàn)這樣的情況,硬件PWM位數(shù)不夠,就模擬PWM,但是會(huì)占用資源。這個(gè)沒有更好的方法,要么就更換芯片。
回復(fù)

使用道具 舉報(bào)

10#
ID:748646 發(fā)表于 2020-8-23 22:03 來自觸屏版 | 只看該作者
最好的辦法串聯(lián)電感或并聯(lián)電容
回復(fù)

使用道具 舉報(bào)

11#
ID:739727 發(fā)表于 2020-8-23 22:51 | 只看該作者
換stm32 ,使用高級(jí)定時(shí)器
回復(fù)

使用道具 舉報(bào)

12#
ID:586048 發(fā)表于 2020-8-27 20:45 | 只看該作者
mengzhixinheng 發(fā)表于 2020-8-23 21:31
頻率太低,精度不夠,就會(huì)出現(xiàn)這樣的情況,硬件PWM位數(shù)不夠,就模擬PWM,但是會(huì)占用資源。這個(gè)沒有更好的方 ...

現(xiàn)在用軟件模擬增加了精度
回復(fù)

使用道具 舉報(bào)

13#
ID:586048 發(fā)表于 2020-8-27 20:46 | 只看該作者
Y_G_G 發(fā)表于 2020-8-19 08:37
1KHZ以上的PWM頻率,LED燈就不會(huì)抖動(dòng)了,不管是大功率的LED手電還是LED指示燈,都不會(huì)抖動(dòng),我們這的手電筒統(tǒng)一 ...

這個(gè)抖動(dòng)是精度不夠引起的,和芯片也有點(diǎn)關(guān)系,現(xiàn)在用軟件的方法增加了精度
回復(fù)

使用道具 舉報(bào)

14#
ID:586048 發(fā)表于 2020-8-27 20:50 | 只看該作者
謝謝各位,現(xiàn)在解決了,這是我增加了一位的精度
  1. void PWM_CH5_LED_huxi(unsigned int PWM5_huxi2_c)
  2. {
  3.         if(LED_Low_P_huxi_f == 0)
  4.         {
  5.                 PWMD_HuXi = PWM5_huxi2_c*Light_first_gear<<1;
  6.                 TK_Debug_UartPutChar('B');
  7.         }
  8.         if(LED_PWM5_F == 0)
  9.         {                                               
  10.                 PWM_COUNT++;                                                                //這個(gè)是用來增加精度的
  11.                 if(PWM_COUNT >= 2)                                                                //2是擴(kuò)展了1位的精度,和下面的右移一位對(duì)應(yīng)
  12.         {
  13.             PWM_COUNT = 0;
  14.             PWMD_HuXi   = PWMD_HuXi - PWM5_huxi2_c;
  15.             TK_Debug_UartPutChar('L');
  16.         }
  17.         LED_light_Hz_c = (PWMD_HuXi + PWM_COUNT)>>1;        //必須和擴(kuò)展位數(shù)保持一直                
  18.         
  19.                 if(LED_light_Hz_c <= PWM5_huxi2_c)
  20.                 {       
  21.                         LED_PWM5_F = 1;                                                                //呼吸到最亮調(diào)到下面
  22.                         PWMD_HuXi = 0;
  23.                         TK_Debug_UartPutChar('L');
  24.                 }
  25.         }
  26.         else
  27.         {
  28.                 PWM_COUNT++;
  29.                 if(PWM_COUNT >= 2)
  30.         {
  31.             PWM_COUNT = 0;
  32.             PWMD_HuXi   = PWMD_HuXi + PWM5_huxi2_c;
  33.             TK_Debug_UartPutChar('H');
  34.         }
  35.         LED_light_Hz_c = (PWMD_HuXi + PWM_COUNT)>>1;
  36.                 if(LED_light_Hz_c >= LED_light_gear*Light_first_gear)
  37.                 {
  38.                         LED_PWM5_F = 0;
  39.                         Huxi_end_f = 1;
  40.                 }
  41.         }

  42. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

15#
ID:815969 發(fā)表于 2020-8-27 22:50 | 只看該作者
抖動(dòng)是無法避免的,在程序中增加一個(gè)延時(shí)多少毫秒的指令就可以了,即
回復(fù)

使用道具 舉報(bào)

16#
ID:815969 發(fā)表于 2020-8-27 22:52 | 只看該作者
抖動(dòng)是無法避免的,在i模塊的最后加一個(gè)延時(shí)多少毫秒/秒/微秒就可以了
回復(fù)

使用道具 舉報(bào)

17#
ID:420836 發(fā)表于 2020-8-29 07:53 | 只看該作者
感謝樓主,這確實(shí)很有幫助。 我將使用這方法來解決我的問題。
回復(fù)

使用道具 舉報(bào)

18#
ID:382454 發(fā)表于 2020-8-29 22:22 來自觸屏版 | 只看該作者
頻率快點(diǎn)就不抖了,很簡單。
回復(fù)

使用道具 舉報(bào)

19#
ID:808485 發(fā)表于 2020-8-31 14:56 | 只看該作者
亮度高的時(shí)候,人眼的視覺暫留效果強(qiáng),所以感覺不到閃爍,強(qiáng)光手電來一下,眼前能亮半分鐘:)。
所以無論怎樣,同樣軟硬件的條件下,暗的肯定比亮的閃爍厲害。

不過樓主也可能說的不是閃爍,而是說亮度升降時(shí)出現(xiàn)梯度,不平滑,沒實(shí)現(xiàn)無級(jí)調(diào)光,那這是分辨率低造成的。
回復(fù)

使用道具 舉報(bào)

20#
ID:619259 發(fā)表于 2024-11-21 08:10 | 只看該作者
占空比保持,增加頻率
回復(fù)

使用道具 舉報(bào)

21#
ID:382454 發(fā)表于 2024-11-28 16:06 | 只看該作者
看看我寫的吧,在實(shí)用中的代碼。http://www.zg4o1577.cn/bbs/dpj-172214-1.html
回復(fù)

使用道具 舉報(bào)

22#
ID:382454 發(fā)表于 2024-11-28 16:06 | 只看該作者
看看我寫的吧,實(shí)用中的代碼。
http://www.zg4o1577.cn/bbs/dpj-172214-1.html
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲成人自拍 | 欧美一区二区二区 | 中文字幕 在线观看 | 爱综合| 免费观看的黄色网址 | 成人免费视频一区 | 久久99精品久久久久久秒播九色 | 九九色综合 | 国产免费一区二区 | 一级毛片视频免费观看 | 福利电影在线 | 爱爱免费视频网站 | 波多野结衣av中文字幕 | 成人久久久 | 国产精品91视频 | 欧美video| 国产精品99免费视频 | 国产日韩欧美在线观看 | 日韩亚洲欧美综合 | 欧美一级电影免费 | www.日日夜夜 | 亚洲精品久久视频 | 最近中文字幕第一页 | 日韩精品视频在线播放 | 色爱综合网 | 国产成人精品一区二区三 | 午夜欧美一区二区三区在线播放 | 成人三区四区 | 亚洲福利在线视频 | 亚洲视频免费在线看 | 91一区二区三区 | 国内精品免费久久久久软件老师 | 韩日视频在线观看 | 久久这里只有精品首页 | 日韩中文一区二区三区 | 国产 日韩 欧美 在线 | 日韩欧美综合 | 免费激情网站 | 99色视频| 在线观看免费av网 | 99久久婷婷国产综合精品电影 |