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

【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)

实验二十二:MAX7219点阵显示模块(8X8 LED共阴屏幕)

MAX7219

是美国MAXIM 公司推出的多位LED 显示驱动器,采用3 线串行接口传送数据,可直接与单片机接口连接,用户能方便修改其内部参数,以实现多位LED 显示。它内含硬件动态扫描电路、BCD译码器、段驱动器和位驱动器。此外,其内部还含有8X8 位静态RAM,用于存放8 个数字的显示数据。显然,它可直接驱动64 段LED点阵显示器。当多片MAX7219 级联时,可控制更多的LED 点阵显示器。显示的数据通过单片机数据处理后,送给MAX7219 显示。

串行输入/输出共阴极显示驱动器
MAX7219/MAX7221是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者64个独立的LED。其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态RAM用来存储每一个数据。 只有一个外部寄存器用来设置各个LED的段电流。 MAX7221与SPI?、 QSPI?以及 MICROWIRE?相兼容,同时它有限制回转电流的段驱动来减少EMI(电磁干扰)。 一个方便的四线串行接口可以联接所有通用的微处理器。 每个数据可以寻址在更新时不需要改写所有的显示。MAX7219/MAX7221同样允许用户对每一个数据选择编码或者不编码。 整个设备包含一个150μA的低功耗关闭模式,模拟和数字亮度控制,一个扫描限制寄存器允许用户显示1-8位数据,还有一个让所有LED发光的检测模式。

MAX7219内部结构图

作为一块专用的LED显示驱动芯片,MAX7219能够以动态形式驱动8位数码显示器。还可以用 n 片MAX7219进行级连,以驱动8 * n位数码显示。MAX7219与数码显示器的之间的电路极为简单,几乎连限流电阻都不用。MAX7219与单片机之间也仅仅需要连接3条引线。当单片机把数据送到MAX7219后,它就可以独立的进行动态扫描显示,无需单片机再进行干预。对于单片机来说,这些数码显示器,看起来似乎都是在进行静态显示,可以说是驱动多位数码显示器的最佳选择。

MAX7219各引脚的功能:
DIN:串行数据输入端
DOUT:串行数据输出端,用于级连扩展
LOAD:装载数据输入
CLK:串行时钟输入
DIG0~DIG7:8位LED位选线,从共阴极LED中吸入电流
SEG A~SEG G DP     7段驱动和小数点驱动
ISET:  通过一个10k电阻和Vcc相连,设置段电流

技术参数:
种类: LED显示驱动器
系列: MAX7219
数位数量: 8
片段数量: 64
安装风格: SMD/SMT
封装 / 箱体: SOIC-Wide-24
工作电源电压: 4 V to 5.5 V
电源电流— 大值: 330 mA
小工作温度: - 40 C
大工作温度: + 85 C
封装: Reel或Tube
高度: 2.35 mm
长度: 15.6 mm
产品: LED Display Drivers
宽度: 7.6 mm
高电平输出电流: - 2 mA
低电平输出电流: 5 mA
Pd-功率耗散: 941 mW
工厂包装数量: 1000
零件号别名: MAX7219
单位重量: 734.500 mg

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

MAX7219的应用电路

MAX7219点阵显示模块(8X8 LED共阴屏幕)

模块参数:
1.单个模块可以驱动一个8*8共阴点阵
2.模块工作电压:5V
3.模块尺寸:长5厘米X宽3.2厘米X高1.5厘米
4.带4个固定螺丝孔,孔径3mm,可使用M3铜柱固定
5.模块带输入输出接口,支持多个模块级联

模块电原理图

8*8 发光管点阵 1088AS 
3mm共阴 8X8 高亮 红色

★ 能在低电压、小电流条件下驱动发光
★ 发光响应时间极短(<0.1μs),高频特性好,单色性好,亮度高
★ 体积小,重量轻,抗冲击性能好.固态封装,封装方式为灌胶型,稳定性高
★ 寿命长,使用寿命在5万小时以上
★ 可连续扫描驱动各字节
★ 良好的显示效果、视角宽
★ 推荐恒流使用,恒压会出现亮度不均匀现象
★ 表面有保护膜的产品,可以在使用前撕下来
★ 焊接温度: 260℃ 停留时间最长5秒
★ 当工作温度高于25℃时,Ifm,ifp和Id必须降低;电流降低率是-036mA/℃(直流驱动),或-0.86mA/℃(脉冲驱动)功耗率是-0.75mW/℃。产品的工作电流不能大于对应工作温度条件Ifm或Ifp的60%。
★ 蓝色,翠绿色,白色请采取防静电措施

