亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino Uno驱动MAX7219级联8×8 LED矩阵:从入门到动画显示

所需材料

组件数量
Arduino Uno1
MAX7219驱动8×8 LED矩阵模块N (示例用5块)
跳线(母对母+公对母)若干
2mm亚克力板、M2×10螺丝、M2螺母各若干可选,用于固定矩阵阵列

硬件连接

组装建议

软件开发

库安装

Arduino IDE库管理器搜索安装 LedControl (by wayoda),或从 GitHub 手动安装。

代码结构(四部分)

  1. 图案定义:每只眼用8字节数组(8行);嘴巴用24字节数组(3块×8行)。因setRow比setColumn快8倍,图案需逆时针旋转90°定义。
  2. Setup:初始化LedControl对象,设置级联数量、亮度setIntensity(1)(0-15级,降低功耗适配USB供电)。
  3. Loop:读取串口指令,调用显示函数更新对应矩阵。
  4. 辅助函数:setEyes()、setMouth() 逐行写入数据。

核心代码片段


#include 
LedControl lc=LedControl(13,12,11,5); // DIN,CLK,CS,设备数

byte eyeNormal[8]  = {0x3C,0x42,0xA5,0x81,0xA5,0x99,0x42,0x3C};
byte eyeBlink[8]   = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
byte mouthHappy[24]= {...}; // 3矩阵×8行

void setup() {
  for(int i=0;i<5;i++) { lc.shutdown(i,false); lc.setIntensity(i,1); lc.clearDisplay(i); }
  Serial.begin(9600);
}

void loop() {
  if(Serial.available()) {
    char eyeCmd=Serial.read(); char mouthCmd=Serial.read();
    setEyes(eyeCmd); setMouth(mouthCmd);
  }
}

void setEyes(char c) {
  byte *pat;
  if(c==':') pat=eyeNormal;
  else if(c==';') pat=eyeBlink;
  else if(c=='8') pat=eyeSpooky;
  else return;
  for(int r=0;r<8;r++) { lc.setRow(0,r,pat[r]); lc.setRow(1,r,pat[r]); }
}

串口控制指令表

眼睛指令效果嘴巴指令效果
:正常睁眼)开心
;眨眼|中性
8惊吓眼(难过
D/d大笑
O/o惊讶
P/p吐舌头

使用方法:打开串口监视器(9600),输入两字符如:)回车,表情立即更新。

扩展方向

制造工艺

  1. Satellite CCRMA 套件:构建传感器驱动的音频效果器
  2. Arduino Nano飞行模拟2020控制面板——LCD与CDI显示
  3. Arduino 飞行模拟器 2020 实体开关面板
  4. 自制 Arduino 伊斯兰祷告时间实时时钟
  5. 用 Arduino Nano 与 MAX7219 制作 24×16 LED Pong 游戏机
  6. Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
  7. Arduino UNO 驱动 1.17 英寸 TFT 屏显示图片 (SD 卡读取)
  8. 从零构建智能 Arduino 四足机器人:完整指南
  9. Arduino + MPU6050 姿态控制舵机:SG90 与 MG996R 精准跟随实战
  10. Bolt IoT + Arduino UNO 实现 6 路 LED 无级调光
  11. Arduino 8×8 LED 矩阵翻页时钟 - DIY 实时时钟项目
  12. Arduino Uno 控制 25kHz 4 针 PWM 风扇 - 硬件、代码与测试