Вот прикупил у братцев наших... китайцев вот такую штуку... пришел мне конструктор =) пришлось доставать с полки паяльную станцию (опыт то не пропьешь ) вот даташит на MAX7219 Чувствую будет у меня много вопросов с адресами Кроме демо надыбал вот этот код Код (Text): #include "LedControl.h" // нужна данная библиотека LedControl lc=LedControl(12,11,10); // подключенные пины // pin 12 подключен к DIN // pin 11 подключен CLK // pin 10 подключен CS void setup() { // the zero refers to the MAX7219 number, it is zero for 1 chip lc.shutdown(0,false);// выключите энергосбережения, вкл. дисплей lc.setIntensity(0,1);// Устанавливаем яркость (0~15 возможные значения) lc.clearDisplay(0);// очистить экран } void loop() { for (int row=0; row<8; row++) { for (int col=0; col<8; col++) { lc.setLed(0,col,row,true); // включается светодиод столбец, строка delay(10); lc.setLed(0,col,row,false); // выключается светодиод столбец, строка delay(10); } } } Ждите скоро будет много вопросов =)))))
Есть такой тестовый скетч ещё. Код (Text): unsigned char i; unsigned char j; /*Port Definitions*/ int Max7219_pinCLK = 11; int Max7219_pinCS = 10; int Max7219_pinDIN = 12; unsigned char disp1[38][8]={ {0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//0 {0x10,0x18,0x14,0x10,0x10,0x10,0x10,0x10},//1 {0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E},//2 {0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0},//3 {0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x8},//4 {0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0},//5 {0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x0},//6 {0x3E,0x22,0x4,0x8,0x8,0x8,0x8,0x8},//7 {0x0,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E},//8 {0x3E,0x22,0x22,0x3E,0x2,0x2,0x2,0x3E},//9 {0x8,0x14,0x22,0x3E,0x22,0x22,0x22,0x22},//A {0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x0},//B {0x3C,0x40,0x40,0x40,0x40,0x40,0x3C,0x0},//C {0x7C,0x42,0x42,0x42,0x42,0x42,0x7C,0x0},//D {0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x7C},//E {0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x40},//F {0x3C,0x40,0x40,0x40,0x40,0x44,0x44,0x3C},//G {0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44},//H {0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x7C},//I {0x3C,0x8,0x8,0x8,0x8,0x8,0x48,0x30},//J {0x0,0x24,0x28,0x30,0x20,0x30,0x28,0x24},//K {0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C},//L {0x81,0xC3,0xA5,0x99,0x81,0x81,0x81,0x81},//M {0x0,0x42,0x62,0x52,0x4A,0x46,0x42,0x0},//N {0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//O {0x3C,0x22,0x22,0x22,0x3C,0x20,0x20,0x20},//P {0x1C,0x22,0x22,0x22,0x22,0x26,0x22,0x1D},//Q {0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21},//R {0x0,0x1E,0x20,0x20,0x3E,0x2,0x2,0x3C},//S {0x0,0x3E,0x8,0x8,0x8,0x8,0x8,0x8},//T {0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1C},//U {0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18},//V {0x0,0x49,0x49,0x49,0x49,0x2A,0x1C,0x0},//W {0x0,0x41,0x22,0x14,0x8,0x14,0x22,0x41},//X {0x41,0x22,0x14,0x8,0x8,0x8,0x8,0x8},//Y {0x0,0x7F,0x2,0x4,0x8,0x10,0x20,0x7F},//Z }; void Write_Max7219_byte(unsigned char DATA) { unsigned char i; digitalWrite(Max7219_pinCS,LOW); for(i=8;i>=1;i--) { digitalWrite(Max7219_pinCLK,LOW); digitalWrite(Max7219_pinDIN,DATA&0x80);// Extracting a bit data DATA = DATA<<1; digitalWrite(Max7219_pinCLK,HIGH); } } void Write_Max7219(unsigned char address,unsigned char dat) { digitalWrite(Max7219_pinCS,LOW); Write_Max7219_byte(address); //address,code of LED Write_Max7219_byte(dat); //data,figure on LED digitalWrite(Max7219_pinCS,HIGH); } void Init_MAX7219(void) { Write_Max7219(0x09, 0x00); //decoding :BCD Write_Max7219(0x0a, 0x03); //brightness Write_Max7219(0x0b, 0x07); //scanlimit;8 LEDs Write_Max7219(0x0c, 0x01); //power-down mode:0,normal mode:1 Write_Max7219(0x0f, 0x00); //test display:1;EOT,display:0 } void setup() { pinMode(Max7219_pinCLK,OUTPUT); pinMode(Max7219_pinCS,OUTPUT); pinMode(Max7219_pinDIN,OUTPUT); delay(50); Init_MAX7219(); } void loop() { for(j=0;j<38;j++) { for(i=1;i<9;i++) Write_Max7219(i,disp1[j][i-1]); delay(500); } }
вот бегущая строка ещё , если кому надо Код (Text): //We always have to include the library #include "LedControl.h" //pin 12 is connected to the DataIn //pin 11 is connected to the CLK //pin 10 is connected to LOAD //LedControl(int dataPin, int clkPin, int csPin, int numDevices); LedControl lc=LedControl(12,11,10,1); void setup() { //The MAX72XX is in power-saving mode on startup, we have to do a wakeup call lc.shutdown(0,false); //Set the brightness to a medium values (0~15 possible values) lc.setIntensity(0,2); //and clear the display lc.clearDisplay(0); } #define SP {0, 0, 0, 0, 0} //Espacio #define EX {0, 125, 0, 0, 0} //Exclamacion ! #define A {31, 36, 68, 36, 31} #define B {127, 73, 73, 73, 54,} #define C {62, 65, 65, 65, 34} #define D {127, 65, 65, 34, 28} #define E {127, 73, 73, 65, 65} #define F {127, 72, 72, 72, 64} #define G {62, 65, 65, 69, 38} #define H {127, 8, 8, 8, 127} #define I {0, 65, 127, 65, 0} #define J {2, 1, 1, 1, 126} #define K {127, 8, 20, 34, 65} #define L {127, 1, 1, 1, 1} #define M {127, 32, 16, 32, 127} #define N {127, 32, 16, 8, 127} #define O {62, 65, 65, 65, 62} #define P {127, 72, 72, 72, 48} #define Q {62, 65, 69, 66, 61} #define R {127, 72, 76, 74, 49} #define S {50, 73, 73, 73, 38} #define T {64, 64, 127, 64, 64} #define U {126, 1, 1, 1, 126} #define V {124, 2, 1, 2, 124} #define W {126, 1, 6, 1, 126} #define X {99, 20, 8, 20, 99} #define Y {96, 16, 15, 16, 96} #define Z {67, 69, 73, 81, 97} //Escribimos la frase separando cada letra por comas //En el primer numero lo adaptaremos la longitud de la frase (caracteres) byte frase[5][5]={H,O,L,A,SP}; int largo = sizeof(frase)/5; int gnd[18]={-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12}; void loop() { for (int letra=0; letra<largo; letra++){ for (int desplaza = 18; desplaza>=5; desplaza--) { for (int i=0; i<5; i++){ lc.setRow(0,gnd[i+desplaza-5],frase[letra][i]); } delay(100); // speed of animation lc.clearDisplay(0); } if(letra == largo){ letra = 0;} }//end for letra }