LED куб 8x8x8

Нет ответов
maksmkv
Offline
Зарегистрирован: 07.04.2013

Начал писать код для  куба 8x8x8 и столкнулся с проблемой. В общем сам код

#define __PROG_TYPES_COMPAT__
#include <avr/pgmspace.h>

//Пин подключен к ST_CP входу 74HC595
int latchPin = 3;
//Пин подключен к SH_CP входу 74HC595
int clockPin = 2;
//Пин подключен к DS входу 74HC595
int dataPin = 4;

int myPins[] = {6, 7, 8, 9, 10, 11, 12, 13};   //массив пинов - выходы для строк

prog_uchar MyMassive[8][8][8] PROGMEM = {B00000001,B10000000,B00000000};  //массив диодов

int i,j,x,y,z;
 
void setup() {
  
    Serial.begin(9600);
  //устанавливаем режим OUTPUT
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
   
  for (i = 0; i <=8; i = i + 1) {
    pinMode(myPins[i],OUTPUT);
  Serial.println(myPins[i]);
  }
}

 
void loop() {

 // отсчитываем от 0 до 255  и отображаем значение на светодиоде
 
 for(x=0; x<8; x++){
 pgm_read_byte(&MyMassive[0][0][i]);
 }
  
 byte  numberToDisplay=B10101010;
    // устанавливаем синхронизацию "защелки" на LOW
    digitalWrite(latchPin, LOW);
    // передаем последовательно на dataPin
    shiftOut(dataPin, clockPin, MSBFIRST, numberToDisplay); 
    
    for(j=0; j<=8; j++){
    digitalWrite(myPins[j], HIGH); 
    Serial.println(myPins[j]);        // turn the LED on (HIGH is the voltage level)
    delay(100);               // wait for a second
    digitalWrite(myPins[j], LOW);    // turn the LED off by making the voltage LOW
    delay(10);     
    }
    
    //"защелкиваем" регистр, тем самым устанавливая значения на выходах
    digitalWrite(latchPin, HIGH);
    // пауза перед следующей итерацией
    delay(500);
  
}

Хочу сначала  зажечь светодиод 1 в левом нижнем углу (x- подключены спарва налево, y - снизу вверх, z - глубина). Записал координаты  в память, считал - а как отобразить ???