ЧАСТЬ ТРЕТЬЯ
Подключение модуля Matrix 8*8 LED + MAX7219
Время бежит. До нового года осталось менее месяца. Обещанная ребенку гирлянда "круче чем у всех" еще только в моей голове.
Для удобства настройки и отладки взял два модуля, состоящие из LED Matrix 8x8 и драйвера MAX7219
Фото с интернета имеет подвох. В модуле матрица вставлена не правильно.
Модуль имеет следующую схему:
Два модуля подключаются так
Первый модуль правый. Второй левый.
Долгий подбор библиотеки подходящий для моих целей и вот промежуточный результат. Ссылка, если видео не работает
Для удобства настройки и отладки взял два модуля, состоящие из LED Matrix 8x8 и драйвера MAX7219
Фото с интернета имеет подвох. В модуле матрица вставлена не правильно.
Модуль имеет следующую схему:
Два модуля подключаются так
Первый модуль правый. Второй левый.
Долгий подбор библиотеки подходящий для моих целей и вот промежуточный результат. Ссылка, если видео не работает
Для реализации данного способа подключения потребуется:
· 1 * ARDUINO (от 300 до 950 руб)
· 2 * Модуль MAX7219 Matrix 8*8 (200 руб)
· 1 * перемычка МАМА-МАМА (2.50 руб за 1 шт)
· 8 * перемычка ПАПА-ПАПА (100 руб за набор из 32 штук)
Цены взяты с сайта МОЛОТОК.РУ
Библиотека MaxMatrix.
Основные функции которые я использовал:
MaxMatrix m(dataIn, load, clock, maxInUse); m.Init();
Описание подключения и количество модулей
m.setIntensity(value)
Яркость 0-15, где 15 максимум, а 0 тусклое свечение (как на видео)
m.writeSprite(x, y, sprite)
Печать спрайта (картинки, которая описана в программе) с позиции x,y. Значение 0,0 верхний левый угол на фото, можно печатать за пределами матрицы. Например, берем спрайт (картинку) размером 32 на 8 точек печатаем ее с позиции -16,0 в этом случае мы увидим только правую половинку спрайта. А сдвинув его 16 раз в право (см.ниже) увидим левую половину
m.shiftLeft(true);
Left, Right, Up, Down соответственно сдвиг напечатанного спрайта влево, вправо, вверх, вниз на один пиксель. С параметром false подтирается хвост. С параметром true при сдвиге вправо левая колонка спрайта будет оставаться на матрице. Если в этой колонке есть пиксели, они составят хвост
byte CH_A[] = {4, 8, B11111110, B00010001, B00010001, B11111110 };
Для примера описание спрайта размером в высоту 8, в ширину 4.
На спрайте изображена буква А
**
* *
* *
* *
***
* *
* *
* *
m.writeSprite(0, 0, CH_A);
Печатаем его в позиции 0,0 и получаем результат
На основе этого собираюсь спаять гирлянду на окно. Уже купил 128 светодиодов, 4 метра кабеля (4 витых пары) и 3 м термоусадочной трубки диаметром 3мм (хотел 2мм, но не нашел)
Скетч из видео.
ALEN Studio by Little_Red_Rat
// http://littleredrat.blogspot.ru/#include <MaxMatrix.h>
// создаем спрайт снежинки
byte snowstar[] = {
9, 8, B00000000, B01001001, B00101010, B00010100, B01101011, B00010100, B00101010, B01001001, B00000000};
// создаем снегопада
byte snow[] = {
16, 8, B10000010, B00000001, B10000010, B00100000, B01110000, B00100001, B10000011, B00101001, B00010000, B00101000, B10000000,0B11000001, B10000000, B00000100, B00001110, B00000100};
// описание подключения
// DIN к 8
// CS к 9
// CLK к 10
// 2 модуля
MaxMatrix m(8, 9, 10, 2);
void setup(){
m.init();
m.setIntensity(0); // яркость 0 из 15
}
void loop(){
// двигаем снежинку из-за левой границы за правую через цикл
for (int i=-8; i<16; i++)
{
delay(100);
m.writeSprite(i, 0, snowstar);
}
delay(100); // пауза
// печатаем снегопад в 6 этажей
m.writeSprite(0, 0, snow);
m.writeSprite(0, -8, snow);
m.writeSprite(0, -16, snow);
m.writeSprite(0, -24, snow);
m.writeSprite(0, -32, snow);
m.writeSprite(0, -40, snow);
// снегопад ... УРА !
for (int i=0; i<32; i++)
{
m.shiftDown(true);
delay(100);
}
// ветер сдувает снежинки, красота !
for (int i=0; i<16; i++)
{
m.shiftLeft(false);
delay(100);
}
delay(2000);
}
Кто-нибудь, подскажите пожалуйста, как правильно скетч вставить !!! А то как-то не красиво :(
Гирлянда часть первая
Гирлянда часть вторая
Большая просьба к любителям перепечаток, указывать автора Little_Red_Rat
Спасибо