8071浏览
楼主: 驴友花雕

[项目] 【Arduino】168种传感器模块系列实验(220)---P6全彩16X32单元板

[复制链接]

驴友花雕  中级技神
 楼主|

发表于 2022-11-10 07:11:02

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-10 08:29:02

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十:P6全彩LED模组 16X32显示屏单元板 P6-RGB-16X32-8S
  室内全彩8扫电子屏(HX-P6-16X32-A)
  项目程序之一:点亮32x16 RGB LED矩阵

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百二十:P6全彩LED模组 16X32显示屏单元板 P6-RGB-16X32-8S
  4.   室内全彩8扫电子屏(HX-P6-16X32-A)
  5.   项目程序之一:点亮32x16 RGB LED矩阵
  6. */
  7. #include <Adafruit_GFX.h>   // Core graphics library
  8. #include <RGBmatrixPanel.h> // Hardware-specific library
  9. #define CLK 8  // MUST be on PORTB! (Use pin 11 on Mega)
  10. #define LAT A3
  11. #define OE  9
  12. #define A   A0
  13. #define B   A1
  14. #define C   A2
  15. RGBmatrixPanel matrix(A, B, C, CLK, LAT, OE, false);
  16. void setup() {
  17.   matrix.begin();
  18. }
  19. void loop() {
  20.   // draw a pixel in solid white
  21.   matrix.drawPixel(0, 0, matrix.Color333(7, 7, 7));
  22.   delay(500);
  23.   // fix the screen with green
  24.   matrix.fillRect(0, 0, 32, 16, matrix.Color333(0, 7, 0));
  25.   delay(500);
  26.   // draw a box in yellow
  27.   matrix.drawRect(0, 0, 32, 16, matrix.Color333(7, 7, 0));
  28.   delay(500);
  29.   // draw an 'X' in red
  30.   matrix.drawLine(0, 0, 31, 15, matrix.Color333(7, 0, 0));
  31.   matrix.drawLine(31, 0, 0, 15, matrix.Color333(7, 0, 0));
  32.   delay(500);
  33.   // draw a blue circle
  34.   matrix.drawCircle(7, 7, 7, matrix.Color333(0, 0, 7));
  35.   delay(500);
  36.   // fill a violet circle
  37.   matrix.fillCircle(23, 7, 7, matrix.Color333(7, 0, 7));
  38.   delay(500);
  39.   // fill the screen with 'black'
  40.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  41.   // draw some text!
  42.   matrix.setCursor(1, 0);   // start at top left, with one pixel of spacing
  43.   matrix.setTextSize(1);    // size 1 == 8 pixels high
  44.   // print each letter with a rainbow color
  45.   matrix.setTextColor(matrix.Color333(7, 0, 0));
  46.   matrix.print('1');
  47.   matrix.setTextColor(matrix.Color333(7, 4, 0));
  48.   matrix.print('6');
  49.   matrix.setTextColor(matrix.Color333(7, 7, 0));
  50.   matrix.print('x');
  51.   matrix.setTextColor(matrix.Color333(4, 7, 0));
  52.   matrix.print('3');
  53.   matrix.setTextColor(matrix.Color333(0, 7, 0));
  54.   matrix.print('2');
  55.   matrix.setCursor(1, 9);   // next line
  56.   matrix.setTextColor(matrix.Color333(0, 7, 7));
  57.   matrix.print('*');
  58.   matrix.setTextColor(matrix.Color333(0, 4, 7));
  59.   matrix.print('R');
  60.   matrix.setTextColor(matrix.Color333(0, 0, 7));
  61.   matrix.print('G');
  62.   matrix.setTextColor(matrix.Color333(4, 0, 7));
  63.   matrix.print('B');
  64.   matrix.setTextColor(matrix.Color333(7, 0, 4));
  65.   matrix.print("*");
  66.   delay(5000);
  67. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-10 08:33:08

实验场景图

【Arduino】168种传感器模块系列实验(220)---P6全彩16X32单元板图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-10 08:35:55

本帖最后由 驴友花雕 于 2022-11-10 20:25 编辑

实验场景图  动态图

【Arduino】168种传感器模块系列实验(220)---P6全彩16X32单元板图1

LED模组会轮流显示:一个白点、全屏绿色、全屏黄色、一个黄色的矩形框、一个红色的X、一个蓝色的圆、一个填充紫圆、英文字。
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-10 18:41:52

实验接线图
【Arduino】168种传感器模块系列实验(220)---P6全彩16X32单元板图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-10 18:45:20

实验场景图

【Arduino】168种传感器模块系列实验(220)---P6全彩16X32单元板图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-10 19:36:49

上次自制的HUB08接口的扩展板,适合32x16像素的P10单红1RV706单元板模组


【Arduino】168种传感器模块系列实验(123)---P10V706LED屏模组
https://www.arduino.cn/forum.php?mod=viewthread&tid=91889&fromuid=61537

【Arduino】168种传感器模块系列实验(220)---P6全彩16X32单元板图1


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-10 19:58:37

HUB75接口,是个兼容大部分市面LED单元板的通用型接口,具体接线定义有些不同,比如HUB75B\HUB75E等。
这次自制的扩展板,只是专门匹配Arduino UNO开发板的专用板,由于性能限制,最多只能使用32x16,或者32x32的简单控制。


下一张扩展板,准备尝试搭配ESP32开发板,以适应大部分P5\P4\P3的单元板模组,主要规格可能有32x32\64x32\64x64,还有128x64等。

【Arduino】168种传感器模块系列实验(220)---P6全彩16X32单元板图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-10 21:44:41

【Arduino】168种传感器模块系列实验(220)---P6全彩16X32单元板图1

程序说明:

1、引导驱动库
  1. #include <adafruit_gfx.h> //核心图形库
  2. #include <rgbmatrixpanel.h> //硬件特定库
复制代码


2、绘制单个像素
  1. //用固体白色画一个像素
  2. matrix.DrawPixel(0,0,matrix.Color333(7,7,7));
复制代码


3、绘制一个非常大的矩形来用绿色填充屏幕。前两个参数是左上角点,然后是宽度(以像素为单位)和高度(以像素为单位),最后是颜色
  1. //用绿色修复屏幕
  2. matrix.FilleRect(0,0,32,16,matrix.Color333(0,7,0));
复制代码


4、接下来,我们将只绘制一个矩形的轮廓,用黄色
  1. //用黄色画一个盒子
  2. matrix.drawRect(0,0,32,16,matrix.Color333(7,7,0));
复制代码


5、绘制线条。drawLine 过程将用您想要的任何颜色绘制一条线,我们用它来绘制一个大 X
  1. //用红色绘制'x'
  2. matrix.DrawLine(0,0,0,31,15,Matrix.Color333(7,0,0));
  3. matrix.drawline(31,0,0,15,matrix.Color333(7,0,0));
复制代码


6、接下来绘制的形状是圆形。您可以使用 drawCircle 绘制圆的轮廓,也可以使用 fillCircle 填充圆。前两个参数是中心点,第三个参数是以像素为单位的半径,最后是要使用的颜色。
  1. //填充紫罗兰圆圈
  2. matrix.fillcircle(23,7,7,matrix.Color333(7,0,7));
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-10 21:52:51

本帖最后由 驴友花雕 于 2022-11-10 21:57 编辑

7、fillScreen 允许您用一种颜色填充整个屏幕
  1. //用“黑色”填充屏幕
  2. matrix.FillScreen(Matrix.Color333(0,0,0));
复制代码


8、最后,我们将顶部显示的文本绘制为演示图像。我们可以使用打印功能,您将在串行中熟悉该功能。您可以使用打印来打印字符串、数字、变量等。但是,我们需要在开始之前设置打印!首先,我们必须使用 setCursor 设置光标位置,这是第一个字符的左上角像素的位置,这可以是任何地方,但请注意,文本字符默认为 8 像素高。接下来的setTextSize允许您将大小设置为1(8像素高)或2(对于非常大的文本为16像素高!),您可能只想现在坚持使用1。最后,我们可以使用 setTextColor 设置文本的颜色。完成所有这些操作后,我们可以使用print('1') 打印字符 “1”。
  1. //画一些文字!
  2. matrix.setcursor(1,0); //从左上开始,有一个像素的间距
  3. matrix.setTextsize(1); //尺寸1 == 8像素高
  4. //用彩虹颜色打印每个字母
  5. matrix.setTextColor(Matrix.Color333(7,0,0));
  6. matrix.print('1');
  7. matrix.setTextColor(Matrix.Color333(7,4,0));
  8. matrix.print('6');
  9. matrix.setTextColor(Matrix.Color333(7,7,0));
  10. matrix.print('x');
  11. matrix.setTextColor(Matrix.Color333(4,7,0));
  12. matrix.print('3');
  13. matrix.setTextColor(matrix.color333(0,7,0));
  14. matrix.print('2');
  15. matrix.setcursor(1,9); //下一行
  16. matrix.setTextColor(Matrix.Color333(0,7,7));
  17. matrix.print('*');
  18. matrix.setTextColor(Matrix.Color333(0,4,7));
  19. matrix.print('r');
  20. matrix.setTextColor(matrix.color333(0,0,7));
  21. matrix.print('g');
  22. matrix.setTextColor(Matrix.Color333(4,0,7));
  23. matrix.print('b');
  24. matrix.setTextColor(Matrix.Color333(7,0,4));
  25. matrix.print(“*”);
复制代码

【Arduino】168种传感器模块系列实验(220)---P6全彩16X32单元板图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-10 22:08:54

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十:P6全彩LED模组 16X32显示屏单元板 P6-RGB-16X32-8S
  室内全彩8扫电子屏(HX-P6-16X32-A)
  项目程序之二:尝试在 512 像素上显示 512 种颜色

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百二十:P6全彩LED模组 16X32显示屏单元板 P6-RGB-16X32-8S
  4.   室内全彩8扫电子屏(HX-P6-16X32-A)
  5.   项目程序之二:尝试在 512 像素上显示 512 种颜色
  6. */
  7. #include <RGBmatrixPanel.h>
  8. // Most of the signal pins are configurable, but the CLK pin has some
  9. // special constraints.  On 8-bit AVR boards it must be on PORTB...
  10. // Pin 8 works on the Arduino Uno & compatibles (e.g. Adafruit Metro),
  11. // Pin 11 works on the Arduino Mega.  On 32-bit SAMD boards it must be
  12. // on the same PORT as the RGB data pins (D2-D7)...
  13. // Pin 8 works on the Adafruit Metro M0 or Arduino Zero,
  14. // Pin A4 works on the Adafruit Metro M4 (if using the Adafruit RGB
  15. // Matrix Shield, cut trace between CLK pads and run a wire to A4).
  16. #define CLK  8   // USE THIS ON ARDUINO UNO, ADAFRUIT METRO M0, etc.
  17. //#define CLK A4 // USE THIS ON METRO M4 (not M0)
  18. //#define CLK 11 // USE THIS ON ARDUINO MEGA
  19. #define OE   9
  20. #define LAT A3
  21. #define A   A0
  22. #define B   A1
  23. #define C   A2
  24. RGBmatrixPanel matrix(A, B, C, CLK, LAT, OE, false);
  25. void setup() {
  26.   matrix.begin();
  27.   uint8_t r=0, g=0, b=0;
  28.   // Draw top half
  29.   for(uint8_t x=0; x<32; x++) {
  30.     for(uint8_t y=0; y<8; y++) {
  31.       matrix.drawPixel(x, y, matrix.Color333(r, g, b));
  32.       r++;
  33.       if(r == 8) {
  34.         r = 0;
  35.         g++;
  36.         if(g == 8) {
  37.           g = 0;
  38.           b++;
  39.         }
  40.       }
  41.     }
  42.   }
  43.   // Draw bottom half
  44.   for(uint8_t x=0; x<32; x++) {
  45.     for(uint8_t y=8; y<16; y++) {
  46.       matrix.drawPixel(x, y, matrix.Color333(r, g, b));
  47.       r++;
  48.       if(r == 8) {
  49.         r = 0;
  50.         g++;
  51.         if(g == 8) {
  52.           g = 0;
  53.           b++;
  54.         }
  55.       }
  56.     }
  57.   }
  58. }
  59. void loop() {
  60.   // Do nothing -- image doesn't change
  61. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-10 22:13:02

上传后,使用 16x32 面板,应该看到以下内容:

【Arduino】168种传感器模块系列实验(220)---P6全彩16X32单元板图1

这是一个测试模式,在 512 像素上显示 512 种颜色(共 4096 种颜色)。由于没有真正优雅的方式来在二维中显示三维色彩空间 (R/G/B),因此只有重复的红色/绿色网格和增加的蓝色。无论如何,这向您展示了您可以实现的颜色范围!其中最有用的一行是:

  1. matrix.drawPixel(x, y, matrix.Color333(r, g, b));
复制代码


这就是我们实际绘制到显示器的地方。此代码一次只绘制一个像素。x 和 y 坐标是显示器的各个像素。(0,0) 在左上角,(31, 15) 在右下角(请记住,我们从 0 开始计数!要创建颜色,您需要使用辅助函数 Color333,它将采用三个 3 位数字并将它们组合成一个打包整数。例如,第一个参数 r 的范围可以从 0 到 7。对于 g和 b 也是如此。要使像素是纯红色的,r将为7,g,b将为0。要制作白色像素,请将全部设置为 7。要制作黑色(关闭)像素,请将颜色设置为 0。类似的函数 Color444 接受三个 4 位数字,最多 4096 种颜色。

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-11 07:28:38

找到一张16x32 RGB LED 矩阵参考原理图


【Arduino】168种传感器模块系列实验(220)---P6全彩16X32单元板图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-12 16:26:11

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十:P6全彩LED模组 16X32显示屏单元板 P6-RGB-16X32-8S
  室内全彩8扫电子屏(HX-P6-16X32-A)
  项目程序之三:点与线的简单控制

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百二十:P6全彩LED模组 16X32显示屏单元板 P6-RGB-16X32-8S
  4.   室内全彩8扫电子屏(HX-P6-16X32-A)
  5.   项目程序之三:点与线的简单控制
  6. */
  7. #include <Adafruit_GFX.h>   //核心图形库
  8. #include <RGBmatrixPanel.h> //硬件特定库
  9. #define CLK 8 //必须在这个端口上! (在Mega上使用PIN 11)
  10. #define LAT A3
  11. #define OE  9
  12. #define A   A0
  13. #define B   A1
  14. #define C   A2
  15. //最后一个参数='false'禁用双屏障
  16. RGBmatrixPanel matrix(A, B, C, CLK, LAT, OE, false);
  17. void setup() {
  18.   matrix.begin(); //矩阵开始(启动)
  19. }
  20. void loop() {
  21.   //用红色在0,0处画一个像素
  22.   matrix.drawPixel(0, 0, matrix.Color333(7, 0, 0));
  23.   delay(500);
  24.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  25.   delay(500);
  26.   //用绿色在31,0处画一个像素
  27.   matrix.drawPixel(31, 0, matrix.Color333(0, 7, 0));
  28.   delay(500);
  29.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  30.   delay(500);
  31.   //用蓝色在31,15处画一个像素
  32.   matrix.drawPixel(31, 15, matrix.Color333(0, 0, 7));
  33.   delay(500);
  34.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  35.   delay(500);
  36.   //用白色在0,15处画一个像素
  37.   matrix.drawPixel(0, 15, matrix.Color333(5, 5, 5));
  38.   delay(500);
  39.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  40.   delay(500);
  41.   //用四种颜色在单元板四角各画一个像素
  42.   matrix.drawPixel(0, 0, matrix.Color333(7, 0, 0));
  43.   matrix.drawPixel(31, 0, matrix.Color333(0, 7, 0));
  44.   matrix.drawPixel(31, 15, matrix.Color333(0, 0, 7));
  45.   matrix.drawPixel(0, 15, matrix.Color333(5, 5, 5));
  46.   delay(500);
  47.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  48.   delay(500);
  49.   matrix.drawLine(0, 0, 31, 0, matrix.Color333(7, 0, 0));
  50.   delay(500);
  51.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  52.   delay(500);
  53.   matrix.drawLine(31, 0, 31, 15, matrix.Color333(0, 7, 0));
  54.   delay(500);
  55.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  56.   delay(500);
  57.   matrix.drawLine(0, 15, 31, 15, matrix.Color333(0, 0, 7));
  58.   delay(500);
  59.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  60.   delay(500);
  61.   matrix.drawLine(0, 0, 0, 15, matrix.Color333(5, 5, 5));
  62.   delay(500);
  63.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  64.   delay(500);
  65.   matrix.drawLine(0, 0, 31, 0, matrix.Color333(7, 0, 0));
  66.   matrix.drawLine(31, 0, 31, 15, matrix.Color333(0, 7, 0));
  67.   matrix.drawLine(0, 15, 31, 15, matrix.Color333(0, 0, 7));
  68.   matrix.drawLine(0, 0, 0, 15, matrix.Color333(5, 5, 5));
  69.   delay(500);
  70.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  71.   delay(500);
  72.   matrix.drawLine(0, 0, 31, 15, matrix.Color333(4, 7, 0));
  73.   delay(500);
  74.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  75.   delay(500);
  76.   matrix.drawLine(31, 0, 0, 15, matrix.Color333(4, 7, 0));
  77.   delay(500);
  78.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  79.   delay(500);
  80.   matrix.drawLine(0, 0, 31, 15, matrix.Color333(0, 7, 4));
  81.   matrix.drawLine(31, 0, 0, 15, matrix.Color333(0, 7, 4));
  82.   delay(500);
  83.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  84.   delay(500);
  85.   matrix.drawLine(0, 0, 31, 0, matrix.Color333(7, 0, 0));
  86.   matrix.drawLine(31, 0, 31, 15, matrix.Color333(0, 7, 0));
  87.   matrix.drawLine(0, 15, 31, 15, matrix.Color333(0, 0, 7));
  88.   matrix.drawLine(0, 0, 0, 15, matrix.Color333(5, 5, 5));
  89.   matrix.drawLine(0, 0, 31, 15, matrix.Color333(0, 7, 0));
  90.   matrix.drawLine(31, 0, 0, 15, matrix.Color333(0, 7, 0));
  91.   delay(500);
  92.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  93.   delay(500);
  94.   matrix.drawLine(0, 0, 31, 0, matrix.Color333(7, 0, 0));
  95.   matrix.drawLine(31, 0, 31, 15, matrix.Color333(7, 0, 0));
  96.   matrix.drawLine(0, 15, 31, 15, matrix.Color333(7, 0, 0));
  97.   matrix.drawLine(0, 0, 0, 15, matrix.Color333(7, 0, 0));
  98.   matrix.drawLine(0, 0, 31, 15, matrix.Color333(7, 0, 0));
  99.   matrix.drawLine(31, 0, 0, 15, matrix.Color333(7, 0, 0));
  100.   delay(500);
  101.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  102.   delay(500);
  103.   matrix.drawLine(0, 0, 31, 0, matrix.Color333(0, 7, 0));
  104.   matrix.drawLine(31, 0, 31, 15, matrix.Color333(0, 7, 0));
  105.   matrix.drawLine(0, 15, 31, 15, matrix.Color333(0, 7, 0));
  106.   matrix.drawLine(0, 0, 0, 15, matrix.Color333(0, 7, 0));
  107.   matrix.drawLine(0, 0, 31, 15, matrix.Color333(0, 7, 0));
  108.   matrix.drawLine(31, 0, 0, 15, matrix.Color333(0, 7, 0));
  109.   delay(500);
  110.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  111.   delay(500);
  112.   matrix.drawLine(0, 0, 31, 0, matrix.Color333(0, 0, 7));
  113.   matrix.drawLine(31, 0, 31, 15, matrix.Color333(0, 0, 7));
  114.   matrix.drawLine(0, 15, 31, 15, matrix.Color333(0, 0, 7));
  115.   matrix.drawLine(0, 0, 0, 15, matrix.Color333(0, 0, 7));
  116.   matrix.drawLine(0, 0, 31, 15, matrix.Color333(0, 0, 7));
  117.   matrix.drawLine(31, 0, 0, 15, matrix.Color333(0, 0, 7));
  118.   delay(500);
  119.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  120.   delay(500);
  121. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-12 16:52:49

实验场景图

【Arduino】168种传感器模块系列实验(220)---P6全彩16X32单元板图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-12 16:57:07

实验场景图  动态图

【Arduino】168种传感器模块系列实验(220)---P6全彩16X32单元板图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-12 18:33:55

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-12 18:36:25

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百二十:P6全彩LED模组 16X32显示屏单元板 P6-RGB-16X32-8S
  室内全彩8扫电子屏(HX-P6-16X32-A)
  项目程序之四:空心矩形与实心矩形的多彩转换

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百二十:P6全彩LED模组 16X32显示屏单元板 P6-RGB-16X32-8S
  4.   室内全彩8扫电子屏(HX-P6-16X32-A)
  5.   项目程序之四:空心矩形与实心矩形的多彩转换
  6. */
  7. #include <Adafruit_GFX.h>   //核心图形库
  8. #include <RGBmatrixPanel.h> //硬件特定库
  9. #define CLK 8 //必须在这个端口上! (在Mega上使用PIN 11)
  10. #define LAT A3
  11. #define OE  9
  12. #define A   A0
  13. #define B   A1
  14. #define C   A2
  15. //最后一个参数='false'禁用双屏障
  16. RGBmatrixPanel matrix(A, B, C, CLK, LAT, OE, false);
  17. void setup() {
  18.   matrix.begin(); //矩阵开始(启动)
  19. }
  20. void loop() {
  21.   matrix.drawRect(15, 7, 2, 2, matrix.Color333(7, 7, 0));
  22.   delay(500);
  23.   matrix.drawRect(14, 6, 4, 4, matrix.Color333(7, 7, 0));
  24.   delay(500);
  25.   matrix.drawRect(13, 5, 6, 6, matrix.Color333(7, 7, 0));
  26.   delay(500);
  27.   matrix.drawRect(12, 4, 8, 8, matrix.Color333(7, 7, 0));
  28.   delay(500);
  29.   matrix.drawRect(11, 3, 10, 10, matrix.Color333(7, 7, 0));
  30.   delay(500);
  31.   matrix.drawRect(10, 2, 12, 12, matrix.Color333(7, 7, 0));
  32.   delay(500);
  33.   matrix.drawRect(9, 1, 14, 14, matrix.Color333(7, 7, 0));
  34.   delay(500);
  35.   matrix.drawRect(8, 0, 16, 16, matrix.Color333(7, 7, 0));
  36.   delay(500);
  37.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  38.   delay(50);
  39.   matrix.fillRect(8, 0, 16, 16, matrix.Color333(7, 0, 0));
  40.   delay(500);
  41.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  42.   delay(50);
  43.   matrix.fillRect(8, 0, 16, 16, matrix.Color333(0, 0, 7));
  44.   delay(500);
  45.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  46.   delay(50);
  47.   matrix.fillRect(8, 0, 16, 16, matrix.Color333(0, 7, 0));
  48.   delay(500);
  49.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  50.   delay(50);
  51.   matrix.fillRect(8, 0, 16, 16, matrix.Color333(0, 7, 7));
  52.   delay(500);
  53.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  54.   delay(50);
  55.   matrix.fillRect(9, 1, 14, 14,  matrix.Color333(0, 7, 7));
  56.   delay(500);
  57.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  58.   delay(50);
  59.   matrix.fillRect(10, 2, 12, 12, matrix.Color333(0, 7, 7));
  60.   delay(500);
  61.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  62.   delay(50);
  63.   matrix.fillRect(11, 3, 10, 10,  matrix.Color333(0, 7, 7));
  64.   delay(500);
  65.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  66.   delay(50);
  67.   matrix.fillRect(12, 4, 8, 8,  matrix.Color333(0, 7, 7));
  68.   delay(500);
  69.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  70.   delay(50);
  71.   matrix.fillRect(14, 6, 4, 4, matrix.Color333(0, 7, 7));
  72.   delay(500);
  73.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  74.   delay(50);
  75.   matrix.fillRect(15, 7, 2, 2,  matrix.Color333(0, 7, 7));
  76.   delay(500);
  77.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  78.   delay(50);
  79.   matrix.fillScreen(matrix.Color333(7, 0, 0));
  80.   delay(500);
  81.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  82.   delay(50);
  83.   matrix.fillScreen(matrix.Color333(0, 7, 0));
  84.   delay(500);
  85.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  86.   delay(50);
  87.   matrix.fillScreen(matrix.Color333(0, 0, 7));
  88.   delay(500);
  89.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  90.   delay(50);
  91.   matrix.drawRect(0, 0, 32, 16, matrix.Color333(7, 0, 0));
  92.   delay(500);
  93.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  94.   delay(50);
  95.   matrix.drawRect(0, 0, 32, 16, matrix.Color333(0, 7, 0));
  96.   delay(500);
  97.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  98.   delay(50);
  99.   matrix.drawRect(0, 0, 32, 16, matrix.Color333(0, 0, 7));
  100.   delay(500);
  101.   matrix.fillScreen(matrix.Color333(0, 0, 0));
  102.   delay(50);
  103. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-12 18:40:23

实验场景图

【Arduino】168种传感器模块系列实验(220)---P6全彩16X32单元板图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-12 18:46:43

实验场景图  动态图

【Arduino】168种传感器模块系列实验(220)---P6全彩16X32单元板图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-11-12 20:07:10

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail