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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7693|回復: 44
收起左側

WS2812BLED彩燈用STC15W204S-8單片機驅動流水燈源碼

  [復制鏈接]
ID:63317 發表于 2022-7-24 06:14 | 顯示全部樓層 |閱讀模式
WS2812BLED4X4 16位彩燈用STC15W204S-8驅動流水燈源碼
高手幫忙怎樣改成4排同時都向左或向右逐個點亮
想做成轉向燈3.3口控制右轉黃色  3.2口控制左轉黃色   5.4口控制全亮紅色
制作出來的實物圖如下:
1658616449019.jpg STC15W204S.jpg
2812.jpg
Keil代碼下載: 帶單片機8位全彩流水燈源碼.rar (66.49 KB, 下載次數: 179)

評分

參與人數 2黑幣 +62 收起 理由
catlu + 12
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:336378 發表于 2022-7-25 10:38 | 顯示全部樓層
不會自已改下嗎??。
回復

使用道具 舉報

ID:88256 發表于 2022-7-26 00:51 | 顯示全部樓層
你確定你的這個程序是可以點亮2812的嗎?里面用到的DI、SNUM等都沒進行定義,我才不相信編譯可以通過。
如果連點亮都做不到,那么談何花樣顯示?
等點亮后,學會在指定的一個2812上顯示各種顏色,那么,剩下的花樣編程就簡單了不是嗎?先腳踏實地一步步來吧,別想著一步登天。
回復

使用道具 舉報

ID:88256 發表于 2022-7-26 01:22 | 顯示全部樓層
不好意思!沒注意到有附件,只看到貼出來的程序感覺不對。不過,貼出來的程序和附件的程序是不一樣的,你這也是誤導人啊。
回復

使用道具 舉報

ID:63317 發表于 2022-7-26 06:31 | 顯示全部樓層
cba_cba 發表于 2022-7-25 10:38
不會自已改下嗎??。

呵呵沒玩明白啊
回復

使用道具 舉報

ID:63317 發表于 2022-7-26 06:33 | 顯示全部樓層
hhdsdy 發表于 2022-7-26 00:51
你確定你的這個程序是可以點亮2812的嗎?里面用到的DI、SNUM等都沒進行定義,我才不相信編譯可以通過。
如 ...

能編譯的老師
回復

使用道具 舉報

ID:88256 發表于 2022-7-26 21:51 | 顯示全部樓層

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

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

評分

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

查看全部評分

回復

使用道具 舉報

ID:99525 發表于 2022-7-26 23:41 | 顯示全部樓層
以我的實踐經驗,2812.c中的發送1和0的時序肯定是錯的!
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
回復

使用道具 舉報

ID:63317 發表于 2022-7-27 05:33 | 顯示全部樓層
hhdsdy 發表于 2022-7-26 21:51
看你玩單片機的時間也不短了,也不能完全照抄一點都不(會)改吧?貼出來的程序和附件的程序不同,燈數也 ...

我在某一個寶買的4X4LED給我帶的源碼想做個山地車轉向燈但是沒改明白呵呵
回復

使用道具 舉報

ID:88256 發表于 2022-7-27 14:23 | 顯示全部樓層
問了兩次,都不見你回答是否點亮,連程序里的燈數也沒改,很懷疑你根本就沒完全點亮過,難道是指望壇友們給你改好一個完整的程序?這不是學習單片機的方法啊,主程序那么簡單,你的要求也不復雜,自己琢磨著改一下也不難啊。

評分

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

查看全部評分

回復

使用道具 舉報

ID:63317 發表于 2022-7-27 17:38 | 顯示全部樓層
hhdsdy 發表于 2022-7-27 14:23
問了兩次,都不見你回答是否點亮,連程序里的燈數也沒改,很懷疑你根本就沒完全點亮過,難道是指望壇友們給 ...

我想要成排的流水效果謝謝
回復

使用道具 舉報

ID:88256 發表于 2022-7-27 21:51 | 顯示全部樓層
是我倆不在一個頻道上嗎?你16個2812全部亮了嗎?能不能全部亮黃色?搞清楚最右邊的一列從上到下的序號是多少了嗎?能不能單獨點亮最右邊的一列?什么情況都不知道,一抹黑的誰知道你是哪里不行了
回復

使用道具 舉報

ID:88256 發表于 2022-7-27 22:18 | 顯示全部樓層
完整程序是不可能給你的,論壇也禁止這樣的做法,所以得靠你自己慢慢堆砌,何況這個也是簡單的程序。
回復

使用道具 舉報

ID:824490 發表于 2022-7-28 16:22 | 顯示全部樓層
單片機之路,從點一個燈開始!你能點亮一個WS2812B了嗎?
回復

使用道具 舉報

