Робот на ардуино не едет назад. Как исправить?
У вас по нажатию кнопок в верх и вниз задается одно и тоже направление вращения

if(ps2x.Button(PSB_PAD_UP)) {
  // ***
  // устанавливаем направление мотора «M1» в одну сторону
  digitalWrite(DIR_1, LOW);  // <<<<<
  // ***
}

if(ps2x.Button(PSB_PAD_RIGHT)){...}
if(ps2x.Button(PSB_PAD_LEFT)){...}

if(ps2x.Button(PSB_PAD_DOWN)){
  // ***
  // устанавливаем направление мотора «M1» в другую сторону
  digitalWrite(DIR_1, LOW); // <<<<< 
  // ***
}
Тяжко разглядывать неформатированный код (и часть первой строки потеряли). Комментарии про "ждём одну секунду" накиданы вообще от балды где надо и где не надо, только путают. Поэтому вижу как минимум одну явно лишнюю задержку - при обработке кнопки "назад" между включениями первого и второго моторов. 
Ну и надо описывать проблему точнее. "Не едет назад" - а что происходит, когда нажимаете кнопку "назад"?
И ещё. В коде есть вывод отладочной информации в последовательный порт. При нажатии кнопки "назад" соответствующее сообщение выводится?