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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

使用單片機PWM調(diào)制呼吸燈的時候,低亮度時會發(fā)生抖動,怎么處理

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

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

使用道具 舉報

沙發(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]
復制代碼

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

使用道具 舉報

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

使用道具 舉報

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

PWM周期大于20ms就會閃爍。
回復

使用道具 舉報

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

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

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

使用道具 舉報

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

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

使用道具 舉報

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++;                                                                //這個是用來增加精度的
  11.                 if(PWM_COUNT >= 2)                                                                //2是擴展了1位的精度,和下面的右移一位對應
  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;        //必須和擴展位數(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. }
復制代碼
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人在线一区二区 | 色小姐综合网 | 国产羞羞视频在线观看 | 国产视频第一页 | h在线免费观看 | 三级黄色片在线 | 秋霞av国产精品一区 | 在线免费观看成人 | 欧美xxxx做受欧美 | 欧美精品黄 | 91视频精选 | 99亚洲 | 操网站| 91精品久久| 欧美在线视频网 | 超碰男人天堂 | 一级a性色生活片久久毛片 一级特黄a大片 | 成人av看片| 中文字幕亚洲区一区二 | 欧洲精品码一区二区三区免费看 | 久久免费视频网 | 欧美日韩三级 | 亚洲欧美日本在线 | 国产日韩欧美91 | 精品视频一区二区三区在线观看 | 欧美亚洲视频在线观看 | 日本一区二区电影 | 亚洲一区国产精品 | 亚洲精品一区二区三区在线 | 日本三级日产三级国产三级 | 天天干视频网 | 久久久欧洲| 国产伦精品一区二区三区精品视频 | 天天精品在线 | 天天色影视综合 | 在线视频h | 懂色av一区二区三区在线播放 | 国产黄色大片网站 | 亚洲成人一区二区在线 | 天天看天天爽 | 蜜桃综合在线 |