У меня есть мысль, что если объявить char и присвоить ему отрицательное значение (char a = -10;), это будет означать signed char, если положительное - unsigned char.
Тогда проще: boolean start; start=false; дальше цикл с digitalRead ожиданием 6 команд (1,0,1,0,1,0), если все 6 команд пришли, то start = true; Если (start = true), выполняем основной код.