74HC595 и LED cube
- Войдите на сайт для отправки комментариев
Чт, 14/04/2016 - 12:21
Здравствуйте! У меня возникли проблемы с программированием 74HC595. Я создаю LED cube 16*16*16. Управляться он будет с помощью 74HC595. У вообще не знаю программирование. Думал найду примеры в интернете но нет. Вопрос в следующем какой должен быть код чтобы зажечь 1 определенный светодиод на определеном слое! У меня соединены 2 74HC595 для слоев и 2 74HC595 для уровней. У них общая ST и SH и раздельная DATA. Благодарю за внимания!
http://www.elcojacobs.com/shiftpwm/
Не нашли? Да интернет завален 595 + ардуино примерами.
У меня еще такой вопрос как написать код для управления слоями с помощью 74HC595?
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
за вас что все додумать? аналогично выводите и на другие 2.
если будут все 16 включены в одном из слоев весь ток пойдет через одну ногу регистра столбца. потянет? надо считать и смотреть даташит.
суть подать с одной стороны -1, с другой 0 на пересечении диод загориться.
делается динамическая индикация. это в 2-х словах, в нете инфы полно.