LED куб 8x8x8
- Войдите на сайт для отправки комментариев
Вс, 07/06/2015 - 14:36
Начал писать код для куба 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 - глубина). Записал координаты в память, считал - а как отобразить ???