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