Parque de Estacionamento Utilizando o Arduino Uno

como assim fazer o algoritmo no papel?

A minha sugestao e desenhares tipo com baloes e instruçoes de decisao num papel o diagrama que o teu programa tem de fazer e resolver mediante o desafio que tens.
Partes cada bocado num pequeno problema e vais criando funçoes para cada uma delas
Por exemplo no teu codigo que postaste estas a repetir a mesma coisa imensas vezes para ligares os leds com o numero de lugares no parque.Para contornar isso podes usar uma variavel de 8 bits e mandares essa variavel directamente no Porto onde tens os leds.Assim podes usar uma funçao para la escrever de uma forma simples:

void writeVariableToPortB(uint8_t valueToPort)
{
DDRB = 0x1F;        //seta os 5 bits menos significativos do porto B como outputs
PORTB = valueToPort;             //escreve valor na PortaB
}

Ve esta pequena tabela de verdade que fiz no excel sobre os valores que a variavel que passas para a funçao terá de ter:
Ou seja se quiseres ligar o led 5 passas para a funçao uma variavel com o valor de 32 por exemplo:

uint8_t portVariable = 1;

void setup()
{
 DDRB = 0x1F; //seta os 5 bits menos significativos do porto B como outputs 0b00011111
 /*O portB tem como pinos no Atmega328 a seguinte ordem:
 bit0 do PortoB ----->Pino 8 no arduino
 bit1 do PortoB ----->Pino 9 no arduino
 bit2 do PortoB ----->Pino 10 no arduino
 bit3 do PortoB ----->Pino 11 no arduino
 bit4 do PortoB ----->Pino 12 no arduino*/
}
void loop()
{
  for(uint8_t i = 0; i<=4;i++)
 {
   writeVariableToPortB(portVariable);
   portVariable = portVariable * 2;
   delay(1000);
   if(portVariable == 64)portVariable = 1;//Renicia o ciclo
 }

}
void writeVariableToPortB(uint8_t valueToPort)
{
PORTB = valueToPort;//Escreve o valor no PortoB
}

Este codigo deverá fazer correr os 5 leds e devera dar para resolveres essa repetiçao de codigo.Agora resolves os outros erros ...

TabelaVerdade.png