Code:
#define DATA 6 //Verbindung mit Pin 14 am Schieberegister
#define LATCH 8 //Verbindungmit Pin 12 am Schieberegister
#define CLOCK 10 //Verbindung mit Pin 11 am Schieberegister
byte smile[] = {B00000000, B00000110, B01100110, B00000000, B00011000, B0000000, B11000011, B01111110};
int binary[] = {1, 2, 4, 8, 16, 32, 64, 128};
byte smile1[] = {B00000000, B01100110, B01100110, B00000000, B00011000, B0000000, B11000011, B01111110};
int binary1[] = {1, 2, 4, 8, 16, 32, 64, 128};
void setup() {
// put your setup code here, to run once:
pinMode(LATCH, OUTPUT);
pinMode(CLOCK, OUTPUT);
pinMode(DATA, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int i;
for ( i = 0; i<8; i++)
{
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLOCK, MSBFIRST, ~smile1[i]);
shiftOut(DATA, CLOCK, MSBFIRST, binary1[i]);
digitalWrite(LATCH, HIGH);
delay(1);
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLOCK, MSBFIRST, ~smile[i]); //Spalten
shiftOut(DATA, CLOCK, MSBFIRST, binary[i]); //Zeilen
digitalWrite(LATCH, HIGH);
delay(1);
}
}
Wie ich es verstehe, wird im Abstand von 1ms Zeile für Zeile abgearbeitet. Nun folgerte ich, wenn ich ein zweites Array schaffe und ich den Code durchlaufen lasse, erst die 8 Zeilen mit Auge auf, dann die 8 Zeilen mit Augegeschlossen, müsste er zwinkern. Ist aber nicht so. Wo genau liegt mein Denkfehler?
Lesezeichen