В данном примере мы подключаем светодиодную матрицу к Arduino, ее еще называют led матрицу. Светодиодная матрица представляет собой модуль со светодиодами. Рассматриваемая нами матрица имеет 8 светодиодов в ширину и 8 в высоту, всего 64 светодиода, управление каждым светодиодом осуществляется при помощи микросхемы MAX7219. В матрице используется динамическая индикация, это означает что каждый столбец загорается поочередно.
Характеристики модуля
unsigned char i; unsigned char j; int Max7219_pinCLK = 10; int Max7219_pinCS = 9; int Max7219_pinDIN = 8; unsigned char disp1[19][8]={ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x60, 0x80, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x60, 0x90, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x60, 0x90, 0x88, 0x40, 0x40, 0x00, 0x00, 0x00, 0x60, 0x90, 0x88, 0x44, 0x40, 0x00, 0x00, 0x00, 0x60, 0x90, 0x88, 0x44, 0x44, 0x00, 0x00, 0x00, 0x60, 0x90, 0x88, 0x44, 0x44, 0x08, 0x00, 0x00, 0x60, 0x90, 0x88, 0x44, 0x44, 0x08, 0x10, 0x00, 0x60, 0x90, 0x88, 0x44, 0x44, 0x08, 0x10, 0x20, 0x60, 0x90, 0x88, 0x44, 0x44, 0x08, 0x10, 0x60, 0x60, 0x90, 0x88, 0x44, 0x44, 0x08, 0x90, 0x60, 0x60, 0x90, 0x88, 0x44, 0x44, 0x88, 0x90, 0x60 }; 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); DATA = DATA<<1; digitalWrite(Max7219_pinCLK,HIGH); } } void Write_Max7219(unsigned char address,unsigned char dat) { digitalWrite(Max7219_pinCS,LOW); Write_Max7219_byte(address); Write_Max7219_byte(dat); digitalWrite(Max7219_pinCS,HIGH); } void Init_MAX7219(void) { Write_Max7219(0x09, 0x00); Write_Max7219(0x0a, 0x03); Write_Max7219(0x0b, 0x07); Write_Max7219(0x0c, 0x01); Write_Max7219(0x0f, 0x00); } void setup() { pinMode(Max7219_pinCLK,OUTPUT); pinMode(Max7219_pinCS,OUTPUT); pinMode(Max7219_pinDIN,OUTPUT); delay(50); Init_MAX7219(); } void loop() { for(j=0;j<19;j++) { for(i=1;i<9;i++) Write_Max7219(i,disp1[j][i-1]); delay(500); } }