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

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

QQ登錄

只需一步,快速開始

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

WS2812BLED彩燈用STC15W204S-8單片機(jī)驅(qū)動(dòng)流水燈源碼

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:63317 發(fā)表于 2022-7-24 06:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
WS2812BLED4X4 16位彩燈用STC15W204S-8驅(qū)動(dòng)流水燈源碼
高手幫忙怎樣改成4排同時(shí)都向左或向右逐個(gè)點(diǎn)亮
想做成轉(zhuǎn)向燈3.3口控制右轉(zhuǎn)黃色  3.2口控制左轉(zhuǎn)黃色   5.4口控制全亮紅色
制作出來的實(shí)物圖如下:


Keil代碼下載: 帶單片機(jī)8位全彩流水燈源碼.rar (66.49 KB, 下載次數(shù): 179)

評(píng)分

參與人數(shù) 2黑幣 +62 收起 理由
catlu + 12
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:336378 發(fā)表于 2022-7-25 10:38 | 只看該作者
不會(huì)自已改下嗎??。
回復(fù)

使用道具 舉報(bào)

板凳
ID:88256 發(fā)表于 2022-7-26 00:51 | 只看該作者
你確定你的這個(gè)程序是可以點(diǎn)亮2812的嗎?里面用到的DI、SNUM等都沒進(jìn)行定義,我才不相信編譯可以通過。
如果連點(diǎn)亮都做不到,那么談何花樣顯示?
等點(diǎn)亮后,學(xué)會(huì)在指定的一個(gè)2812上顯示各種顏色,那么,剩下的花樣編程就簡(jiǎn)單了不是嗎?先腳踏實(shí)地一步步來吧,別想著一步登天。
回復(fù)

使用道具 舉報(bào)

地板
ID:88256 發(fā)表于 2022-7-26 01:22 | 只看該作者
不好意思!沒注意到有附件,只看到貼出來的程序感覺不對(duì)。不過,貼出來的程序和附件的程序是不一樣的,你這也是誤導(dǎo)人啊。
回復(fù)

使用道具 舉報(bào)

5#
ID:63317 發(fā)表于 2022-7-26 06:31 | 只看該作者
cba_cba 發(fā)表于 2022-7-25 10:38
不會(huì)自已改下嗎??。

呵呵沒玩明白啊
回復(fù)

使用道具 舉報(bào)

6#
ID:63317 發(fā)表于 2022-7-26 06:33 | 只看該作者
hhdsdy 發(fā)表于 2022-7-26 00:51
你確定你的這個(gè)程序是可以點(diǎn)亮2812的嗎?里面用到的DI、SNUM等都沒進(jìn)行定義,我才不相信編譯可以通過。
如 ...

能編譯的老師
回復(fù)

使用道具 舉報(bào)

7#
ID:88256 發(fā)表于 2022-7-26 21:51 | 只看該作者

看你玩單片機(jī)的時(shí)間也不短了,也不能完全照抄一點(diǎn)都不(會(huì))改吧?貼出來的程序和附件的程序不同,燈數(shù)也不正確,明顯是復(fù)制別人的,我搜索了一下,發(fā)現(xiàn)和本壇這帖是一模一樣的,你好歹也得把下面的燈的數(shù)量改一下吧,還有花樣數(shù)組的數(shù)量一起補(bǔ)上去,先完全點(diǎn)亮燈珠再進(jìn)行下一步。
/*----------------------------燈珠串聯(lián)個(gè)數(shù)設(shè)置--------------------------------*/  
#define SNUM 8

另外,得先確定燈珠在板上的排列順序,這個(gè)程序是流水燈,在上電后就可以看到了(太快的話增加主程序56行上的延時(shí)),然后改主程序,讓最右邊的一列顯示黃色(數(shù)組備注得很清楚),慢慢增改程序達(dá)到自己的要求。

評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
WFX777888 + 5 但排流水燈能改四排同時(shí)向右流水就不會(huì)了

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

8#
ID:99525 發(fā)表于 2022-7-26 23:41 | 只看該作者
以我的實(shí)踐經(jīng)驗(yàn),2812.c中的發(fā)送1和0的時(shí)序肯定是錯(cuò)的!
T0H 0 code ,high voltage time 0.35us ±150ns
T1H 1 code ,high voltage time 0.7us ±150ns
T0L 0 code , low voltage time 0.8us ±150ns
T1L 1 code ,low voltage time 0.6us ±150ns
RES low voltage time Above 50μs
回復(fù)

使用道具 舉報(bào)

9#
ID:63317 發(fā)表于 2022-7-27 05:33 | 只看該作者
hhdsdy 發(fā)表于 2022-7-26 21:51
看你玩單片機(jī)的時(shí)間也不短了,也不能完全照抄一點(diǎn)都不(會(huì))改吧?貼出來的程序和附件的程序不同,燈數(shù)也 ...

我在某一個(gè)寶買的4X4LED給我?guī)У脑创a想做個(gè)山地車轉(zhuǎn)向燈但是沒改明白呵呵
回復(fù)