ID:63317 發表于 2022-7-28 17:33 | 顯示全部樓層
名字不是重點 發表于 2022-7-28 16:22
單片機之路,從點一個燈開始!你能點亮一個WS2812B了嗎?

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


  6.                         SendOneFrame(s);        //顯示數組中的數據
  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;                        //修改數組中的數據
  15.                         s[i][1]=50;
  16.                         s[i][2]=5;


  17.                         SendOneFrame(s);        //顯示數組中的數據
  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;                        //修改數組中的數據
  26.                         s[i][1]=50;
  27.                         s[i][2]=5;


  28.                         SendOneFrame(s);        //顯示數組中的數據
  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;                        //修改數組中的數據
  37.                         s[i][1]=50;
  38.                         s[i][2]=5;


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

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

  44.                 }
復制代碼
回復

使用道具 舉報

ID:88256 發表于 2022-7-29 10:09 | 顯示全部樓層
WFX777888 發表于 2022-7-28 17:33
四排點亮了但是不同時享有流動有快有慢

這個點亮的是紅色而不是黃色的吧?
你的點亮順序是:
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


我不知道你板上的燈珠是怎么排列的,但明顯點亮的燈數就不對了,這怎么會正常?

評分

參與人數 1黑幣 +5 收起 理由
WFX777888 + 5 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:824490 發表于 2022-7-29 11:50 | 顯示全部樓層
WFX777888 發表于 2022-7-28 17:33
四排點亮了但是不同時享有流動有快有慢

建議你用結構體的方式來操作,應該比你這方式清爽多了。
  1. #define led_num 24                   //彩燈點數

  2. struct p_color   //定義彩燈點的色值結構體,方便后期操作
  3. {
  4.   u8 ur;
  5.   u8 ug;
  6.   u8 ub;
  7. };
  8. struct p_color led_tabel[led_num] ;//彩燈色值結構體數組
  9. struct p_color temp_color;         //臨時色值結構體


  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;  //設定指針,指向數組

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

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

評分

參與人數 1黑幣 +10 收起 理由
WFX777888 + 10 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:88256 發表于 2022-7-29 12:50 | 顯示全部樓層
名字不是重點 發表于 2022-7-29 11:50
建議你用結構體的方式來操作,應該比你這方式清爽多了。
#define led_num 24                   //彩燈點數

他連 i=16 都出來了,你還讓他直接上結構體,不是整更懵嗎?
回復

使用道具 舉報

ID:622100 發表于 2022-8-2 09:10 | 顯示全部樓層
hhdsdy 發表于 2022-7-29 12:50
他連 i=16 都出來了,你還讓他直接上結構體,不是整更懵嗎?

那這樣2812對他也太難了,上3528的了,這個點亮很簡單,比較適合新手,別給他搞太難,放棄就不好了

評分

參與人數 1黑幣 +5 收起 理由
WFX777888 + 5 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:63317 發表于 2022-8-2 17:41 | 顯示全部樓層
吾心悅汝 發表于 2022-8-2 09:10
那這樣2812對他也太難了,上3528的了,這個點亮很簡單,比較適合新手,別給他搞太難,放棄就不好了

呵呵就是玩不明白怎樣才能四排同時流水點亮


現在能實現四排流水點亮但是他不同時流水點亮就是一排走完2排亮 2排走完3排亮
回復

使用道具 舉報

ID:88256 發表于 2022-8-2 20:34 | 顯示全部樓層
WFX777888 發表于 2022-8-2 17:41
呵呵就是玩不明白怎樣才能四排同時流水點亮

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

使用道具 舉報

