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

来源:互联网 发布:学化妆 知乎 编辑:程序博客网 时间:2024/05/17 07:58

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

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


现在使用MAX7219这个驱动模块



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


 问题注意:

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

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

实验效果



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库文件夹


关于点阵生成,请下载相应的8x8点阵软件

分享地址:http://pan.baidu.com/s/1i50UmxB


#include <LedControl.h>int DIN = 12;int CS =  11;int CLK = 10;byte e[8]=     {0x7C,0x7C,0x60,0x7C,0x7C,0x60,0x7C,0x7C};  //Ebyte d[8]=     {0x78,0x7C,0x66,0x66,0x66,0x66,0x7C,0x78};  //Dbyte u[8]=     {0x66,0x66,0x66,0x66,0x66,0x66,0x7E,0x7E};  //Ubyte c[8]=     {0x7E,0x7E,0x60,0x60,0x60,0x60,0x7E,0x7E};  //Cbyte eight[8]= {0x7E,0x7E,0x66,0x7E,0x7E,0x66,0x7E,0x7E};  //8byte s[8]=     {0x7E,0x7C,0x60,0x7C,0x3E,0x06,0x3E,0x7E};  //Sbyte dot[8]=   {0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18};  //.byte o[8]=     {0x7E,0x7E,0x66,0x66,0x66,0x66,0x7E,0x7E};  //Obyte m[8]=     {0xE7,0xFF,0xFF,0xDB,0xDB,0xDB,0xC3,0xC3};  //MLedControl 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]);  }}




1 0