找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

一串LED燈怎么做出流星劃過的效果?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1114797 發(fā)表于 2024-3-30 17:38 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
向各位大佬們求助:
有沒有什么思路可以實(shí)現(xiàn)一串LED燈的流星劃過的效果?
就一個LED來說,首先要實(shí)現(xiàn)從亮到暗,也就是呼吸燈的效果,一連串呼吸燈依次點(diǎn)亮再依次變暗,就可以實(shí)現(xiàn)流星燈,但軟硬件上如何實(shí)現(xiàn)呢?求教。

51hei.jpg (23.51 KB, 下載次數(shù): 76)

51hei.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:883242 發(fā)表于 2024-3-30 22:50 | 只看該作者
一個一個的點(diǎn)亮,從頭到尾,至于流星尾巴的效果交給眼睛的延遲處理吧。
回復(fù)

使用道具 舉報

板凳
ID:401564 發(fā)表于 2024-3-30 23:17 | 只看該作者
流水燈,第一個100%亮度,第二個90%亮度,第三個80%亮度.........以此類推
所以,就不能直接用左移或者右移來流水了
你可以網(wǎng)上找一下流星代碼,參考一下就知道了
回復(fù)

使用道具 舉報

地板
ID:213173 發(fā)表于 2024-3-31 09:02 | 只看該作者
硬件上與流水燈沒有不同,軟件上就是PWM調(diào)光。
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. sbit D0 = P1^0;   
  6. sbit D1 = P1^1;
  7. sbit D2 = P1^2;
  8. sbit D3 = P1^3;
  9. sbit D4 = P1^4;
  10. sbit D5 = P1^5;
  11. sbit D6 = P1^6;
  12. sbit D7 = P1^7;

  13. uchar PWM0 = 15;
  14. uchar PWM1 = 17;     
  15. uchar PWM2 = 19;
  16. uchar PWM3 = 21;
  17. uchar PWM4 = 23;     
  18. uchar PWM5 = 25;
  19. uchar PWM6 = 27;     
  20. uchar PWM7 = 29;
  21. uchar count=0;  
  22. uchar num=0;   

  23. void main()
  24. {
  25.         TMOD=0x01;
  26.         TH0=(65536-500)/256;      
  27.         TL0=(65536-500)%256;
  28.         EA=1;
  29.         ET0=1;
  30.         TR0=1;
  31.         while(1)
  32.         {         
  33.                 if(num==50)
  34.                 {
  35.                         num=0;
  36.                         PWM7++;PWM6++;PWM5++;PWM4++;
  37.                         PWM3++;PWM2++;PWM1++;PWM0++;
  38.                         if(PWM7==30) PWM7=0;
  39.                         if(PWM6==30) PWM6=0;
  40.                         if(PWM5==30) PWM5=0;
  41.                         if(PWM4==30) PWM4=0;
  42.                         if(PWM3==30) PWM3=0;
  43.                         if(PWM2==30) PWM2=0;
  44.                         if(PWM1==30) PWM1=0;
  45.                         if(PWM0==30) PWM0=0;
  46.                 }
  47.         }
  48. }
  49. void Timer0(void) interrupt 1
  50. {                           
  51.         TH0=(65536-500)/256;   
  52.         TL0=(65536-500)%256;
  53.         count++;
  54.         num++;
  55.         if(count >= 15) count = 0;   
  56.         if(count >= PWM7) D0 = 0; else D0 = 1;
  57.         if(count >= PWM6) D1 = 0; else D1 = 1;
  58.         if(count >= PWM5) D2 = 0; else D2 = 1;
  59.         if(count >= PWM4) D3 = 0; else D3 = 1;
  60.         if(count >= PWM3) D4 = 0; else D4 = 1;
  61.         if(count >= PWM2) D5 = 0; else D5 = 1;
  62.         if(count >= PWM1) D6 = 0; else D6 = 1;
  63.         if(count >= PWM0) D7 = 0; else D7 = 1;  
  64. }
復(fù)制代碼
回復(fù)

使用道具 舉報

5#
ID:136013 發(fā)表于 2024-3-31 10:38 | 只看該作者
幻彩燈帶(WS2812等)你值得擁有。
回復(fù)

使用道具 舉報

6#
ID:1110477 發(fā)表于 2025-4-1 04:53 | 只看該作者
還見過特別炫酷的像紛紛落雪的暖色燈
回復(fù)

使用道具 舉報

7#
ID:1034262 發(fā)表于 2025-4-1 16:42 | 只看該作者
要用WS2812燈帶實(shí)現(xiàn)。
回復(fù)

使用道具 舉報

8#
ID:230500 發(fā)表于 2025-4-1 20:00 | 只看該作者
樓山的回答都沒錯; 但是要最炫酷的效果還是用WS2812燈珠比較合適; 因為可以達(dá)到各種顏色的變幻;做出各種炫酷的效果
回復(fù)

使用道具 舉報

9#
ID:108361 發(fā)表于 2025-4-16 17:48 | 只看該作者
自己用PWM做管理起來很麻煩,并且一般MCU也沒那么多PWM口,還是用smart led 比如2812那種比較方便
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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