O código parece bastante confuso...
Que é que aparece no serial.print? O que é que o programa não faz? Sem saber qual é o problema ao certo é impossível de dizer qual é o problema.
Não gosto muito desses delays no programa... Esse de 3 segundos é, muito provavelmente, o que está a dar barraca. Explica o que vês de errado e a gente ajuda.