ID:63317 發表于 2022-8-3 06:29 | 顯示全部樓層
hhdsdy 發表于 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,R,B}

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

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

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


  25.                         SendOneFrame(s);        //顯示數組中的數據
  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;                        //修改數組中的數據
  34.                         s[i][1]=50;
  35.                         s[i][2]=5;


  36.                         SendOneFrame(s);        //顯示數組中的數據
  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;                        //修改數組中的數據
  45.                         s[i][1]=50;
  46.                         s[i][2]=5;


  47.                         SendOneFrame(s);        //顯示數組中的數據
  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;                        //修改數組中的數據
  56.                         s[i][1]=50;
  57.                         s[i][2]=5;


  58.                         SendOneFrame(s);        //顯示數組中的數據
  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. //功能:復位,為下一次發送做準備,
  80. //說明:將DI置位為0后,延時約65us
  81. //-------------------------------------------------------------------------------
  82. void ResetDataFlow(void)
  83. {
  84.         unsigned char i,j;
  85.         DI=0;                                        //DI置為0后,延時50us以上,實現幀復位
  86.         for(i=0;i<15;i++)                //此處33Mhz時延時65us
  87.         {
  88.                 for(j=0;j<20;j++)
  89.                 {
  90.                         ;
  91.                 }
  92.         }
  93. }
  94. //-------------------------------------------------------------------------------
  95. //子程序名稱:SendOnePix(unsigned char *ptr)
  96. //功能:發送一個像素點的24bit數據
  97. //參數:接收的參數是一個指針,此函數會將此指針指向的地址的連續的三個Byte的數據發送
  98. //說明:在主函數中直接調用此函數時,在整個幀發送開始前需要先執行 ResetDataFlow()
  99. //                數據是按歸零碼的方式發送,速率為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)                 //從高位開始發送
  111.                         {
  112.                                 DI=1;                         //發送“1”碼
  113.                                 _nop_();                 //不可省略的nop(),延時指定時間作用,晶振頻率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                                //發送“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. //功能:發送一幀數據(即發送整個數組的數據)
  188. //參數:接收的參數是一個指針,此函數會將此指針指向的地址的整個數組的數據發送
  189. //-------------------------------------------------------------------------------
  190. void SendOneFrame(unsigned char *ptr)
  191. {
  192.         unsigned char k;

  193.         ResetDataFlow();                                 //發送幀復位信號

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

  198.         ResetDataFlow();                                 //發送幀復位信號
  199. }

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

  208.         ResetDataFlow();                                 //發送幀復位信號

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

  213.         ResetDataFlow();                                 //發送幀復位信號
  214. }
  215. //-------------------------------------------------------------------------------
  216. //子程序名稱:SendOneFrameFrom(unsigned char i,unsigned char *ptr)
  217. //功能:從指定的像素點開始發送一幀數據(即發送整個數組的數據)
  218. //參數:接收的參數是一個指針,此函數會將此指針指向的地址的整幀數據發送
  219. //                i:把數組的第0個像素數據發送到第i個像素點(第0個像素是板上標號為01的像素)
  220. //說明:即原本對應第一個像素的數據會發送到第i個像素點(LED)上
  221. //-------------------------------------------------------------------------------
  222. void SendOneFrameFrom(unsigned char i,unsigned char *ptr)
  223. {
  224.         unsigned char k;

  225.         ResetDataFlow();                                 //發送幀復位信號

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

  234.         ResetDataFlow();                                 //發送幀復位信號
  235. }

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

  247.         ResetDataFlow();                                 //發送幀復位信號

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

使用道具 舉報

ID:824490 發表于 2022-8-3 17:48 | 顯示全部樓層
WFX777888 發表于 2022-8-3 06:29
-------------------------------------------------------------------------------------*/

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

回復

使用道具 舉報

ID:63317 發表于 2022-8-3 20:39 | 顯示全部樓層
名字不是重點 發表于 2022-8-3 17:48
說實話,可能水平不夠吧,你這代碼的邏輯我看的有點暈。。。
有一點你不知你注意到了沒:
WS2812在發數 ...

我買模塊給我帶的源碼
這是我改的就是四行流水不同步
  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,R,B}

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

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

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


  12.                         SendOneFrame(s);        //顯示數組中的數據
  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;                        //修改數組中的數據
  21.                         s[i][1]=50;
  22.                         s[i][2]=5;


  23.                         SendOneFrame(s);        //顯示數組中的數據
  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;                        //修改數組中的數據
  32.                         s[i][1]=50;
  33.                         s[i][2]=5;


  34.                         SendOneFrame(s);        //顯示數組中的數據
  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;                        //修改數組中的數據
  43.                         s[i][1]=50;
  44.                         s[i][2]=5;


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

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

  50.                 }
復制代碼
回復

使用道具 舉報

ID:63317 發表于 2022-8-3 20:42 | 顯示全部樓層
名字不是重點 發表于 2022-8-3 17:48
說實話,可能水平不夠吧,你這代碼的邏輯我看的有點暈。。。
有一點你不知你注意到了沒:
WS2812在發數 ...

我就是愛好這東西沒事玩玩
回復

使用道具 舉報

ID:824490 發表于 2022-8-4 08:49 | 顯示全部樓層
WFX777888 發表于 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
發送數組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
延時
發送數組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
延時
發送數組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
延時
發送數組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
這個表給你參考一下。就按你的板、2維數組的方式。

評分

參與人數 1黑幣 +10 收起 理由
WFX777888 + 10 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:824490 發表于 2022-8-4 08:52 | 顯示全部樓層
WFX777888 發表于 2022-8-3 20:42
我就是愛好這東西沒事玩玩

我也是玩玩,這個不是我的專業。。。慢慢來,這個很簡單的。
回復

使用道具 舉報

ID:88256 發表于 2022-8-5 23:35 | 顯示全部樓層
WFX777888 發表于 2022-8-2 17:41
呵呵就是玩不明白怎樣才能四排同時流水點亮

