Dmitry__ писал(а):
Дарагуша, вроде бы мы выяснили, что пока я нигде не брехал, а ты тупил.

Что тебе сбрехнуть про 2кб? Где у нас затык?

Повторяться надоело...(мне). Повторяться не надоело? (тебе).
Разобрались с 2 кб, подтвердилось ограничение на количество светодиодов - "650-680 в теории", при пробном скетче 610, при "серьёзном" ещё меньше. Так что буду пробовать на кубе 5*5*5. Ну а пока идут с али светодиоды, вожусь с одноцветным кубом.
Код:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Arduino UNO, Pro Mini
//
////////////////////////
//
//программа для LED куба на шести матрицах 6*6, и max7219 //
#include <LedControl.h>//подключаем данную библиотеку
int i=0;int j=0;int k=0;int k1=5;
int n=5;//5 миллисекунд- единица длительности паузы переключений
LedControl LC = LedControl(12, 11, 10, 6);// создаём объект класса для 6 индикаторов
// при этом выводы 12-DIN 11-CLK 10-CS //
void setup()
{
for (i=0;i<=5;i++)
{
LC.shutdown(i, false);//выключаем энергосберегающий режим
LC.setIntensity(i,4 );// устанавливаем интенсивность в 4 единиц между 0 и 15
LC.clearDisplay(i);//очищаем матрицу i
}
}
void loop()
{
///////////////////////////////////// ПРОГРАММА 1 ДВИЖЕНИЯ ПЛОСКОСТИ ///////////////////////////////////
for (k=0;k<=161;k=k+3)
{int tabl[6][6]={1,1,0,0,1,1,
1,1,0,0,1,1,
1,1,1,1,0,0,
0,0,1,1,0,0,
1,1,0,0,1,1,
1,1,0,0,1,1}; //массив, задающий изображение в плоскости
for (i=0;i<=k1;i++) //цикл в цикле для перебора элементов матриц
{
for (j=0;j<=k1;j++)
{
int tabl1[162]={0,i,j, i,j,5-i, i,j,5, i,j,i, 5,i,j, i,j,5-i, i,j,0, i,j,i,
0,i,j, i,i,j, i,0,j, i,1,j, i,2,j, i,3,j, i,4,j, i,5,j, i,4,j, i,3,j, i,2,j, i,1,j, i,0,j,
i,5-i,j, 5,i,j, i,i,j, i,5,j, i,5-i,j,
0,i,j, 1,i,j, 2,i,j, 3,i,j, 4,i,j, 5,i,j, 4,i,j, 2,i,j, 1,i,j,
0,i,j, i,j,5-i, i,j,5, i,j,4, i,j,3, i,j,2, i,j,2, i,j,1, i,j,0,
i,j,1, i,j,2, i,j,3, i,j,4, i,j,5, i,j,i, 5,i,j, i,j,5-i, i,j,0, i,j,i};//массив задающий движение и вращение плоскости
if (tabl[i][j]==1){LC.setLed(tabl1[k],tabl1[k+1],tabl1[k+2],1);}//включение светодиодов плоскости
}
}
delay(5*n);
LC.clearDisplay(0);LC.clearDisplay(1);LC.clearDisplay(2);//очистка матриц куба
LC.clearDisplay(3);LC.clearDisplay(4);LC.clearDisplay(5);
}
///////////////////////////////////// ПРОГРАММА 2 ДВИЖЕНИЯ ПЛОСКОСТИ //////////////////////////////////////////////////
byte tabl2[6]={B11001100,
B11001100,
B00110000,
B00110000,
B11001100,
B11001100};//массив,задающий изображение в плоскости
for (k=0;k<=6;k++)
{
///////////////////////////////////////////////////////////////////////////////////////
for (i=0;i<=k1;i++) //цикл в цикле для перебора элементов матриц
{
for (j=0;j<=k1;j++)
{
LC.setRow(i-1,j,B00000000 ); LC.setRow(i,j,tabl2[j] );
}
delay(15*n);
}
for (i=k1+1;i>=0;i--) //цикл в цикле для перебора элементов матриц
{
for (j=0;j<=k1;j++)
{
LC.setRow(i+1,j,B00000000 ); LC.setRow(i,j,tabl2[j] );
}
delay(15*n);
}
///////////////////////////////////////////////////////////////////////////////////////
}
}
Для примера написал скетч - в первой части изображение плоское вращается и движется поступательно под управлением функции setLed(), во второй движется под управлением setRow().Первое изображение мерцает (на что указал Madf), второе нет. Как избавиться от недочёта? Использовать только setRow() в скетче? Поменять библиотеку? Искать улучшенный вариант?