使用道具 舉報(bào)

10#
ID:88256 發(fā)表于 2022-7-27 14:23 | 只看該作者
問了兩次,都不見你回答是否點(diǎn)亮,連程序里的燈數(shù)也沒改,很懷疑你根本就沒完全點(diǎn)亮過,難道是指望壇友們給你改好一個(gè)完整的程序?這不是學(xué)習(xí)單片機(jī)的方法啊,主程序那么簡(jiǎn)單,你的要求也不復(fù)雜,自己琢磨著改一下也不難啊。

評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
WFX777888 + 5 沒看見看見能不回復(fù)嗎單個(gè)流水燈好使我想要.

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

11#
ID:63317 發(fā)表于 2022-7-27 17:38 | 只看該作者
hhdsdy 發(fā)表于 2022-7-27 14:23
問了兩次,都不見你回答是否點(diǎn)亮,連程序里的燈數(shù)也沒改,很懷疑你根本就沒完全點(diǎn)亮過,難道是指望壇友們給 ...

我想要成排的流水效果謝謝
回復(fù)

使用道具 舉報(bào)

12#
ID:88256 發(fā)表于 2022-7-27 21:51 | 只看該作者
是我倆不在一個(gè)頻道上嗎?你16個(gè)2812全部亮了嗎?能不能全部亮黃色?搞清楚最右邊的一列從上到下的序號(hào)是多少了嗎?能不能單獨(dú)點(diǎn)亮最右邊的一列?什么情況都不知道,一抹黑的誰知道你是哪里不行了
回復(fù)

使用道具 舉報(bào)

13#
ID:88256 發(fā)表于 2022-7-27 22:18 | 只看該作者
完整程序是不可能給你的,論壇也禁止這樣的做法,所以得靠你自己慢慢堆砌,何況這個(gè)也是簡(jiǎn)單的程序。
回復(fù)

使用道具 舉報(bào)

14#
ID:824490 發(fā)表于 2022-7-28 16:22 | 只看該作者
單片機(jī)之路,從點(diǎn)一個(gè)燈開始!你能點(diǎn)亮一個(gè)WS2812B了嗎?
回復(fù)

使用道具 舉報(bào)

15#
ID:63317 發(fā)表于 2022-7-28 17:33 | 只看該作者
名字不是重點(diǎn) 發(fā)表于 2022-7-28 16:22
單片機(jī)之路,從點(diǎn)一個(gè)燈開始!你能點(diǎn)亮一個(gè)WS2812B了嗎?

