Опрашивать выходы 32 оптопар можно, используя 12 ножек МК - просто объединить их в матрицу 8 * 4.
Управлять 32 диодами оптопар можно, используя 18 ножек МК - объединить их в матрицу 2 * 16 и разделять по времени с коэффициентом 2 (как будто бегущая строка высотой 2 пиксела). Имхо, светодиоды оптопар прекрасно ШИМятся, если частота ШИМа превышает скорость их включения/выключения.
Итого 12 + 18 = 30 ножек.