74HC595 и LED cube

Muse
Offline
Зарегистрирован: 14.04.2016

Здравствуйте! У меня возникли проблемы с программированием 74HC595. Я создаю LED cube 16*16*16. Управляться он будет с помощью 74HC595. У вообще не знаю программирование. Думал найду примеры в интернете но нет. Вопрос в следующем какой должен быть код чтобы зажечь 1 определенный светодиод на определеном слое! У меня соединены 2 74HC595 для слоев и 2 74HC595 для уровней. У них общая ST и SH и раздельная DATA. Благодарю за внимания!

MagicianT
Offline
Зарегистрирован: 03.10.2015

http://www.elcojacobs.com/shiftpwm/

Не нашли? Да интернет завален 595 + ардуино примерами.

Muse
Offline
Зарегистрирован: 14.04.2016

У меня еще такой вопрос как написать код для управления слоями с помощью 74HC595?

Muse
Offline
Зарегистрирован: 14.04.2016
int data  = 4; // HC595-1, 2
int clock  = 5; // HC595-1, 2
int latch  = 6; // HC595-1, 2

int layerPin[] = {
  7,8,9,10};

int data8x8[] = {
  0, 0, 0, 0, 0, 0, 0, 0}
;

void setup(){
  Serial.begin(9600);
  pinMode(data, OUTPUT);
  pinMode(clock, OUTPUT);
  pinMode(latch, OUTPUT);

  for (int i = 0; i < 4; i ++){
    pinMode(layerPin[i], OUTPUT);
  }
}

void loop(){
  for (int z = 0; z < 4; z++){
    for (int y = 0; y < 4; y++){
      for (int x = 0; x < 4; x++){
        int xbijy= y*4 + x;
        int shiftReg = z*2+ xbijy / 8;
        int bitNr = xbijy % 8;
        data8x8[shiftReg] = 1<<bitNr;
        drawCube(100);
      }
    }
  }
}

void drawCube(int duur){
  for (int t = 0; t <  duur; t++){
    for (int zz=0; zz < 4; zz++){
      digitalWrite(latch,LOW);
      shiftOut(data, clock, LSBFIRST, data8x8[zz*2]);
      shiftOut(data, clock, LSBFIRST, data8x8[zz*2 + 1]);
      digitalWrite(latch,HIGH);
    }
  }
}

Вот допустим код в котором слои потдкючены к Arduino а мне надо чтобы управлять слоями с помощью74HC595

MacSim
Offline
Зарегистрирован: 28.11.2012

за вас что все додумать? аналогично выводите и на другие 2.

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

суть подать с одной стороны -1, с другой 0 на пересечении диод загориться.

делается динамическая индикация. это в 2-х словах, в нете инфы полно.