四排點(diǎn)亮了但是不同時(shí)享有流動(dòng)有快有慢
  1.                for(i=0;i<4;i++)               
  2.                 {
  3.                         s[i][0]=5;                        //修改數(shù)組中的數(shù)據(jù)
  4.                         s[i][1]=50;
  5.                         s[i][2]=5;


  6.                         SendOneFrame(s);        //顯示數(shù)組中的數(shù)據(jù)
  7.                         Delay100Ms(1);

  8.                         s[i][0]=50;
  9.                         s[i][1]=5;
  10.                         s[i][2]=5;

  11.                 }
  12.                           for(i=8;i>3;i--)               
  13.                 {
  14.                         s[i][0]=5;                        //修改數(shù)組中的數(shù)據(jù)
  15.                         s[i][1]=50;
  16.                         s[i][2]=5;


  17.                         SendOneFrame(s);        //顯示數(shù)組中的數(shù)據(jù)
  18.                         Delay100Ms(1);

  19.                         s[i][0]=50;
  20.                         s[i][1]=5;
  21.                         s[i][2]=5;

  22.                 }
  23.                           for(i=5;i<12;i++)               
  24.                 {
  25.                         s[i][0]=5;                        //修改數(shù)組中的數(shù)據(jù)
  26.                         s[i][1]=50;
  27.                         s[i][2]=5;


  28.                         SendOneFrame(s);        //顯示數(shù)組中的數(shù)據(jù)
  29.                         Delay100Ms(1);

  30.                         s[i][0]=50;
  31.                         s[i][1]=5;
  32.                         s[i][2]=5;

  33.                 }
  34.                         for(i=16;i>11;i--)               
  35.                 {
  36.                         s[i][0]=5;                        //修改數(shù)組中的數(shù)據(jù)
  37.                         s[i][1]=50;
  38.                         s[i][2]=5;


  39.                         SendOneFrame(s);        //顯示數(shù)組中的數(shù)據(jù)
  40.                         Delay100Ms(1);

  41.                         s[i][0]=50;
  42.                         s[i][1]=5;
  43.                         s[i][2]=5;

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

使用道具 舉報(bào)

16#
ID:88256 發(fā)表于 2022-7-29 10:09 | 只看該作者
WFX777888 發(fā)表于 2022-7-28 17:33
四排點(diǎn)亮了但是不同時(shí)享有流動(dòng)有快有慢

這個(gè)點(diǎn)亮的是紅色而不是黃色的吧?
你的點(diǎn)亮順序是:
1:   0、1、2、3
2:   8、7、6、5、4
3:   5、6、7、8、9、10、11
4:   16、15、14、13、12


我不知道你板上的燈珠是怎么排列的,但明顯點(diǎn)亮的燈數(shù)就不對(duì)了,這怎么會(huì)正常?

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

17#
ID:824490 發(fā)表于 2022-7-29 11:50 | 只看該作者
WFX777888 發(fā)表于 2022-7-28 17:33
四排點(diǎn)亮了但是不同時(shí)享有流動(dòng)有快有慢

建議你用結(jié)構(gòu)體的方式來操作,應(yīng)該比你這方式清爽多了。
  1. #define led_num 24                   //彩燈點(diǎn)數(shù)

  2. struct p_color   //定義彩燈點(diǎn)的色值結(jié)構(gòu)體,方便后期操作
  3. {
  4.   u8 ur;
  5.   u8 ug;
  6.   u8 ub;
  7. };
  8. struct p_color led_tabel[led_num] ;//彩燈色值結(jié)構(gòu)體數(shù)組
  9. struct p_color temp_color;         //臨時(shí)色值結(jié)構(gòu)體


  10. //*************************

  11. //main:

  12.         for (i=0;i<led_num*3;i++) //初始化色值
  13.          {
  14.            led_tabel[i].ur=i*3;
  15.            led_tabel[i].ug=0;
  16.            led_tabel[i].ub=0;
  17.          }

  18.     p=led_tabel;  //設(shè)定指針,指向數(shù)組

  19.     while (1)
  20.     {
  21.     ws2812b_sendall(p,72);

  22.          if(!(++i%5))
  23.           {
  24.                   //彩燈色值數(shù)組環(huán)移
  25.             temp_color=led_tabel[0] ; //暫存(點(diǎn)0)的色值
  26.                   for(j=0;j<led_num-1;j++) led_tabel[j]=led_tabel[j+1];// 所有點(diǎn)的色值COPY后一個(gè)點(diǎn)
  27.                   led_tabel[led_num-1]=temp_color;// 最后一個(gè)點(diǎn)的色值改為暫存(點(diǎn)0)的色值
  28.            }
  29.   }
復(fù)制代碼
ws2812.rar (1.17 MB, 下載次數(shù): 45) 視頻效要下載后改后綴為.MP4

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

18#
ID:88256 發(fā)表于 2022-7-29 12:50 | 只看該作者
名字不是重點(diǎn) 發(fā)表于 2022-7-29 11:50
建議你用結(jié)構(gòu)體的方式來操作,應(yīng)該比你這方式清爽多了。
#define led_num 24                   //彩燈點(diǎn)數(shù)

他連 i=16 都出來了,你還讓他直接上結(jié)構(gòu)體,不是整更懵嗎?
回復(fù)

使用道具 舉報(bào)

19#
ID:622100 發(fā)表于 2022-8-2 09:10 | 只看該作者
hhdsdy 發(fā)表于 2022-7-29 12:50
他連 i=16 都出來了,你還讓他直接上結(jié)構(gòu)體,不是整更懵嗎?

那這樣2812對(duì)他也太難了,上3528的了,這個(gè)點(diǎn)亮很簡(jiǎn)單,比較適合新手,別給他搞太難,放棄就不好了

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

20#
ID:63317 發(fā)表于 2022-8-2 17:41 | 只看該作者
吾心悅?cè)?發(fā)表于 2022-8-2 09:10
那這樣2812對(duì)他也太難了,上3528的了,這個(gè)點(diǎn)亮很簡(jiǎn)單,比較適合新手,別給他搞太難,放棄就不好了

呵呵就是玩不明白怎樣才能四排同時(shí)流水點(diǎn)亮


現(xiàn)在能實(shí)現(xiàn)四排流水點(diǎn)亮但是他不同時(shí)流水點(diǎn)亮就是一排走完2排亮 2排走完3排亮
回復(fù)

使用道具 舉報(bào)

21#
ID:88256 發(fā)表于 2022-8-2 20:34 | 只看該作者
WFX777888 發(fā)表于 2022-8-2 17:41
呵呵就是玩不明白怎樣才能四排同時(shí)流水點(diǎn)亮

想得到幫助就得把你改的程序貼出來,空口白牙的不好猜
回復(fù)

使用道具 舉報(bào)

22#
ID:63317 發(fā)表于 2022-8-3 06:29 | 只看該作者
hhdsdy 發(fā)表于 2022-8-2 20:34
想得到幫助就得把你改的程序貼出來,空口白牙的不好猜

