Continuano a girare per un secondo, dato da:
if (val1 ^ val3) // la condizione è vera solo se uno dei due sensori è attivo ( LOW = 0 volts = switch chiuso ). Se entrambi sono HIGH oppure entrambi sono LOW , la condizione è falsa.
// per cui se il robottino è chiuso davanti e dietro , rimmarà fermo e non eseguirà quindi il ciclo for.
{
delay(1000);
^^^^^^^^^^^^^^^^
gli stai dicendo che se uno dei sensori è attivo deve aspettare un secondo prima di fare altro