用 Arduino + 点阵模块 DIY 一颗“跳动的心”

今天我要做一个跳动的心来拯救单身狗,我要拿起它,向心爱的女生表白!这个就是成品图。

所需材料
  • UNO R3主控版1个
  • 8*8点阵模块
  • 杜邦线若干

接线图

接线对照表

VCC — 5V
GND — GND
DIN — D11 (MOSI)
CS — D10 (SS)
CLK — D13 (SCK)

程序代码
#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);
   }
}
实验效果视频

 


原文 http://zhongbest.com



坐沙发

发表评论