Guten Abend,
ich wollte einen 4x4x4 Cube mit Schieberegistern ansteuern, da ich eine kleine Übung machen wollte, bevor ich einen 8x8x8 RGB Cube mache ![]()
Ich nutze die 74HC595 und nen Nano mit nem ATmega328
Mein Problem:
Ich scheiterte schon bei einem Testdurchlauf für den Cube und finde leider keinen Fehler.
Verkablungen sind alle richtig und so wie im Schaltplan (siehe Anhänge)
Ist mein Programm falsch oder könnte ich einfach nur defekte Nano's haben? Ich habe allerdings schon verschiedene ausprobiert und es würde mich dann schon wundern. ![]()
Der Serielle Monitor gibt nichts aus.
const byte allePins[] = {2, 3, 4, 5, 6, 7, 8, 9};
int shiftPin = 2;
int storePin = 3;
int dataPin1 = 4;
int dataPin2 = 5;
const byte alleLayers[] = {6,7,8,9};
int layer1 = 6;
int layer2 = 7;
int layer3 = 8;
int layer4 = 9;
int aus[8] = {0,0,0,0,0,0,0,0};
int an[8] = {1,1,1,1,1,1,1,1};
void setup() {
Serial.println("Start");
for(int i=0; i<sizeof(allePins); i++) {
pinMode(allePins[i], OUTPUT);
}
for(int i=0; i<sizeof(alleLayers); i++) {
pinMode(alleLayers[i], LOW);
}
digitalWrite(storePin, LOW);
for (int i=0; i<8; i++) {
digitalWrite(shiftPin, LOW);
digitalWrite(dataPin1, an[i]);
digitalWrite(shiftPin, HIGH);
delay(50);
}
digitalWrite(storePin, HIGH);
Serial.println("1.Hälfte AN");
digitalWrite(storePin, LOW);
for (int i=0; i<8; i++) {
digitalWrite(shiftPin, LOW);
digitalWrite(dataPin2, an[i]);
digitalWrite(shiftPin, HIGH);
delay(50);
}
digitalWrite(storePin, HIGH);
Serial.println("2.Hälfte AN");
delay(250);
digitalWrite(storePin, LOW);
for (int i=0; i<8; i++) {
digitalWrite(shiftPin, LOW);
digitalWrite(dataPin1, aus[i]);
digitalWrite(shiftPin, HIGH);
}
digitalWrite(storePin, HIGH);
Serial.println("1.Hälfte AUS");
digitalWrite(storePin, LOW);
for (int i=0; i<8; i++) {
digitalWrite(shiftPin, LOW);
digitalWrite(dataPin2, aus[i]);
digitalWrite(shiftPin, HIGH);
}
digitalWrite(storePin, HIGH);
Serial.println("2.Hälfte AUS");
}
void loop() {
}