接线方式:
(在IN方向的针脚)
Arduino Uno    ---     MAX7219
5V              <--->              VCC
GND           <--->              GND
12               <--->              DIN
11               <--->              CS
10               <--->              CLK

实验接线:
1.模块左边为输入端口,右边为输出端口。
2.控制单个模块时,只需要将输入端口接到单片机
3.多个模块级联时,第1个模块的输入端接单片机,输出端接第2个模块的输入端,第2个模块的输出端接第3个模块的输入端,以此类推...

/*

【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)

实验二十二:MAX7219点阵显示模块(8X8 LED共阴屏幕)

安装库:IDE--工具--管理库--搜索“LedControl”--安装

实验源代码

*/

#include <LedControl.h>

int DIN = 12;

int CS =  11;

int CLK = 10;

byte e[8]=    {0x7C,0x7C,0x60,0x7C,0x7C,0x60,0x7C,0x7C};  //E

byte d[8]=    {0x78,0x7C,0x66,0x66,0x66,0x66,0x7C,0x78};  //D

byte u[8]=    {0x66,0x66,0x66,0x66,0x66,0x66,0x7E,0x7E};  //U

byte c[8]=    {0x7E,0x7E,0x60,0x60,0x60,0x60,0x7E,0x7E};  //C

byte eight[8]= {0x7E,0x7E,0x66,0x7E,0x7E,0x66,0x7E,0x7E};  //8

byte s[8]=    {0x7E,0x7C,0x60,0x7C,0x3E,0x06,0x3E,0x7E};  //S

byte dot[8]=  {0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18};  //.

byte o[8]=    {0x7E,0x7E,0x66,0x66,0x66,0x66,0x7E,0x7E};  //O

byte m[8]=    {0xE7,0xFF,0xFF,0xDB,0xDB,0xDB,0xC3,0xC3};  //M

LedControl lc=LedControl(DIN,CLK,CS,4);

void setup(){

lc.shutdown(0,false);    //启动时,MAX72XX处于省电模式

lc.setIntensity(0,8);    //将亮度设置为最大值

lc.clearDisplay(0);      //清除显示

}

void loop(){

  byte smile[8]=  {0x3C,0x42,0xA5,0x81,0xA5,0x99,0x42,0x3C};//笑脸

  byte neutral[8]= {0x3C,0x42,0xA5,0x81,0xBD,0x81,0x42,0x3C};//标准脸  

  printByte(eight);//显示8

  delay(1000);//延时1秒

  printByte(neutral);//显示标准脸

  delay(1000);

}

//点阵显示函数

void printByte(byte character [])

{

  int i = 0;

  for(i=0;i<8;i++)

  {

  lc.setRow(0,i,character);

  }

}

  

图形编程

仿真编程

/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验二十二:MAX7219点阵显示模块(8X8 LED共阴)
项目:全屏亮暗各1秒
引脚定义
DIN = D11
CS = D10
CLK = D13
*/ #include <SPI.h> const byte sprite[2][8] = {
{B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111},
{B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000},
}; const byte DECODEMODE = 0x09;
const byte INTENSITY = 0x0a;
const byte SCANLIMIT = 0x0b;
const byte SHUTDOWN = 0x0c;
const byte DISPLAYTEST = 0x0f; void max7219(const byte reg, const byte data) {
digitalWrite(SS, LOW);
SPI.transfer(reg);
SPI.transfer(data);
digitalWrite(SS, HIGH);
} void setup() {
SPI.begin(); max7219(SCANLIMIT, 7);
max7219(DECODEMODE, 0);
max7219(INTENSITY, 2);
max7219(DISPLAYTEST, 0);
max7219(SHUTDOWN, 1); for(byte i=0; i<8; i++) {
max7219(i+1, 0);
}
} void loop() {
for(byte j=0; j<2; j++) {
for(byte i=0; i<8; i++) {
max7219(i+1, sprite[j]);
}
delay(1000);
}
}

  

