Booyaaah

UUUOOOOUUUGH

Time to get lucky ooough uuough

![[ShootThemUp.png]]

this was written with phone

Лабораторная работа № 6

Вывод фигур с помощью светодиодной матрицей 8x8

Hello guys its markplier

Цель работы

В этом эксперименте мы рассмотрим каскадное подключение нескольких микросхем 74НС595, что позволит, используя 3 вывода Arduino, управлять множеством контактов, что будет продемонстрировано в примере вывода фигур на экран светодиодной матрицы 8x8.

Матрица была подключена без микросхем, в силу их отсутствия.

Диаграмма схемы(рис 1):

Рисунок 1

Код:

Массив подключенных пинов разделенных на строки и колонны.

int R[] = {2,7,A5,5,13,A4,12,A2};  

int C[] = {6,11,10,3,A3,4,8,9};    

Массив значении для пинов которая рисует сердце. Значение 1 означает что LED включен, а 0 отключен.

unsigned char biglove[8][8] =    

{  

  0,0,0,0,0,0,0,0,  

  0,1,1,0,0,1,1,0,  

  1,1,1,1,1,1,1,1,  

  1,1,1,1,1,1,1,1,  

  1,1,1,1,1,1,1,1,  

  0,1,1,1,1,1,1,0,  

  0,0,1,1,1,1,0,0,  

  0,0,0,1,1,0,0,0,  

};  

Массив значении для пинов которая рисует маленькое сердце.

unsigned char smalllove[8][8] =   

{  

  0,0,0,0,0,0,0,0,  

  0,0,0,0,0,0,0,0,  

  0,0,1,0,0,1,0,0,  

  0,1,1,1,1,1,1,0,  

  0,1,1,1,1,1,1,0,  

  0,0,1,1,1,1,0,0,  

  0,0,0,1,1,0,0,0,  

  0,0,0,0,0,0,0,0,  

};  

Назначается каждый пин на режим выхода сигнала.

void setup()  

{  

 for(int i = 0;i<8;i++)  

 {  

    pinMode(R[i],OUTPUT);  

    pinMode(C[i],OUTPUT);  

  }  

}  

void loop()  

{  

Вызов функции отображения рисунка.

  for(int i = 0 ; i < 100 ; i++)        

  {  

    Display(biglove);                   

  }  

  for(int i = 0 ; i < 50 ; i++)         

  {     

    Display(smalllove);                 

  }  

}  

Назначается значение на пины, тем самым отображая рисунок на матрице.

void Display(unsigned char dat[8][8])    

{  

  for(int c = 0; c<8;c++)  

  {  

    digitalWrite(C[c],LOW);//use thr column

    //loop

    for(int r = 0;r<8;r++)  

    {  

      digitalWrite(R[r],dat[r][c]);  

    }  

    delay(1);  

    Clear();  //Remove empty display light

  }  

}  

Очищается матрица.

void Clear()                          

{  

  for(int i = 0;i<8;i++)  

  {  

    digitalWrite(R[i],LOW);  

    digitalWrite(C[i],HIGH);  

  }  

}  

Собранная схема(рис 2)

Рисунок 2