/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Arduino UNO
//
////////////////////////
//
//программа для LED КУБА вместо светодиодной матрицы 8*8, и max7219 //
#include "LedControl.h"//подключаем данную библиотеку
int i=0;int j=0;int k=1;
LedControl LC = LedControl(12, 11, 10, 2);// создаём объект класса для 2 индикаторов
// при этом выводы 12-DIN 11-CLK 10-CS //
void setup()
{
LC.shutdown(0, false);//выключаем энергосберегающий режим
LC.setIntensity(0, 0);// устанавливаем интенсивность в 0 единиц между 0 и 15
LC.clearDisplay(0);//очищаем матрицу 1
LC.shutdown(1, false);//выключаем энергосберегающий режим
LC.setIntensity(1, 15);// устанавливаем интенсивность в 15 единиц между 0 и 15
LC.clearDisplay(1);//очищаем матрицу 2
}
void loop()
{
/////////////// ПОСТРОЧНОЕ ВКЛЮЧЕНИЕ ВСЕХ СВЕТОДИОДОВ ///////////////////
for (i=0;i<=7;i++) //цикл в цикле для перебора элементов матрицы
{
for (j=0;j<=7;j++)
{
LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1); delay(100);
}
}
/////////////// МИГАНИЕ СВЕТОДИОДАМИ ВСЕГО КУБА ////////////////////////
for (j=0;j<=4;j++)
{
LC.shutdown(0, true);LC.shutdown(1, true); delay(300); LC.shutdown(0, false);LC.shutdown(1, false); delay(300);
}
/////////////// ПОСТРОЧНОЕ РЕВЕРС-ВЫКЛЮЧЕНИЕ ВСЕХ СВЕТОДИОДОВ //////////
for (i=7;i>=0;i--) //цикл в цикле для перебора элементов матрицы
{
for (j=7;j>=0;j--)
{
LC.setLed(1, i, j,0); LC.setLed(0, i, j, 0); delay(50);
}
}
/////////////// ПОСЛОЙНОЕ ВКЛЮЧЕНИЕ И ВЫКЛЮЧЕНИЕ ВСЕХ СВЕТОДИОДОВ ///////////////////
for (i=0;i<=7;i++) //цикл в цикле для перебора элементов матрицы
{
for (j=0;j<=7;j++)
{
LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1);
if (i==1&j==7){delay(500);}
if (i==3&j==7){delay(500);}
if (i==5&j==7){delay(500);}
if (i==7&j==7){delay(500);}
}
}
for (i=0;i<=7;i++) //цикл в цикле для перебора элементов матрицы
{
for (j=0;j<=7;j++)
{
LC.setLed(1, i, j,0); LC.setLed(0, i, j, 0);
if (i==1&j==7){delay(500);}
if (i==3&j==7){delay(500);}
if (i==5&j==7){delay(500);}
if (i==7&j==7){delay(500);}
}
}
/////////////// ПОСЛОЙНОЕ ВКЛЮЧЕНИЕ И ВЫКЛЮЧЕНИЕ С ПАУЗОЙ СВЕТОДИОДОВ СЛОЁВ ///////////////////
for (k=1;k<=4;k++)//4 кратное повторение перебора
{
for (i=0;i<=7;i++) //цикл в цикле для перебора элементов матрицы
{
for (j=0;j<=7;j++)
{
LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1);
if (i==1&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==3&j==7){delay(200);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==5&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==7&j==7){delay(400);LC.clearDisplay(0); LC.clearDisplay(1);}
}
}
}
/////////////// ПОРЯДНОЕ ВКЛЮЧЕНИЕ И ВЫКЛЮЧЕНИЕ С ПАУЗОЙ СВЕТОДИОДОВ СЛОЯ ///////////////////
for (k=1;k<=2;k++)//2 кратное повторение перебора
{
for (i=0;i<=7;i++) //цикл в цикле для перебора элементов матрицы
{
for (j=0;j<=7;j=j+2)
{
LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1);
if (i==0&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==1&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==2&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==3&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==4&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==5&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==6&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==7&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
}
for (j=1;j<=7;j=j+2)
{
LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1);
if (i==0&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==1&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==2&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==3&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==4&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==5&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==6&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==7&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
}
}
}
/////////////// ПОСТОЛБЦОВОЕ И ПОРЯДНОЕ ВКЛЮЧЕНИЕ И ВЫКЛЮЧЕНИЕ С ПАУЗОЙ СВЕТОДИОДОВ СЛОЁВ ///////////////////
for (k=1;k<=4;k++)//4 кратное повторение перебора
{
for (i=0;i<=7;i++) //цикл в цикле для перебора элементов матрицы
{
for (j=0;j<=7;j=j+2)
{
LC.setLed(1, j, i,1); LC.setLed(0, j, i, 1);LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1);
if (i==0&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==1&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==2&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==3&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==4&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==5&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==6&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==7&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
}
for (j=1;j<=7;j=j+2)
{
LC.setLed(1, j, i,1); LC.setLed(0, j, i, 1);LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1);
if (i==0&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==1&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==2&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==3&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==4&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==5&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==6&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
if (i==7&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
}
}
}
/////////////// ПСЕВДОСЛУЧАЙНОЕ ВКЛЮЧЕНИЕ/ВЫКЛЮЧЕНИЕ 4 ПАР (КУБИК) СВЕТОДИОДОВ ///////////////////
for (k=1;k<=100;k++)//100 кратное повторение перебора
{
i=random(0,6);j=random(0,5);
LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1);
LC.setLed(1, i, j+1,1); LC.setLed(0, i, j+1, 1);
LC.setLed(1, i, j+2,1); LC.setLed(0, i, j+2, 1);
LC.setLed(1, i, j+3,1); LC.setLed(0, i, j+3, 1);
LC.setLed(1, i+2, j,1); LC.setLed(0, i+2, j, 1);
LC.setLed(1, i+2, j+1,1); LC.setLed(0, i+2, j+1, 1);
LC.setLed(1, i+2, j+2,1); LC.setLed(0, i+2, j+2, 1);
LC.setLed(1, i+2, j+3,1); LC.setLed(0, i+2, j+3, 1);
delay(random (100,250));
LC.clearDisplay(0);//очищаем матрицу 1
LC.clearDisplay(1);//очищаем матрицу 2
}
/////////////// КОНТУР КУБА - ПОЯВЛЕНИЕ ///////////////////
int tabl1[32]={0,0,0,0,2,4,6,6,6,6,4,2,0,1,1,3,5,7,7,7,7,5,3,1,1,1,6,7,0,1,6,7};
int tabl2[32]={0,2,4,6,6,6,6,4,2,0,0,0,1,0,1,1,1,1,3,5,7,7,7,7,5,3,7,6,7,6,1,0};
for (k=0;k<=31;k++)
{
LC.setLed(1, tabl1[k],tabl2[k] ,1); LC.setLed(0, tabl1[k],tabl2[k] ,1);delay(1000);
}
delay(5000);
//////////////////// ОЧИСТКА МАТРИЦ ПЕРЕД НОВЫМ ПОВТОРОМ ПОЛНОГО ЦИКЛА ////////////////
LC.clearDisplay(0);//очищаем матрицу 1
LC.clearDisplay(1);//очищаем матрицу 2
}
//
// Конец /
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////