any thoughts???
You may want to read the datasheet.
Some code for you to try:
unsigned char hc165_read(void) {
unsigned char mask = 0x80;
unsigned char tmp = 0;
do {
digitalWrite(SCK, 0); //clear sck
if (digitalRead(SOUT)) tmp |= mask;
tmp |= 0;
digital Write(SCK, 1); //set sck
mask = mask >> 1;
} while (mask);
return tmp;
}
And you should get the loading of the chip right as well.