【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验八十一:8位LED数码管MAX7219模块(支持级联八位串行3个IO口控制)

【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2_第1张图片
【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2_第2张图片
知识点:MAX7219芯片
是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者64个独立的LED。其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态RAM用来存储每一个数据。只有一个外部寄存器用来设置各个LED的段电流。一个方便的四线串行接口可以联接所有通用的微处理器。每个数据可以寻址在更新时不需要改写所有的显示。MAX7219同样允许用户对每一个数据选择编码或者不编码。整个设备包含一个150μA的低功耗关闭模式,模拟和数字亮度控制,一个扫描限制寄存器允许用户显示1-8位数据,还有一个让所有LED发光的检测模式。只需要3个IO口即可驱动8位数码管!数码管显示时无闪烁!支持级联!

【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2_第3张图片

功能特点
1 10MHz连续串行口
2 独立的LED段控制
3 数字的译码与非译码选择
4 150μA的低功耗关闭模式
5 亮度的数字和模拟控制
6 高电压中断显示
7 共阴极LED显示驱动
8 限制回转电流的段驱动来减少EMI(MAX7221)
9 SPI, QSPI, MICROWIRE串行接口(MAX7221)
10 24脚的 DIP和 SO 封装

【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2_第4张图片
内部功能框图

【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2_第5张图片

【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2_第6张图片
【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2_第7张图片
【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2_第8张图片
模块电原理图

【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2_第9张图片

接线说明(以提供的程序为例,可以接任意IO口,
在程序中修改端口定义即可):
VCC→5V
GND→GND
DIN→D2
CS →D3
CLK→D4
【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2_第10张图片

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验八十一: 8位LED数码管MAX7219模块
项目之一:测试显示“87654321”

实验开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
   实验八十四: 8位LED数码管MAX7219模块
   项目之一:测试显示“87654321”
*/

#include "LedControl.h"
// Arduino 引脚 2 至DIN,4 至Clk,3 至ck,设备数量是1个
LedControl lc = LedControl(2, 4, 3, 1);

void setup() {
  // 初始化 MAX7219 器件
  lc.shutdown(0, false); // 启用显示
  lc.setIntensity(0, 5); // 设置亮度级别(0 为最小值,15 为最大值)
  lc.clearDisplay(0);    // 清除显示寄存器
}

void loop() {
  for (int i = 0; i < 8; i++) {
    lc.setDigit(0, i, i + 1, false);
  }
  delay(1000);
}

Arduino实验场景图

【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2_第11张图片
实验开源仿真编程(Linkboy V5.33)

【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2_第12张图片
【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2_第13张图片
【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2_第14张图片

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验八十一: 8位LED数码管MAX7219模块
项目之二:顺序显示23个数字、字母及符号

实验开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
   实验八十四: 8位LED数码管MAX7219模块
   项目之二:顺序显示23个数字、字母及符号
*/

#include "LedControl.h"
// Arduino 引脚 2 至DIN,4 至Clk,3 至ck,设备数量是1个
LedControl lc = LedControl(2, 4, 3, 1);

char chars[23] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',

                   'A', 'b', 'c', 'd', 'E', 'F', 'H', 'L', 'P',

                   '.', '-', '_'
                 };

void setup() {
  // 初始化 MAX7219 器件
  lc.shutdown(0, false); // 启用显示
  lc.setIntensity(0, 5); // 设置亮度级别(0 为最小值,15 为最大值)
  lc.clearDisplay(0);    // 清除显示寄存器
}

void loop() {
  for (int i = 0; i < 23; i++) {
    lc.setChar(0, 0, chars[i], false);
    delay(300);
  }
}

Arduino实验场景图

【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2_第15张图片

你可能感兴趣的:(单片机,嵌入式硬件,Arduino,物联网,机器人,c++,8位LED数码管模块)