Willkommen auf unserem Seminar-Blog

Immer auf dem aktuellen Stand bleiben

Dieser Seminar-Blog befindet sich noch im Aufbau und wird in den kommenden Tagen entsprechend verfeinert.

Member Login

Lost your password?

Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email at viad.info {at} zhdk {dot} ch.

Shift out

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);
  }
}