wendtdir
08.05.2016, 19:48
Hallo,
mein Smily zwinkert nicht.
Ich habe diese Schaltung aus dem Buch Arduino Workshops, Boxall J. aufgebaut.
31595
Und versuche nun ein Smiley auf der LED Matrix darzustellen. Das Smiley ist kein Problem, aber nun möchte ich es animieren, sprich es soll ein Auge öffnen und schliessen.
Anbei der Code, den ich bis jetzt habe und der leider nicht funktioniert.
#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?
mein Smily zwinkert nicht.
Ich habe diese Schaltung aus dem Buch Arduino Workshops, Boxall J. aufgebaut.
31595
Und versuche nun ein Smiley auf der LED Matrix darzustellen. Das Smiley ist kein Problem, aber nun möchte ich es animieren, sprich es soll ein Auge öffnen und schliessen.
Anbei der Code, den ich bis jetzt habe und der leider nicht funktioniert.
#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?