/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验二十二:MAX7219点阵显示模块(8X8 LED共阴)
项目四:全屏红心跳动
引脚定义
DIN = D11
CS = D10
CLK = D13
*/ #include <SPI.h> const byte sprite[2][8] = {
{ 0x00, 0x66, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, 0x18 },
{ 0x00, 0x00, 0x24, 0x7E, 0x7E, 0x3C, 0x18, 0x00 }
}; const byte DECODEMODE = 0x09;
const byte INTENSITY = 0x0a;
const byte SCANLIMIT = 0x0b;
const byte SHUTDOWN = 0x0c;
const byte DISPLAYTEST = 0x0f; void max7219(const byte reg, const byte data) {
digitalWrite(SS, LOW);
SPI.transfer(reg);
SPI.transfer(data);
digitalWrite(SS, HIGH);
} void setup() {
SPI.begin(); max7219(SCANLIMIT, 7);
max7219(DECODEMODE, 0);
max7219(INTENSITY, 2);
max7219(DISPLAYTEST, 0);
max7219(SHUTDOWN, 1); for(byte i=0; i<8; i++) {
max7219(i+1, 0);
}
} void loop() {
for(byte j=0; j<2; j++) {
for(byte i=0; i<8; i++) {
max7219(i+1, sprite[j][i]);
}
delay(500);
}
}

  

「雕爷学编程」Arduino动手做(22)——8X8 LED点阵MAX7219屏的更多相关文章

  1. 「雕爷学编程」Arduino动手做(15)——手指侦测心跳模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  2. 「雕爷学编程」Arduino动手做(9)——火焰传感器模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  3. 「雕爷学编程」Arduino动手做(10)——敲击传感器模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  4. 「雕爷学编程」Arduino动手做(14)——倾斜角度模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  5. 「雕爷学编程」Arduino动手做(13)——触摸开关模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  6. 「雕爷学编程」Arduino动手做(12)——霍尔磁力模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  7. 「雕爷学编程」Arduino动手做(11)——金属触摸模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  8. 「雕爷学编程」Arduino动手做(8)——湿度传感器模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  9. 「雕爷学编程」Arduino动手做(7)——旋转电位器模块

    37款传感器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验 ...

  10. 「雕爷学编程」Arduino动手做(41)---激光接收管模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...

随机推荐

  1. solr管理集合

    其实完全版的管理,在web页面上就有. 同时,在官网文档上,也有:https://lucene.apache.org/solr/guide/6_6/coreadmin-api.html#CoreAdm ...

  2. Git基本操作和使用

    基本命令: git config git init git clone git remote git fetch git commit git rebase git push 本地基本操作: git ...

  3. QT 执行windows cmd 命令并读取结果

    1,写好命令, 2,用QProcess执行,等待完成(有超时), 3,读取结果 注意形如“Program Files”的有 空格 的路径,要加上双引号. QProcess process; QStri ...

  4. 使用3种协议搭建yum仓库

    制作本地yum仓库 开启服务一般要关闭防火墙,selinux之后再reboot ## 方案一:FTP协议------ftp://IP 下载vsftpd---启动vsftpd---ftp://10.0. ...

  5. IIS 搭网站(一)

    搭建类型win+IIs+asp+access(一) 第一步首先保证虚拟机的系统软盘是连接状态,如下图状态即可 第二步: 第三步: 第四步: 第五步: 第六步:这个时候就会自动搜索软盘里面的数据自动安装 ...

  6. MySQL——视图/触发器/事务/存储过程/函数/流程控制

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

  7. Node 内存泄漏排查案例

    背景 在阿里云上看到我运行了一段时间的程序,发现 memory 一项基本是在稳步提升,就知道有内存泄漏的情况出现.如下图 近三日从 35% 升到 40%,缓慢而坚定的提升. 代码 排查此问题需要分析其 ...

  8. E. Paint the Tree 树形dp

    E. Paint the Tree 题目大意:给你一棵树,每一个点都可以染k种颜色,你拥有无数种颜色,每一种颜色最多使用2次,如果一条边的两个节点拥有同一种颜色,那么就说 这条边是饱和的,一个树的价值 ...

  9. keepalived高可用服务配置管理

    实验环境: 主机 ipaddress 服务 备注 k8s-master1 10.0.0.63 nginx k8s-master2 10.0.0.64 nginx k8s-node1 10.0.0.65 ...

  10. 【Linux基础总结】Linux基本环境

    Linux基本环境 对Linux的基础认识 虚拟机进入终端: [root@hadoop-senior Desktop] # 用户名 主机名 所在目录名称 #:表示当前用户属于root用户,超级管理员用 ...