-------------------------------------------------------------------------------------*/

  1. #define Port P3
  2. #define GREEN 0
  3. #define RED 1
  4. #define BLUE 2

  5. /************************包含頭文件***************************************************/

  6. #include "STC15W.h"
  7. #include "ws2812.h"
  8. #include "delay.h"
  9. #include "keypad.h"

  10. /************************主程序*******************************************************/

  11. void  main()
  12. {
  13.         unsigned char i;
  14.         unsigned char s[16][3]={{50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5},
  15.         {50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5}};//定義一個(gè)二維數(shù)組,每個(gè)括號(hào)內(nèi)的三個(gè)數(shù)據(jù)對(duì)應(yīng)一個(gè)像素點(diǎn){G,R,B}

  16.         DelayMs(200);                                //上電等待延時(shí)

  17.         Port=0xff;                                        //初始化端口為高電平

  18.         while(1)
  19.         {
  20.                 for(i=0;i<4;i++)               
  21.                 {
  22.                         s[i][0]=5;                        //修改數(shù)組中的數(shù)據(jù)
  23.                         s[i][1]=50;
  24.                         s[i][2]=5;


  25.                         SendOneFrame(s);        //顯示數(shù)組中的數(shù)據(jù)
  26.                         Delay100Ms(1);

  27.                         s[i+4][0]=0;
  28.                         s[i+4][1]=0;
  29.                         s[i+4][2]=0;

  30.                 }
  31.                 for(i=8;i>3;i--)               
  32.                 {
  33.                         s[i][0]=5;                        //修改數(shù)組中的數(shù)據(jù)
  34.                         s[i][1]=50;
  35.                         s[i][2]=5;


  36.                         SendOneFrame(s);        //顯示數(shù)組中的數(shù)據(jù)
  37.                         Delay100Ms(1);

  38.                         s[i-4][0]=0;
  39.                         s[i-4][1]=0;
  40.                         s[i-4][2]=0;

  41.                 }
  42.                           for(i=8;i<12;i++)               
  43.                 {
  44.                         s[i][0]=5;                        //修改數(shù)組中的數(shù)據(jù)
  45.                         s[i][1]=50;
  46.                         s[i][2]=5;


  47.                         SendOneFrame(s);        //顯示數(shù)組中的數(shù)據(jù)
  48.                         Delay100Ms(1);

  49.                         s[i+4][0]=0;
  50.                         s[i+4][1]=0;
  51.                         s[i+4][2]=0;

  52.                 }
  53.                                  for(i=15;i>11;i--)               
  54.                 {
  55.                         s[i][0]=5;                        //修改數(shù)組中的數(shù)據(jù)
  56.                         s[i][1]=50;
  57.                         s[i][2]=5;


  58.                         SendOneFrame(s);        //顯示數(shù)組中的數(shù)據(jù)
  59.                         Delay100Ms(1);

  60.                         s[i-4][0]=0;
  61.                         s[i-4][1]=0;
  62.                         s[i-4][2]=0;

  63.                 }


  64.         }
  65. }






  66. #include "STC15W.h"
  67. #include <intrins.h>
  68. #include "ws2812.h"

  69. //-------------------------------------------------------------------------------
  70. //子程序名稱:IO_Init(void)
  71. //功能:端口初始化
  72. //-------------------------------------------------------------------------------
  73. void IO_Init(void)
  74. {
  75.         ;
  76. }

  77. //-------------------------------------------------------------------------------
  78. //子程序名稱:ResetDateFlow(void)
  79. //功能:復(fù)位,為下一次發(fā)送做準(zhǔn)備,
  80. //說明:將DI置位為0后,延時(shí)約65us
  81. //-------------------------------------------------------------------------------
  82. void ResetDataFlow(void)
  83. {
  84.         unsigned char i,j;
  85.         DI=0;                                        //DI置為0后,延時(shí)50us以上,實(shí)現(xiàn)幀復(fù)位
  86.         for(i=0;i<15;i++)                //此處33Mhz時(shí)延時(shí)65us
  87.         {
  88.                 for(j=0;j<20;j++)
  89.                 {
  90.                         ;
  91.                 }
  92.         }
  93. }
  94. //-------------------------------------------------------------------------------
  95. //子程序名稱:SendOnePix(unsigned char *ptr)
  96. //功能:發(fā)送一個(gè)像素點(diǎn)的24bit數(shù)據(jù)
  97. //參數(shù):接收的參數(shù)是一個(gè)指針,此函數(shù)會(huì)將此指針指向的地址的連續(xù)的三個(gè)Byte的數(shù)據(jù)發(fā)送
  98. //說明:在主函數(shù)中直接調(diào)用此函數(shù)時(shí),在整個(gè)幀發(fā)送開始前需要先執(zhí)行 ResetDataFlow()
  99. //                數(shù)據(jù)是按歸零碼的方式發(fā)送,速率為800KBPS
  100. //-------------------------------------------------------------------------------
  101. void SendOnePix(unsigned char *ptr)
  102. {
  103.         unsigned char i,j;
  104.         unsigned char temp;

  105.         for(j=0;j<3;j++)
  106.         {
  107.                 temp=ptr[j];
  108.                 for(i=0;i<8;i++)
  109.                 {
  110.                         if(temp&0x80)                 //從高位開始發(fā)送
  111.                         {
  112.                                 DI=1;                         //發(fā)送“1”碼
  113.                                 _nop_();                 //不可省略的nop(),延時(shí)指定時(shí)間作用,晶振頻率33MHz
  114.                                 _nop_();
  115.                                 _nop_();
  116.                                 _nop_();
  117.                                 _nop_();
  118.                                 _nop_();
  119.                                 _nop_();
  120.                                 _nop_();
  121.                                 _nop_();
  122.                                 _nop_();
  123.                                 _nop_();
  124.                                 _nop_();
  125.                                 _nop_();
  126.                                 _nop_();
  127.                                 _nop_();
  128.                                 _nop_();
  129.                                 _nop_();
  130.                                 _nop_();
  131.                                 _nop_();
  132.                                 _nop_();

  133.                                 DI=0;
  134.                                 _nop_();
  135.                                 _nop_();
  136.                                 _nop_();
  137.                                 _nop_();
  138.                                 _nop_();
  139.                                 _nop_();
  140.                                 _nop_();
  141.                                 _nop_();
  142.                                 _nop_();
  143.                                 _nop_();
  144.                                 _nop_();
  145.                                 _nop_();
  146.                                 _nop_();
  147.                                 _nop_();
  148.                                 _nop_();
  149.                         }
  150.                         else                                //發(fā)送“0”碼
  151.                         {
  152.                                 DI=1;
  153.                                 _nop_();
  154.                                 _nop_();
  155.                                 _nop_();
  156.                                 _nop_();
  157.                                 _nop_();
  158.                                 _nop_();
  159.                                 _nop_();

  160.                                 DI=0;
  161.                                 _nop_();
  162.                                 _nop_();
  163.                                 _nop_();
  164.                                 _nop_();
  165.                                 _nop_();
  166.                                 _nop_();
  167.                                 _nop_();
  168.                                 _nop_();
  169.                                 _nop_();
  170.                                 _nop_();
  171.                                 _nop_();
  172.                                 _nop_();
  173.                                 _nop_();
  174.                                 _nop_();
  175.                                 _nop_();
  176.                                 _nop_();
  177.                                 _nop_();
  178.                                 _nop_();
  179.                                 _nop_();
  180.                         }
  181.                         temp=(temp<<1);                 //左移位
  182.                 }
  183.         }


  184. }
  185. //-------------------------------------------------------------------------------
  186. //子程序名稱:SendOneFrame(unsigned char *ptr)
  187. //功能:發(fā)送一幀數(shù)據(jù)(即發(fā)送整個(gè)數(shù)組的數(shù)據(jù))
  188. //參數(shù):接收的參數(shù)是一個(gè)指針,此函數(shù)會(huì)將此指針指向的地址的整個(gè)數(shù)組的數(shù)據(jù)發(fā)送
  189. //-------------------------------------------------------------------------------
  190. void SendOneFrame(unsigned char *ptr)
  191. {
  192.         unsigned char k;

  193.         ResetDataFlow();                                 //發(fā)送幀復(fù)位信號(hào)

  194.         for(k=0;k<SNUM;k++)                                 //發(fā)送一幀數(shù)據(jù),SNUM是板子LED的個(gè)數(shù)
  195.         {
  196.                 SendOnePix(&ptr[(3*k)]);
  197.         }

  198.         ResetDataFlow();                                 //發(fā)送幀復(fù)位信號(hào)
  199. }

  200. //-------------------------------------------------------------------------------
  201. //子程序名稱:SendSameColor(unsigned char *ptr,unsigned char cnt)
  202. //功能:相同顏色的點(diǎn)發(fā)送cnt次
  203. //參數(shù):接收的參數(shù)是一個(gè)指針,指向像素點(diǎn)顏色數(shù)組,cnt傳遞發(fā)送個(gè)數(shù)
  204. //-------------------------------------------------------------------------------
  205. void SendSameColor(unsigned char *ptr,unsigned char cnt)
  206. {
  207.         unsigned char k;

  208.         ResetDataFlow();                                 //發(fā)送幀復(fù)位信號(hào)

  209.         for(k=0;k<cnt;k++)                                 //發(fā)送一幀數(shù)據(jù),SNUM是板子LED的個(gè)數(shù)
  210.         {
  211.                 SendOnePix(&ptr[0]);
  212.         }

  213.         ResetDataFlow();                                 //發(fā)送幀復(fù)位信號(hào)
  214. }
  215. //-------------------------------------------------------------------------------
  216. //子程序名稱:SendOneFrameFrom(unsigned char i,unsigned char *ptr)
  217. //功能:從指定的像素點(diǎn)開始發(fā)送一幀數(shù)據(jù)(即發(fā)送整個(gè)數(shù)組的數(shù)據(jù))
  218. //參數(shù):接收的參數(shù)是一個(gè)指針,此函數(shù)會(huì)將此指針指向的地址的整幀數(shù)據(jù)發(fā)送
  219. //                i:把數(shù)組的第0個(gè)像素?cái)?shù)據(jù)發(fā)送到第i個(gè)像素點(diǎn)(第0個(gè)像素是板上標(biāo)號(hào)為01的像素)
  220. //說明:即原本對(duì)應(yīng)第一個(gè)像素的數(shù)據(jù)會(huì)發(fā)送到第i個(gè)像素點(diǎn)(LED)上
  221. //-------------------------------------------------------------------------------
  222. void SendOneFrameFrom(unsigned char i,unsigned char *ptr)
  223. {
  224.         unsigned char k;

  225.         ResetDataFlow();                                 //發(fā)送幀復(fù)位信號(hào)

  226.            for(k=(SNUM-i);k<SNUM;k++)                 //發(fā)送一幀數(shù)據(jù)
  227.         {
  228.                 SendOnePix(&ptr[(3*k)]);
  229.         }
  230.         for(k=0;k<(SNUM-i);k++)
  231.         {
  232.                 SendOnePix(&ptr[(3*k)]);
  233.         }

  234.         ResetDataFlow();                                 //發(fā)送幀復(fù)位信號(hào)
  235. }

  236. //-------------------------------------------------------------------------------
  237. //子程序名稱:SendOneFrameSince(unsigned char i,unsigned char *ptr)
  238. //功能:從第i個(gè)像素點(diǎn)的數(shù)據(jù)開始發(fā)送一幀數(shù)據(jù)(即發(fā)送整個(gè)數(shù)組的數(shù)據(jù))
  239. //參數(shù):接收的參數(shù)是一個(gè)指針,此函數(shù)會(huì)將此指針指向的地址的整幀數(shù)據(jù)發(fā)送
  240. //                i:把數(shù)組的第i個(gè)像素?cái)?shù)據(jù)發(fā)送到第1個(gè)像素點(diǎn)
  241. //說明:即原本對(duì)應(yīng)第i像素的數(shù)據(jù)會(huì)發(fā)送到第1個(gè)像素點(diǎn)(LED)上,第i+1個(gè)像素點(diǎn)的數(shù)據(jù)
  242. //                發(fā)送到第2個(gè)像素上
  243. //-------------------------------------------------------------------------------
  244. void SendOneFrameSince(unsigned char i,unsigned char *ptr)
  245. {
  246.         unsigned char k;

  247.         ResetDataFlow();                                 //發(fā)送幀復(fù)位信號(hào)

  248.         for(k=i;k<SNUM;k++)                                 //發(fā)送一幀數(shù)據(jù)
  249.         {
  250.                 SendOnePix(&ptr[(3*k)]);
  251.         }
  252.         for(k=0;k<i;k++)
  253.         {
  254.                 SendOnePix(&ptr[(3*k)]);
  255.         }
  256.         ResetDataFlow();                                 //發(fā)送幀復(fù)位信號(hào)
  257. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

23#
ID:824490 發(fā)表于 2022-8-3 17:48 | 只看該作者
WFX777888 發(fā)表于 2022-8-3 06:29
-------------------------------------------------------------------------------------*/

說實(shí)話,可能水平不夠吧,你這代碼的邏輯我看的有點(diǎn)暈。。。
有一點(diǎn)你不知你注意到了沒:
WS2812在發(fā)數(shù)據(jù)過程中不要被打斷,不能改幾個(gè)值,發(fā)幾個(gè),再改幾個(gè),而是要一次性改完所有的點(diǎn)值,再一次性發(fā)出,發(fā)送過程中,中斷都要關(guān)閉。

回復(fù)

使用道具 舉報(bào)

24#
ID:63317 發(fā)表于 2022-8-3 20:39 | 只看該作者
名字不是重點(diǎn) 發(fā)表于 2022-8-3 17:48
說實(shí)話,可能水平不夠吧,你這代碼的邏輯我看的有點(diǎn)暈。。。
有一點(diǎn)你不知你注意到了沒:
WS2812在發(fā)數(shù) ...

我買模塊給我?guī)У脑创a
這是我改的就是四行流水不同步
  1. unsigned char s[16][3]={{50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5},
  2.         {50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5},{50,5,5}};//定義一個(gè)二維數(shù)組,每個(gè)括號(hào)內(nèi)的三個(gè)數(shù)據(jù)對(duì)應(yīng)一個(gè)像素點(diǎn){G,R,B}

  3.         DelayMs(200);                                //上電等待延時(shí)

  4.         Port=0xff;                                        //初始化端口為高電平

  5.         while(1)
  6.         {
  7.                 for(i=0;i<4;i++)               
  8.                 {
  9.                         s[i][0]=5;                        //修改數(shù)組中的數(shù)據(jù)
  10.                         s[i][1]=50;
  11.                         s[i][2]=5;


  12.                         SendOneFrame(s);        //顯示數(shù)組中的數(shù)據(jù)
  13.                         Delay100Ms(1);

  14.                         s[i+4][0]=0;
  15.                         s[i+4][1]=0;
  16.                         s[i+4][2]=0;

  17.                 }
  18.                 for(i=8;i>3;i--)               
  19.                 {
  20.                         s[i][0]=5;                        //修改數(shù)組中的數(shù)據(jù)
  21.                         s[i][1]=50;
  22.                         s[i][2]=5;


  23.                         SendOneFrame(s);        //顯示數(shù)組中的數(shù)據(jù)
  24.                         Delay100Ms(1);

  25.                         s[i-4][0]=0;
  26.                         s[i-4][1]=0;
  27.                         s[i-4][2]=0;

  28.                 }
  29.                           for(i=8;i<12;i++)               
  30.                 {
  31.                         s[i][0]=5;                        //修改數(shù)組中的數(shù)據(jù)
  32.                         s[i][1]=50;
  33.                         s[i][2]=5;


  34.                         SendOneFrame(s);        //顯示數(shù)組中的數(shù)據(jù)
  35.                         Delay100Ms(1);

  36.                         s[i+4][0]=0;
  37.                         s[i+4][1]=0;
  38.                         s[i+4][2]=0;

  39.                 }
  40.                                  for(i=15;i>11;i--)               
  41.                 {
  42.                         s[i][0]=5;                        //修改數(shù)組中的數(shù)據(jù)
  43.                         s[i][1]=50;
  44.                         s[i][2]=5;


  45.                         SendOneFrame(s);        //顯示數(shù)組中的數(shù)據(jù)
  46.                         Delay100Ms(1);

  47.                         s[i-4][0]=0;
  48.                         s[i-4][1]=0;
  49.                         s[i-4][2]=0;

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

使用道具 舉報(bào)

25#
ID:63317 發(fā)表于 2022-8-3 20:42 | 只看該作者
名字不是重點(diǎn) 發(fā)表于 2022-8-3 17:48
說實(shí)話,可能水平不夠吧,你這代碼的邏輯我看的有點(diǎn)暈。。。
有一點(diǎn)你不知你注意到了沒:
WS2812在發(fā)數(shù) ...

我就是愛好這東西沒事玩玩
回復(fù)

使用道具 舉報(bào)

26#
ID:824490 發(fā)表于 2022-8-4 08:49 | 只看該作者
WFX777888 發(fā)表于 2022-8-3 20:42
我就是愛好這東西沒事玩玩

16燈串(4行4列)單色單燈4段流水
流程
第1行
第2行
第3行
第4行
燈1
燈2
燈3
燈4
燈5
燈6
燈7
燈8
燈9
燈10
燈11
燈12
燈13
燈14
燈15
燈16
發(fā)送數(shù)組1(16燈*3=48B)
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
延時(shí)
發(fā)送數(shù)組2(16燈*3=48B)
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
延時(shí)
發(fā)送數(shù)組3(16燈*3=48B)
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
延時(shí)
發(fā)送數(shù)組4(16燈*3=48B)
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
這個(gè)表給你參考一下。就按你的板、2維數(shù)組的方式。

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

27#
ID:824490 發(fā)表于 2022-8-4 08:52 | 只看該作者
WFX777888 發(fā)表于 2022-8-3 20:42
我就是愛好這東西沒事玩玩

我也是玩玩,這個(gè)不是我的專業(yè)。。。慢慢來,這個(gè)很簡(jiǎn)單的。
回復(fù)

使用道具 舉報(bào)

28#
ID:88256 發(fā)表于 2022-8-5 23:35 | 只看該作者
WFX777888 發(fā)表于 2022-8-2 17:41
呵呵就是玩不明白怎樣才能四排同時(shí)流水點(diǎn)亮

“現(xiàn)在能實(shí)現(xiàn)四排流水點(diǎn)亮但是他不同時(shí)流水點(diǎn)亮就是一排走完2排亮 2排走完3排亮”   就不能加個(gè)標(biāo)點(diǎn)符號(hào)?不太理解什么意思,是說第1排點(diǎn)亮一段時(shí)間后熄滅并亮起第2排,第2 排點(diǎn)亮一段時(shí)間后熄滅亮起第3排,而你則是想讓亮起的不熄滅,到最后全部亮?
回復(fù)

使用道具 舉報(bào)

29#
ID:88256 發(fā)表于 2022-8-5 23:38 | 只看該作者
WFX777888 發(fā)表于 2022-8-3 20:42
我就是愛好這東西沒事玩玩

26樓的方法你也試試
回復(fù)

使用道具 舉報(bào)

30#
ID:63317 發(fā)表于 2022-8-6 20:14 | 只看該作者
hhdsdy 發(fā)表于 2022-8-5 23:35
“現(xiàn)在能實(shí)現(xiàn)四排流水點(diǎn)亮但是他不同時(shí)流水點(diǎn)亮就是一排走完2排亮 2排走完3排亮”   就不能加個(gè)標(biāo)點(diǎn)符號(hào) ...

呵呵就是四排都能點(diǎn)亮了
就是第一排亮第二個(gè)燈
第二排亮第三個(gè)燈
第三排亮第四個(gè)燈
第四排亮第三個(gè)燈

正常事一排亮第一個(gè)燈  第二排亮第一個(gè)燈    第二排亮第一個(gè)燈   第三排亮第一個(gè)燈     第四排亮第一個(gè)燈
回復(fù)

使用道具 舉報(bào)

31#
ID:482083 發(fā)表于 2022-8-8 18:09 | 只看該作者
WFX777888 發(fā)表于 2022-8-2 17:41
呵呵就是玩不明白怎樣才能四排同時(shí)流水點(diǎn)亮

因?yàn)橥粫r(shí)間就一個(gè)for在運(yùn)行呀

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

32#
ID:63317 發(fā)表于 2022-8-9 06:11 | 只看該作者
cj2333 發(fā)表于 2022-8-8 18:09
因?yàn)橥粫r(shí)間就一個(gè)for在運(yùn)行呀