“現在能實現四排流水點亮但是他不同時流水點亮就是一排走完2排亮 2排走完3排亮”   就不能加個標點符號?不太理解什么意思,是說第1排點亮一段時間后熄滅并亮起第2排,第2 排點亮一段時間后熄滅亮起第3排,而你則是想讓亮起的不熄滅,到最后全部亮?
回復

使用道具 舉報

ID:88256 發表于 2022-8-5 23:38 | 顯示全部樓層
WFX777888 發表于 2022-8-3 20:42
我就是愛好這東西沒事玩玩

26樓的方法你也試試
回復

使用道具 舉報

ID:63317 發表于 2022-8-6 20:14 | 顯示全部樓層
hhdsdy 發表于 2022-8-5 23:35
“現在能實現四排流水點亮但是他不同時流水點亮就是一排走完2排亮 2排走完3排亮”   就不能加個標點符號 ...

呵呵就是四排都能點亮了
就是第一排亮第二個燈
第二排亮第三個燈
第三排亮第四個燈
第四排亮第三個燈

正常事一排亮第一個燈  第二排亮第一個燈    第二排亮第一個燈   第三排亮第一個燈     第四排亮第一個燈
回復

使用道具 舉報

ID:482083 發表于 2022-8-8 18:09 | 顯示全部樓層
WFX777888 發表于 2022-8-2 17:41
呵呵就是玩不明白怎樣才能四排同時流水點亮

因為同一時間就一個for在運行呀

評分

參與人數 1黑幣 +5 收起 理由
WFX777888 + 5 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:63317 發表于 2022-8-9 06:11 | 顯示全部樓層
cj2333 發表于 2022-8-8 18:09
因為同一時間就一個for在運行呀

對啊就是不會同一時間運行四個FOR啊
回復

使用道具 舉報

ID:88256 發表于 2022-8-9 22:19 | 顯示全部樓層
WFX777888 發表于 2022-8-6 20:14
呵呵就是四排都能點亮了
就是第一排亮第二個燈
第二排亮第三個燈

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

評分

參與人數 1黑幣 +10 收起 理由
WFX777888 + 10 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:63317 發表于 2022-8-10 06:23 | 顯示全部樓層
hhdsdy 發表于 2022-8-9 22:19
你的意思是能夠流水,但是想亮第1個燈的卻亮到第3個或者第4個燈去?你不是想要列方向流水顯示嗎,怎么變 ...

這個就是流水燈視頻

VID_20220810_061920.rar

3.44 MB, 下載次數: 16

回復

使用道具 舉報

ID:88256 發表于 2022-8-10 12:36 | 顯示全部樓層
別用評分代替回復啊,都不回答實質問題
回復

使用道具 舉報

ID:161164 發表于 2022-8-10 16:39 | 顯示全部樓層
WFX777888 發表于 2022-8-2 17:41
呵呵就是玩不明白怎樣才能四排同時流水點亮

這樣? ezgif.com-video-to-gif.gif

回復

使用道具 舉報

ID:88256 發表于 2022-8-10 18:32 | 顯示全部樓層
WFX777888 發表于 2022-8-10 06:23
這個就是流水燈視頻

把延時增加5倍看看
回復

使用道具 舉報

ID:63317 發表于 2022-8-10 19:30 | 顯示全部樓層

對就要這樣的
回復

使用道具 舉報

ID:88256 發表于 2022-8-10 21:28 | 顯示全部樓層

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

使用道具 舉報

ID:63317 發表于 2022-8-11 06:12 | 顯示全部樓層
hhdsdy 發表于 2022-8-10 21:28
我發覺你還是理解不了原程序,所以就改得亂七八糟,連數組的初值都不改。
要達到最佳視覺效果,就要把整 ...

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品国产久精国产 | 色综合99| 日本三级做a全过程在线观看 | 亚洲视频在线观看 | 91成人在线视频 | 丁香婷婷久久久综合精品国产 | 久久久综合色 | 黄色免费在线观看 | 久久九九免费 | 自拍偷拍亚洲一区 | 欧美日韩视频在线播放 | 91精品国产一区二区三区 | 精品成人免费一区二区在线播放 | 日韩欧美一区在线 | 美女视频一区二区三区 | 国产精品久久久久久中文字 | 久久国产视频网站 | 亚洲欧美综合 | 狠狠躁躁夜夜躁波多野结依 | 精品国产视频 | 国产超碰人人爽人人做人人爱 | 欧美11一13sex性hd | 色综合天天综合网国产成人网 | 91在线播 | av天天干| 精品在线观看一区 | 国产欧美精品一区 | 精品综合网 | 国产欧美精品 | 羞羞在线视频 | 久久精品一区二区 | 国产精品大片在线观看 | 99国产精品99久久久久久 | 欧美三级视频在线观看 | 国产精品1区 | 久久国品片| 国产视频二区在线观看 | 欧美一级久久 | 国产乱码精品一品二品 | 久久国产精品一区二区三区 | 狠狠爱免费视频 |