Te explico un poco como funciona el codigo sencillo...
El protocolo Wiegand, es muy simple, si entra un dato (5v.) por el Pin 2 (Data0) añade un 0 a Cod_Bin, si el dato entra por el Pin 3 (Data1) añade un 1 a Cod_Bin.
La forma sencilla de hacer esto es con Interrupciones (las dos lineas que ves en el "setup()") que llaman a las dos funciones que tienes justo encima de dicho "setup()". Te recomiendo que te informes un poco del uso de las interrupciones.
La otra "cosa rara" que puedes ver en este codigo es el uso de "bitshift (<<)" es una forma muy sencilla, una vez sabes como funciona, de añadir bits a una cadena, en este caso es la forma más sencilla de ir acumulando los datos que nos entran por Data0 y Data1. Busca informacion de este tambien "bitshift left (<<)".
Y aquí de forma más visual, lo que hacen las interrupciones, y como van almacenando los datos que entran por Data0 y Data1
01 --- Data0 ----> Cod_Bin<<1; // binario: 00000000000000000000000000
02 --- Data1 ----> Cod_Bin<<1; // binario: 00000000000000000000000001
03 --- Data1 ----> Cod_Bin<<1; // binario: 00000000000000000000000011
04 --- Data0 ----> Cod_Bin<<1; // binario: 00000000000000000000000110
05 --- Data1 ----> Cod_Bin<<1; // binario: 00000000000000000000001101
06 --- Data0 ----> Cod_Bin<<1; // binario: 00000000000000000000011010
07 --- Data1 ----> Cod_Bin<<1; // binario: 00000000000000000000110101
08 --- Data0 ----> Cod_Bin<<1; // binario: 00000000000000000001101010
------
------
25 --- Data0 ----> Cod_Bin<<1; // binario: 00110101000111001011010010
26 --- Data1 ----> Cod_Bin<<1; // binario: 01101010001110010110100101 // decimal: 27846053
Una Vez tenemos los 26 bits este es el codigo utilizado como identificador, para que resulte más sencillo de ver, recordar o guardar lo represento en decimal.
Espero que de esta forma te resulte más sencillo de entender...