對(duì)啊就是不會(huì)同一時(shí)間運(yùn)行四個(gè)FOR啊
回復(fù)

使用道具 舉報(bào)

33#
ID:88256 發(fā)表于 2022-8-9 22:19 | 只看該作者
WFX777888 發(fā)表于 2022-8-6 20:14
呵呵就是四排都能點(diǎn)亮了
就是第一排亮第二個(gè)燈
第二排亮第三個(gè)燈

你的意思是能夠流水,但是想亮第1個(gè)燈的卻亮到第3個(gè)或者第4個(gè)燈去?你不是想要列方向流水顯示嗎,怎么變成從上到下了?拍個(gè)視頻看看吧。
前面讓你查看燈的排列順序你看了沒有?我都懷疑你是不是沒去查看燈的排列走向,第一個(gè)燈是在第幾排的第幾個(gè)位置上?后面的15個(gè)呢?

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

34#
ID:63317 發(fā)表于 2022-8-10 06:23 | 只看該作者
hhdsdy 發(fā)表于 2022-8-9 22:19
你的意思是能夠流水,但是想亮第1個(gè)燈的卻亮到第3個(gè)或者第4個(gè)燈去?你不是想要列方向流水顯示嗎,怎么變 ...

這個(gè)就是流水燈視頻

