Arduino爱好者

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: eagler8

[经验] 【Arduino】108种传感器系列实验(22)---MAX7219点阵模块

[复制链接]
 楼主| 发表于 2022-4-23 21:01 | 显示全部楼层
程序五:循环变幻对角线光点
1)实验开源仿真编程(Linkboy V4.63

11.1-29.jpg

 楼主| 发表于 2022-4-23 21:02 | 显示全部楼层
(2)实验场景图

11.1-30.jpg

 楼主| 发表于 2022-4-23 21:03 | 显示全部楼层
程序六:间隔一秒,满屏闪烁
1)实验开源图形编程(Mind+、编玩边学)
设置满屏亮灯

11.1-31.jpg

 楼主| 发表于 2022-4-23 21:03 | 显示全部楼层
设置满屏灭灯

11.1-32.jpg

 楼主| 发表于 2022-4-23 21:04 | 显示全部楼层
完成编程

11.1-33.jpg

 楼主| 发表于 2022-4-23 21:05 | 显示全部楼层
2)实验场景图

11.1-34.jpg

 楼主| 发表于 2022-4-29 18:07 | 显示全部楼层
程序七:三种图案的闪烁变脸
1)实验开源图形编程(Mind+、编玩边学)

11.1-35.jpg

 楼主| 发表于 2022-4-29 18:08 | 显示全部楼层
2)实验场景图

11.1-36.jpg

 楼主| 发表于 2022-4-29 18:09 | 显示全部楼层
11.1-37.jpg
 楼主| 发表于 2022-4-29 18:10 | 显示全部楼层
