LED Matris-modul 8x8

Tack vara det kraftfulla drivchippet MAX7219 så kan varje lysdiod i den här modulen styras individuellt och ljusstyrkan kan  ställas in för alla lysdioder i 16 steg. Det finns ett färdigt kodbibliotek tillgängligt för nerladdning direkt i Arduinos kod-editor vilket gör det mycket enkelt att skriva program för att styra modulen. Här nedan följer ett enkelt kodexempel för Arduino som visar texten "BYGGAROBOT.SE" bokstav för bokstav.

#include <avr/pgmspace.h>
#include <LedControl.h>

// Visa varje bildruta i 500ms
#define FRAME_TIME 500

LedControl ledmatrix = LedControl(2, 3, 4, 1); // Data = pin 2, Clock = pin 3, Load = pin 4, Bara en LED-modul är inkopplad

// Definiera alla bildrutor.
// De lagras direkt i programminnet för att spara utrymme i dataminnet.
const char frames[][8] PROGMEM = {
  {
    B11111100,
    B11000110,
    B11000110,
    B11111000,
    B11000110,
    B11000011,
    B11000011,
    B11111100
  },
  {
    B11000011,
    B11000011,
    B01100110,
    B00111100,
    B00011000,
    B00011000,
    B00011000,
    B00011000
  },
  {
    B00111100,
    B01100110,
    B11000000,
    B11000000,
    B11001111,
    B11000011,
    B01100110,
    B00111000
  },
  {
    B00111100,
    B01100110,
    B11000000,
    B11000000,
    B11001111,
    B11000011,
    B01100110,
    B00111000
  },
  {
    B00011000,
    B00111100,
    B01100110,
    B11000011,
    B11111111,
    B11000011,
    B11000011,
    B11000011
  },
  {
    B11111100,
    B11000110,
    B11000110,
    B11111000,
    B11001100,
    B11000110,
    B11000011,
    B11000011
  },
  {
    B00111100,
    B01100110,
    B11000011,
    B11000011,
    B11000011,
    B11000011,
    B01100110,
    B00111000
  },
  {
    B11111100,
    B11000110,
    B11000110,
    B11111000,
    B11000110,
    B11000011,
    B11000011,
    B11111100
  },
  {
    B00111100,
    B01100110,
    B11000011,
    B11000011,
    B11000011,
    B11000011,
    B01100110,
    B00111000
  },
  {
    B11111111,
    B00011000,
    B00011000,
    B00011000,
    B00011000,
    B00011000,
    B00011000,
    B00011000
  },
  {
    B00000000,
    B00000000,
    B00000000,
    B00000000,
    B00000000,
    B00000000,
    B00011000,
    B00011000
  },
  {
    B01111110,
    B11000011,
    B11000000,
    B01111100,
    B00000110,
    B00000011,
    B11000011,
    B01111110
  },
  {
    B11111110,
    B11000000,
    B11000000,
    B11111000,
    B11000000,
    B11000000,
    B11000000,
    B11111111
  },
  {
    B00000000,
    B00000000,
    B00000000,
    B00000000,
    B00000000,
    B00000000,
    B00000000,
    B00000000
  }
};


void setup() {
  ledmatrix.shutdown(0, false);
  ledmatrix.setIntensity(0, 8);
  ledmatrix.clearDisplay(0);
}

void loop() {
  for (int i = 0; i < sizeof(frames) / sizeof(frames[0]); i++) {
    set_matrix(0, frames[i]);
    delay(FRAME_TIME);
  }
}

void set_matrix(int addr, const char *image) {
  for (int row = 0; row < 8; row++) {
    ledmatrix.setRow(addr, row, image[row]);
  }
}

Här är en film som visar resultatet av koden:

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *

Kundvagn