Arduino爱好者

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: eagler8

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

[复制链接]
 楼主| 发表于 2022-4-12 17:45 | 显示全部楼层

MAX7219控制点阵屏原理及无依赖库在Arduino上的使用


 楼主| 发表于 2022-4-22 18:34 | 显示全部楼层
8×8 LED矩阵 MAX7219显示模块实验所需硬件清单
Arduino Uno开发 X1
杜邦线 若干(备了9条)
8*8 发光管 1088AS 共阴点阵屏X1
8×8 LED矩阵 MAX7219显示模块X2
Proto Shield 原型扩展(带mini面包板)X1

11.1-19.jpg

传感器模块实验所需软件平台
代码编程 Arduino IDE (版本1.8.19
仿真编程 Linkboy     (版本V4.6.3
图形编程 Mind+  (版本 V1.7.0 RC2.0
以及编玩边学(线上平台https://ide.codepku.com/?type=Arduino
 楼主| 发表于 2022-4-22 18:36 | 显示全部楼层
程序一:快速扫描所有64个点
(1)Arduino参考开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   程序一:快速扫描所有64个点
  4.   下载库 https://www.pjrc.com/teensy/arduino_libraries/Matrix_Sprite.zip
  5.   实验连线:
  6.   VCC  →  5V
  7.   GND  →  GND
  8.   DIN 接 D11 (MOSI)
  9.   CS  接 D10 (SS)
  10.   CLK 接 D13 (SCK)
  11. */

  12. #include <Sprite.h>  // 点阵之前的精灵
  13. #include <Matrix.h>  // 点阵驱动库

  14. const int numChips = 1;

  15. //定义引脚DIN, CLK, CS
  16. Matrix myLeds = Matrix(11, 13, 10, numChips);

  17. void setup() {
  18.   myLeds.clear();//点阵屏初始化
  19. }

  20. void loop() {
  21.   byte x, y;

  22.   // 一次点亮一个 LED,从左到右扫描
  23.   // 从上到下...对于测试矩阵很有用
  24.   for (y = 0; y < 8; y++) {
  25.     for (x = 0; x < (numChips * 8); x++) {
  26.       myLeds.write(x, y, HIGH);
  27.       delay(20);
  28.       myLeds.write(x, y, LOW);
  29.     }
  30.   }
  31. }
复制代码


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

11.1-24.jpg

11.1-23.jpg

 楼主| 发表于 2022-4-22 18:37 | 显示全部楼层
程序二:在屏幕上闪烁欢迎面孔
1Arduino参考开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   程序二:在屏幕上闪烁欢迎面孔
  4.   下载库 https://www.pjrc.com/teensy/arduino_libraries/Matrix_Sprite.zip
  5.   实验连线:
  6.   VCC  →  5V
  7.   GND  →  GND
  8.   DIN 接 D11 (MOSI)
  9.   CS  接 D10 (SS)
  10.   CLK 接 D13 (SCK)
  11. */

  12. #include <Sprite.h>  // 点阵之前的精灵
  13. #include <Matrix.h>  // 点阵驱动库

  14. Matrix myMatrix = Matrix(11, 13, 10);

  15. void setup() {
  16. }

  17. void loop() {
  18.   myMatrix.clear(); //点阵屏初始化

  19.   delay(1000);

  20.   // 打开欢迎笑脸的像素
  21.   myMatrix.write(1, 5, HIGH);
  22.   myMatrix.write(2, 2, HIGH);
  23.   myMatrix.write(2, 6, HIGH);
  24.   myMatrix.write(3, 6, HIGH);
  25.   myMatrix.write(4, 6, HIGH);
  26.   myMatrix.write(5, 2, HIGH);
  27.   myMatrix.write(5, 6, HIGH);
  28.   myMatrix.write(6, 5, HIGH);

  29.   delay(1000);//亮暗各一秒
  30. }
复制代码


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

11.1-25.jpg

 楼主| 发表于 2022-4-22 18:39 | 显示全部楼层
本帖最后由 eagler8 于 2022-4-23 20:57 编辑

程序三:在屏幕上显示动画波形图形(动态波浪)

1Arduino参考开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   程序三:在屏幕上显示动画波形图形
  4.   下载库 https://www.pjrc.com/teensy/arduino_libraries/Matrix_Sprite.zip
  5. */

  6. #include <Sprite.h>  // 点阵之前的精灵
  7. #include <Matrix.h>  // 点阵驱动库

  8. //接线DIN-D11,CLK-D13,CS-D10
  9. Matrix myMatrix = Matrix(11, 13, 10);

  10. //创建一个新的 Sprite 实例,8 像素宽,4 像素高
  11. Sprite wave = Sprite(
  12.                 8, 4,
  13.                 B00011000,
  14.                 B00100100,
  15.                 B01000010,
  16.                 B10000001
  17.               );

  18. void setup(){
  19. }

  20. int x = 0;

  21. void loop(){
  22.   myMatrix.write(x, 2, wave);     // 在屏幕上放置精灵
  23.   myMatrix.write(x - 8, 2, wave); // 再次放置精灵,在屏幕的其他地方
  24.   delay(75);                      // 稍等一下

  25.   myMatrix.clear();               // 为下一个动画帧清屏
  26.   if (x == 8)                     // 如果到达动画序列的结尾
  27.   {
  28.     x = 0;                        // 从头开始
  29.   }
  30.   x++;                            // 将 x 坐标向右推进
  31. }
复制代码


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

11.1-26.jpg

 楼主| 发表于 2022-4-23 20:58 | 显示全部楼层
程序四:四个角落的闪烁光点
(1)实验开源仿真编程(Linkboy V4.63
11.1-27.jpg

 楼主| 发表于 2022-4-23 20:59 | 显示全部楼层
实验场景图

11.1-28.jpg

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

本版积分规则

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

GMT+8, 2023-3-30 06:43 , Processed in 0.111089 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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