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 - глубина). Записал координаты в память, считал - а как отобразить ???