Arduino Uno 使用MAX7219驱动单个8*8点阵LED模块

Arduino Uno 使用MAX7219驱动单个8*8点阵LED模块_第1张图片

 

还记得之前做的一个怦然心动的8*8点阵实验吗?

很多小伙伴都会觉得,插口都用完了还能用其他的功能吗?

 

现在使用MAX7219这个驱动模块

Arduino Uno 使用MAX7219驱动单个8*8点阵LED模块_第2张图片

 

只占用3个IO口,就可以控制8*8点阵的显示,非常实用,简单。

 

 问题注意:

 

① 接线的时候,注意方向,在IN的方向接线(输入)

② LED的方向也要注意,如果显示不正常,请转变下安插的方向。

 

实验效果

Arduino Uno 使用MAX7219驱动单个8*8点阵LED模块_第3张图片

 

BOM表

Arduino Uno   x1

MAX7219 LED 8*8点阵模块     x1

跳线若干

 

接线方式

                                  在IN方向的针脚

Arduino Uno    ---     MAX7219

5V                <--->              VCC

GND           <--->              GND

12               <--->              DIN

11               <--->              CS

10               <--->             CLK

 

开源程序

先下载库文件

https://github.com/wayoda/LedControl

把下载的库文件夹存放在Arduino 安装目录的libraries库文件夹

程序&库&软件 打包下载:https://u16460183.ctfile.com/fs/16460183-296052687

文件夹说明:

LedControl-master   —— MAX7219库(请复制在Arduino的库目录里)

MAX7219 8x8点阵软件 

LS_MAX7219_8x8 —— 主程序

 

#include 

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[i]);
  }
}

 

 

 

 

 

 

 

你可能感兴趣的:(Arduino,系列实验,arduino,max7219,88LED点阵)