VID_20220810_061920.rar

3.44 MB, 下載次數(shù): 16

回復(fù)

使用道具 舉報(bào)

35#
ID:88256 發(fā)表于 2022-8-10 12:36 | 只看該作者
別用評(píng)分代替回復(fù)啊,都不回答實(shí)質(zhì)問題
回復(fù)

使用道具 舉報(bào)

36#
ID:161164 發(fā)表于 2022-8-10 16:39 | 只看該作者
WFX777888 發(fā)表于 2022-8-2 17:41
呵呵就是玩不明白怎樣才能四排同時(shí)流水點(diǎn)亮

這樣?

回復(fù)

使用道具 舉報(bào)

37#
ID:88256 發(fā)表于 2022-8-10 18:32 | 只看該作者
WFX777888 發(fā)表于 2022-8-10 06:23
這個(gè)就是流水燈視頻

把延時(shí)增加5倍看看
回復(fù)

使用道具 舉報(bào)

38#
ID:63317 發(fā)表于 2022-8-10 19:30 | 只看該作者

對(duì)就要這樣的
回復(fù)

使用道具 舉報(bào)

39#
ID:88256 發(fā)表于 2022-8-10 21:28 | 只看該作者

我發(fā)覺你還是理解不了原程序,所以就改得亂七八糟,連數(shù)組的初值都不改。
要達(dá)到最佳視覺效果,就要把整組數(shù)組的內(nèi)容改完再一次性送顯示,而不是改一個(gè)燈送顯示一次。
12樓的行號(hào)20開始的那4行為什么加4?原程序是為了顯示完恢復(fù)數(shù)組數(shù)據(jù),你的呢?
回復(fù)

