I am trying to follow this code to implement I2c keypad
http://playground.arduino.cc/Main/I2CPortExpanderAndKeypads
but iam not understanding the following part of the code , what are these mapping accomplishing ?
// Hex byte statement for each port of PCF8574
const int hex_data[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
// Hex data for each row of keypad in PCF8574
const int pcf8574_row_data[4] =
{
hex_data[ROW1] | hex_data[ROW2] | hex_data[ROW3] |
hex_data[COL0] | hex_data[COL1] | hex_data[COL2] | hex_data[COL3],
hex_data[ROW0] | hex_data[ROW2] | hex_data[ROW3] |
hex_data[COL0] | hex_data[COL1] | hex_data[COL2] | hex_data[COL3],
hex_data[ROW0] | hex_data[ROW1] | hex_data[ROW3] |
hex_data[COL0] | hex_data[COL1] | hex_data[COL2] | hex_data[COL3],
hex_data[ROW0] | hex_data[ROW1] | hex_data[ROW2] |
hex_data[COL0] | hex_data[COL1] | hex_data[COL2] | hex_data[COL3],
};
// Hex data for each col of keypad in PCF8574
int col[4] = {hex_data[COL0], hex_data[COL1], hex_data[COL2], hex_data[COL3]};