Frage zu Schieberegister 74hc165

Hallo ich möchte meine Eingänge am Arduino mit einem 74hc165 erweitern. Dazu habe ich auch schon einen Sketch geschrieben.

int clockPin = 2;
int dataPin = 3;
int wert = 0;

void setup(){
  Serial.begin(9600):
  pinMode(clockPin, OUTPUT);
  pinMode(datenPin, INPUT);
  pinMode(4, OUTPUT);
}

void loop(){
  digitalWrite(4, LOW);
  delay(10);
  digitalWrite(4, HIGH);
  wert = ShiftIn(datenPin, clockPin, LSBFIRST);
  Serial.println(wert, BIN);
  delay(300);
}

Leider funktioniert das nicht ganz.Als ich auf den 3. - 8. Taster gedrückt habe, wurde mir alles richtig auf dem Seriellen Monitor angezeigt (Taster gedrückt = 0):
3.: 11011111
4.: 11101111
5.: 11110111
6.: 11111011
7.: 11111101
8.: 11111110

Ebenso hat der 1. Taster funktioniert, nur das er manchmal von selbst angeht, ohne zu drücken:
1111111

Jetzt kommt mein Problem. Wenn ich auf den 2. Taster drücke, erscheint im Seriellen Monitor manchmal das:
111111

und manchmal das:
10111111

Es ist also so, wie als würde der 1. Taster "mitgedrückt" werden.

Hat jemand eine Ahnung, wie das sein kann?

PBahner

Hallo,

sieht irgendwie unvollständig aus.
Der Ablauf ist wie folgt.
Alle Eingänge einlesen. Dazu entsprechende Leitung schalten. Im Nexperia Datenblatt "/PL".
Dann mit /CE den Takteingang freigeben und 8 Takte auf CP geben.
Die 8 Bits in einer Schleife einlesen damit es in einem Byte landet.