使用道具 舉報(bào)

40#
ID:63317 發(fā)表于 2022-8-11 06:12 | 只看該作者
hhdsdy 發(fā)表于 2022-8-10 21:28
我發(fā)覺你還是理解不了原程序,所以就改得亂七八糟,連數(shù)組的初值都不改。
要達(dá)到最佳視覺效果,就要把整 ...

加四減四用不用都可以
數(shù)組我是真搞不懂
我就是玩按鍵輸入輸出控制了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲 日本 欧美 中文幕 | 黄色毛片免费看 | 欧美日韩国产精品一区 | 欧美成人精品在线 | 国产一区二区久久 | 久久久久久亚洲精品不卡 | 欧美日日日日bbbbb视频 | 亚洲va国产日韩欧美精品色婷婷 | 中文字幕国产高清 | 中文字字幕在线中文乱码范文 | 国产日韩精品在线 | 色吧综合| 国产精品视频在线观看 | 青青久在线视频 | 色综合av | 精品久久久久久久久久久 | 精国产品一区二区三区四季综 | 欧洲精品一区 | 欧美日韩久久久久 | 精品国产一区二区三区久久狼黑人 | 操操操日日日 | 毛片一区二区 | 久久美国| 亚洲精品二区 | 亚洲一区二区三区在线免费观看 | 天天操精品视频 | 国产福利91精品一区二区三区 | 日韩在线观看精品 | 久久一区二区三区四区五区 | 黑人精品欧美一区二区蜜桃 | 在线欧美一区二区 | 成人激情视频免费观看 | 欧美激情国产精品 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 欧美 日韩 中文 | 国产精品黄色 | 久草成人网 | 国产精品无码永久免费888 | 91精品久久久久 | 人人澡视频 | 日韩三级视频 |