Make sketch shorter, simply

  for (char i=9; i<13; i++){       
  }

Well, that's useful. NOT.

int valToButton( uint16_t val )
{
  for (int i=0; i<arraySize; i++) {
    if (val <= minButtonVal[ i ]) {
      return i;
    }
  }

  // Too big!
  return 0;
}

This function will return 0 when val is less than minButtonVal[0] or when val is greater than minButtonVal[8]. Having 0 mean two different things is a BAD idea.