Ich würde einfach eine for schleife einbauen, mit dem Zähler die Spalten einzeln einschalten und dann alle 4 Eingänge überprüfen.

Ein/Ausgänge schreibe ich meistens als defines, zB #define Bumper (!(PINA &(1 << PINA4))) oder #define LED_gr_ein (PORTB &= ~(1<<DDB5)).

Die Abfrage im Code ist einfach: if (Bumper) {...} oder LED_gr_ein;
So kann man den Code leichter lesen, aber für guten Code habe ich selbst noch einiges zu lernen....

LG!