tentei o que o HugoPT disse e nao resultou, ficava parado nessa parte, mesmo que o switchPin2 passase a LOW, nao andava mais, faltava á frente o == HIGH.
De momento ficou assim:
while(digitalRead(switchPin2) == HIGH) { }
if (digitalRead(switchPin2) == LOW)
{
digitalWrite(motortubo, HIGH); // liga o motor do tubo
delay(6000); // fica ligado 6segundos
digitalWrite(motortubo, LOW); // desliga o motor do tubo
}
Resumindo adicionei a linha while(digitalRead(switchPin2) == HIGH) { }, e apaguei o ELSE .
Bubulindo, mais tarde coloco o codigo como postaste e depois deixo feedback, sou muito novato nisto mas já li por ai que nao se deve usar o DELAY, mas não percebi o porquê,

obrigado a todos