Всем привет. Собрал led куб 8x8x8 - написан код:
//Пин подключен к 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}; //массив пинов - выходы для строк
boolean MyMassive[8][8][8]; //массив диодов
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]);
}
for(x = 0; x < 8; x++){
for(y = 0; y < 8; y++){
for(z = 0; z < 8; z++){
MyMassive[x][y][z] = 0;
}
}
}
}
void loop() {
// отсчитываем от 0 до 255 и отображаем значение на светодиоде
byte numberToDisplay=B10101010;
// устанавливаем синхронизацию "защелки" на LOW
digitalWrite(latchPin, LOW);
// передаем последовательно на dataPin
shiftOut(dataPin, clockPin, MSBFIRST, numberToDisplay);
for(j=8; j>=0; 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);
}
Работает. Вопрос: как сделать , чтобы загорелись только все крайние светодиоды ???
Раздел: Песочница (Q&A)
//Пин подключен к 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}; //массив пинов - выходы для строк
boolean MyMassive[8][8][8]; //массив диодов
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]);
}
for(x = 0; x < 8; x++){
for(y = 0; y < 8; y++){
for(z = 0; z < 8; z++){
MyMassive[x][y][z] = 0;
}
}
}
}
void loop() {
// отсчитываем от 0 до 255 и отображаем значение на светодиоде
byte numberToDisplay=B10101010;
// устанавливаем синхронизацию "защелки" на LOW
digitalWrite(latchPin, LOW);
// передаем последовательно на dataPin
shiftOut(dataPin, clockPin, MSBFIRST, numberToDisplay);
for(j=8; j>=0; 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);
}
Работает. Вопрос: как сделать , чтобы загорелись только все крайние светодиоды ???
Раздел: Песочница (Q&A)