程序八:快速显示字符,逐点刷屏
1Arduino参考开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   程序八:快速显示字符,逐点刷屏
  4. */

  5. //导入驱动库
  6. #include "LedControl.h"
  7. //定义点阵屏的引脚,接线DIN-D11,CLK-D13,CS-D10
  8. LedControl lc = LedControl(11, 13, 10, 1);

  9. //我们总是在显示更新之间等待一段时间
  10. unsigned long delaytime = 100;

  11. void setup() {
  12.   //MAX72XX 启动时处于省电模式,我们得叫醒
  13.   lc.shutdown(0, false);
  14.   //将亮度设置为中等值
  15.   lc.setIntensity(0, 8);
  16.   //并清除显示
  17.   lc.clearDisplay(0);
  18. }

  19. //快速显示字符
  20. void writeArduinoOnMatrix() {
  21.   //这里是字符的数据
  22.   byte a[5] = {B01111110, B10001000, B10001000, B10001000, B01111110};
  23.   byte r[5] = {B00111110, B00010000, B00100000, B00100000, B00010000};
  24.   byte d[5] = {B00011100, B00100010, B00100010, B00010010, B11111110};
  25.   byte u[5] = {B00111100, B00000010, B00000010, B00000100, B00111110};
  26.   byte i[5] = {B00000000, B00100010, B10111110, B00000010, B00000000};
  27.   byte n[5] = {B00111110, B00010000, B00100000, B00100000, B00011110};
  28.   byte o[5] = {B00011100, B00100010, B00100010, B00100010, B00011100};

  29.   //现在以一个小的延迟一个一个地显示它们
  30.   lc.setRow(0, 0, a[0]);
  31.   lc.setRow(0, 1, a[1]);
  32.   lc.setRow(0, 2, a[2]);
  33.   lc.setRow(0, 3, a[3]);
  34.   lc.setRow(0, 4, a[4]);
  35.   delay(delaytime);
  36.   lc.setRow(0, 0, r[0]);
  37.   lc.setRow(0, 1, r[1]);
  38.   lc.setRow(0, 2, r[2]);
  39.   lc.setRow(0, 3, r[3]);
  40.   lc.setRow(0, 4, r[4]);
  41.   delay(delaytime);
  42.   lc.setRow(0, 0, d[0]);
  43.   lc.setRow(0, 1, d[1]);
  44.   lc.setRow(0, 2, d[2]);
  45.   lc.setRow(0, 3, d[3]);
  46.   lc.setRow(0, 4, d[4]);
  47.   delay(delaytime);
  48.   lc.setRow(0, 0, u[0]);
  49.   lc.setRow(0, 1, u[1]);
  50.   lc.setRow(0, 2, u[2]);
  51.   lc.setRow(0, 3, u[3]);
  52.   lc.setRow(0, 4, u[4]);
  53.   delay(delaytime);
  54.   lc.setRow(0, 0, i[0]);
  55.   lc.setRow(0, 1, i[1]);
  56.   lc.setRow(0, 2, i[2]);
  57.   lc.setRow(0, 3, i[3]);
  58.   lc.setRow(0, 4, i[4]);
  59.   delay(delaytime);
  60.   lc.setRow(0, 0, n[0]);
  61.   lc.setRow(0, 1, n[1]);
  62.   lc.setRow(0, 2, n[2]);
  63.   lc.setRow(0, 3, n[3]);
  64.   lc.setRow(0, 4, n[4]);
  65.   delay(delaytime);
  66.   lc.setRow(0, 0, o[0]);
  67.   lc.setRow(0, 1, o[1]);
  68.   lc.setRow(0, 2, o[2]);
  69.   lc.setRow(0, 3, o[3]);
  70.   lc.setRow(0, 4, o[4]);
  71.   delay(delaytime);
  72.   lc.setRow(0, 0, 0);
  73.   lc.setRow(0, 1, 0);
  74.   lc.setRow(0, 2, 0);
  75.   lc.setRow(0, 3, 0);
  76.   lc.setRow(0, 4, 0);
  77.   delay(delaytime);
  78. }

  79. /*
  80.   此功能连续点亮一些 LED。
  81.   该模式将在每一行上重复。
  82.   该模式将与行号一起闪烁。
  83.   行号 4 (index==3) 将闪烁 4 次,以此类推。
  84. */
  85. void rows() {
  86.   for (int row = 0; row < 8; row++) {
  87.     delay(delaytime);
  88.     lc.setRow(0, row, B10100000);
  89.     delay(delaytime);
  90.     lc.setRow(0, row, (byte)0);
  91.     for (int i = 0; i < row; i++) {
  92.       delay(delaytime);
  93.       lc.setRow(0, row, B10100000);
  94.       delay(delaytime);
  95.       lc.setRow(0, row, (byte)0);
  96.     }
  97.   }
  98. }

  99. /*
  100.   此功能点亮一列中的一些 LED。
  101.   该模式将在每一列上重复。
  102.   该模式将与列号一起闪烁。
  103.   第 4 列(索引==3)将闪烁 4 次,以此类推。
  104. */
  105. void columns() {
  106.   for (int col = 0; col < 8; col++) {
  107.     delay(delaytime);
  108.     lc.setColumn(0, col, B10100000);
  109.     delay(delaytime);
  110.     lc.setColumn(0, col, (byte)0);
  111.     for (int i = 0; i < col; i++) {
  112.       delay(delaytime);
  113.       lc.setColumn(0, col, B10100000);
  114.       delay(delaytime);
  115.       lc.setColumn(0, col, (byte)0);
  116.     }
  117.   }
  118. }

  119. /*
  120.   此功能将点亮矩阵上的每个 Led。
  121.   LED 将与行号一起闪烁。
  122.   行号 4 (index==3) 将闪烁 4 次,以此类推。
  123. */
  124. void single() {
  125.   for (int row = 0; row < 8; row++) {
  126.     for (int col = 0; col < 8; col++) {
  127.       delay(delaytime);
  128.       lc.setLed(0, row, col, true);
  129.       delay(delaytime);
  130.       for (int i = 0; i < col; i++) {
  131.         lc.setLed(0, row, col, false);
  132.         delay(delaytime);
  133.         lc.setLed(0, row, col, true);
  134.         delay(delaytime);
  135.       }
  136.     }
  137.   }
  138. }

  139. //循环写入
  140. void loop() {
  141.   writeArduinoOnMatrix();
  142.   rows();
  143.   columns();
  144.   single();
  145. }
复制代码


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

本版积分规则

小黑屋|Archiver|手机版|好玩手机游戏盒子|196体育|Arduino爱好者

GMT+8, 2023-6-3 10:04 , Processed in 0.073625 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表