int ClkPin=12;
int LoadPin=13;
int ClockEnablePin=11;
int DataPin=10;
//set number of shift register
#define num_Shift_reg 6
#define DataWidth num_Shift_reg * 8
//You can set Aphabet cahracter to the corresponding key in the below array
char *Alpha[]={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48"};
char *data[48];
unsigned long Pinvalues;
unsigned long oldPinValues;
void setup(){
Serial.begin(9600);
pinMode(ClkPin, OUTPUT);
pinMode(LoadPin, OUTPUT);
pinMode(ClockEnablePin, OUTPUT);
pinMode(DataPin, INPUT);
digitalWrite(ClockEnablePin, LOW);
digitalWrite(LoadPin, HIGH);
}
void loop(){
long bitVal;
unsigned long BytesVal=0;
digitalWrite(ClockEnablePin, HIGH);
digitalWrite(LoadPin, LOW);
delayMicroseconds(5);
digitalWrite(ClockEnablePin, LOW);
digitalWrite(LoadPin, HIGH);
for(int i=0;i<DataWidth;i++){
bitVal=digitalRead(DataPin);
Serial.print("Pin");
Serial.print(i);
Serial.print(":");
Serial.print("(");
Serial.print(bitVal);
Serial.print(")");
data[i]=bitVal;
BytesVal |= ( BytesVal<< ((DataWidth-1)-i));
digitalWrite(ClkPin, HIGH);
delayMicroseconds(5);
digitalWrite(ClkPin, LOW);
}
Serial.println();
for(int i=0; i<DataWidth ;i++){
if(data[i]==1){
Serial.print("--(");
Serial.print(Alpha[i]);
Serial.print(")--");
}
}
}