5. November 2010
Shift Out funktioniert ähnlich wie ein Decoder. Ein Decoder hat 3 Eingänge (3 Bits), welche gleichzeitig in den 8 Outputs ausgegeben werden. Ein Shift out hat auch 3 Eingänge, aber mit anderen Funktionen dahinter. - Eingang 1: Data Input (liefert ein ganzes Byte) - Eingang 2: Latch Pin (0 oder 1, 0 = Chip deaktiviert, 1 = Chip aktiviert (wärend dem Senden der Inputdaten sollte der Chip deaktiviert sein) - Eingang 3: Clock Pin (Bestimmt die Frequenz) Video ansehen//Pin connected to ST_CP of 74HC595 int latchPin = 8; //Pin connected to SH_CP of 74HC595 int clockPin = 12; ////Pin connected to DS of 74HC595 int dataPin = 11; int meinMuster[25]; void setup() { //set pins to output so you can control the shift register // Array meinMuster[0] = B11111111; meinMuster[1] = B10000001; meinMuster[2] = B01000010; meinMuster[3] = B00100100; meinMuster[4] = B00011000; meinMuster[5] = B11111111; meinMuster[6] = B00000000; meinMuster[7] = B11111111; meinMuster[8] = B00000000; meinMuster[9] = B10000000; meinMuster[10] = B01000000; meinMuster[11] = B00100000; meinMuster[12] = B00010000; meinMuster[13] = B00001000; meinMuster[14] = B00000100; meinMuster[15] = B00000010; meinMuster[16] = B00000001; meinMuster[17] = B10101010; meinMuster[18] = B10101010; meinMuster[19] = B01010101; meinMuster[20] = B01010101; meinMuster[21] = B10101010; meinMuster[22] = B10101010; meinMuster[23] = B01010101; meinMuster[24] = B01010101; pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); } void loop() { for (int zaehler = 0; zaehler < 25; zaehler++){ digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, meinMuster[zaehler] ); digitalWrite(latchPin, HIGH); delay(300); } }