Hello Ladys and Gentlemen,
I'm a new guest here and I search for the arduino forum in german. there existed one before: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=deutsch
But I trie to ask my question in english. I want to drive my LEDs with the shift register "74HC4094". You find the data-sheet in attachment. Therefore I wrote the very simple code, but yet it doesn't work! The top of the shift register is on the left side in the photo. No LED lights up.
On the right photo you can see that two control lamps are shining. Is all right with my arduino? Wath's the problem?
PS: Can somebody show me how to use the hardware SPI of my arduino UNO? There's a library for SPI but I don't understand how it works.
Thank you for your help!
int seriellerDateneingang = 13; //SER, here called "DATA"
int schiebetakt = 12; //SCK, here called "CP"
int speichertakt = 11; //RCK, here called "strobe"
int freigabeOE = 10; //G, here called "OE"
void setup(){
pinMode(seriellerDateneingang, OUTPUT);
pinMode(schiebetakt, OUTPUT);
pinMode(speichertakt, OUTPUT);
pinMode(freigabeOE, OUTPUT);
//Serial.begin(9600);
}
void loop () {
//Alles auf LOW
digitalWrite(seriellerDateneingang, LOW);
digitalWrite(speichertakt, LOW);
digitalWrite(freigabeOE, LOW);
//Pin 8 - 1 im Schieberegister werden gefüllt
digitalWrite(seriellerDateneingang, LOW); //Pin 8 LOW
digitalWrite(schiebetakt, HIGH);
digitalWrite(schiebetakt, LOW);
digitalWrite(seriellerDateneingang, HIGH); //Pin 7 HIGH
digitalWrite(schiebetakt, HIGH);
digitalWrite(schiebetakt, LOW);
digitalWrite(seriellerDateneingang, HIGH); //Pin 6 HIGH
digitalWrite(schiebetakt, HIGH);
digitalWrite(schiebetakt, LOW);
digitalWrite(seriellerDateneingang, LOW); //Pin 5 LOW
digitalWrite(schiebetakt, HIGH);
digitalWrite(schiebetakt, LOW);
digitalWrite(seriellerDateneingang, LOW); //Pin 4 LOW
digitalWrite(schiebetakt, HIGH);
digitalWrite(schiebetakt, LOW);
digitalWrite(seriellerDateneingang, HIGH); //Pin 3 HIGH
digitalWrite(schiebetakt, HIGH);
digitalWrite(schiebetakt, LOW);
digitalWrite(seriellerDateneingang, HIGH); //Pin 2 HIGH
digitalWrite(schiebetakt, HIGH);
digitalWrite(schiebetakt, LOW);
digitalWrite(seriellerDateneingang, LOW); //Pin 1 LOW
digitalWrite(schiebetakt, HIGH);
digitalWrite(schiebetakt, LOW);
///////////////////////////////////////////////////////
digitalWrite(speichertakt, HIGH); //Übernahme ins Ausgangsregister
digitalWrite(speichertakt, LOW);
//////////////////////////////////////////////////////
pinMode(freigabeOE, LOW); //Freigabe Ausgangsregister
}

