МАТРИЦА СВЕТОДИОДНАЯ RGB 8X8

ALEXHEX
Offline
Зарегистрирован: 12.12.2013

http://www.youtube.com/watch?v=lsxbQ1sCM9A
Подскажите, если пример реализации подобного кода?
Интересует именно рандомная составляющая.
Для устройства указанного по ссылке есть пример, вы его можете найти. Но там мало понятного по моему вопросу. Может быть, кто знает, как рандомно оживить матрицу?
 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

для начала нужно просто оживить матрицу, а потом уже как угодно

http://arduino.cc/en/reference/random

ALEXHEX
Offline
Зарегистрирован: 12.12.2013

Вот тут самое печальное, для меня, и начинается -
У меня есть три сдвиговых регистра. Каким образом можно запустить любой из его выходов?
byte number[] = {0b10000010, 0b10011111, 0b1000110, 0b01100010, 0b00110011, 0b00101010, 0b00001010, 0b11100011, 0b00000010, 0b00100010};

у меня есть пример для одного регистра(7 значаний), подскажите как расширить на 3?

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

http://www.seeedstudio.com/wiki/Rainbowduino_v3.0

http://www.seeedstudio.com/wiki/images/9/98/MY9221_DS_1.0.pdf

http://seeedstudio.com/wiki/images/0/05/Rainbowduino_V3.0b.pdf

либа уже есть. или железо сделашь как у них и будешь использовать готовую либу, или сам будешь все делать

к тому же что ты сделаешь на сдвиговых регистрах? шим? даже если у тебя и получится с 3 регистрами, то будет моргать

если включать ряд, то пойдет, но и то только управлять полевиками так как сдвиговый регистор через себя столько тока не протянет

ALEXHEX
Offline
Зарегистрирован: 12.12.2013

Каждый регистр будет отвечать за свой цвет, по крайней мере один регистр тянет 8 светодиодов. Питание на него буду подовать не с ардуинки, а отдельно, через стабилизатор лм7805. Потянуть должен.
Я запоролся в основном на том, что у меня есть пример кода на один регистр, а я хочу подключить три и не понимаю как это сделать.

const byte latchPin = 6;
const byte clockPin = 7;
const byte dataPin = 5;

byte number[] = {0b10000010, 0b10011111, 0b1000110, 0b01100010, 0b00110011, 0b00101010, 0b00001010, 0b11100011, 0b00000010, 0b00100010};

void setup() {
  pinmode(latchPin, OUTPUT);
  pinmode(clockPin, OUTPUT);
  pinmode(dataPin, OUTPUT);
}

void loop() {
  digitalWrite (latchPin, LOW);
 shiftOut(dataPin, clockPin, MSBFIRST, number[1]);
  digitalWrite (latchPin, HIGH);
}

 

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

вроде так. точно не помню. погугли. инфа точно была

digitalWrite (latchPin, LOW);
  shiftOut(dataPin, clockPin, MSBFIRST, number[1]);
  shiftOut(dataPin, clockPin, MSBFIRST, number[2]);
  shiftOut(dataPin, clockPin, MSBFIRST, number[3]);
  digitalWrite (latchPin, HIGH);

 

KVadik
KVadik аватар
Offline
Зарегистрирован: 15.06.2014
jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

так он хочет по своему все сделать))

KVadik
KVadik аватар
Offline
Зарегистрирован: 15.06.2014

а, сорри, не дочитал, что для него это слишком сложно

ALEXHEX
Offline
Зарегистрирован: 12.12.2013

Так точно, по своему, без дальномеров, максимум с использованием микрофона для привязки рандомной функции.
С структурой кода знаком мало. Могу лишь переделать понятный мне код. Тот что я выложил мне понятен, хотя не могу переделать его с функцией случайной выборки из массива.
Подскажите, если не трудно.

Знаю, что random должна быть тут

 shiftOut(dataPin, clockPin, MSBFIRST, number[1]);

Но в рабочем виде сделать не могу.