и снова про много-много светодиодов..

whoim
Offline
Зарегистрирован: 03.11.2011

 Задача - управлять большим числом светодиодов в RGB-лентах (порезанных). Ну не суть важно, около 750 RGB-диодов (три в одном). Матрицей.

Необходимо чтобы они горели в любом порядке, который будет предусмотрен в будущем программой. Значит - матрица, строки-столбцы и быстрое переключение.

Правильно ли я мыслю: мартица на 595 вида 16х48 (или больше), то есть по X в три раза больше каналов чем по Y и соответственно мосфеты N а на Y мосфеты P?

Другой вопрос.. про быстродействие. Вот тут на видео видно что матрица мерцает сильно.. Это из за видеосъемки? На глаз такого эффекта не будет? Ну и еще вопрос: явно будет ниже яркость свечения, чем у просто включенных светодиодов. Как ее можно увеличить? Больше напряжение?

whoim
Offline
Зарегистрирован: 03.11.2011

 Еще вопрос..
Скорее всего будет использоваться матрица 16х48, то есть два 8-пиновых регистра по столбцам и 6 по строкам. Как лучше соединять регистры между собой? Я имею ввиду SO->DS. Ну, и - почему? )))

whoim
Offline
Зарегистрирован: 03.11.2011

 Ну и еще один, ибо пока я не пойму до конца нюансы работы системы, нормально не сделаю..

for (int j = 0; j < 10; j++) {
    //load the light sequence you want from array
    dataRED = dataArrayRED[j];
    dataGREEN = dataArrayGREEN[j];
    //ground latchPin and hold low for as long as you are transmitting
    digitalWrite(latchPin, 0);
    //move 'em out
    shiftOut(dataPin, clockPin, dataGREEN);   
    shiftOut(dataPin, clockPin, dataRED);
    //return the latch pin high to signal chip that it 
    //no longer needs to listen for information
    digitalWrite(latchPin, 1);
    delay(300);
  }

Правильно ли я понимаю, что первый shiftOut задвигает состояние пинов в первый подключенный регистр а остальные shiftOut проталкивают его в следующие, заменяя собой содержимое первого? То есть при большем числе последовательно соединенных регистров я сначала заталкиваю содержимое последнего и столько раз в сумме делаю shiftOut, сколько у меня регистров?

Ну а потом уже защелка срабатывает для всех одновременно?

whoim
Offline
Зарегистрирован: 03.11.2011

 Еще один вопрос:

управлять катодами буд посредством N-мосфетов, тут вроде все понятно в теории. Анодами же - P-мосфетами. Вот только P-мосфеты управляются наоборот - открываются при LOW на gate. Есть ли в adruinо ide простой вариант инвертировать bits в байте? чтоб B11001100 превратилось в B00110011?

Спасибо. Жду ответов и помощи, вопрос срочный - завтра вже травить платку )

whoim
Offline
Зарегистрирован: 03.11.2011

 Хотя, если логически подумать, 255-byte и есть инверсия. Тогда что то вроде B11111111 - B11001100 = B00110011?