Sou iniciante com o arduino. Estou com dificuldades em fazer o comando while parar a repetição. Posso usar um comando if dentro do while? Alguém pode me ajudar em como fazer isso?
if(MFCS == HIGH & MFCC == HIGH & MStart == HIGH & L == 0 ){
while(B > 3){
digitalWrite(dir2,LOW);
digitalWrite(pul2,HIGH);
delayMicroseconds(Intervalo2);
digitalWrite(pul2,LOW);
delayMicroseconds(Intervalo2);
if (MFCV1 == HIGH){
B = 2;
}
}
A = 3;
digitalWrite(ValvulaVacuo, HIGH);
delay(1000);
}`Use esta tag para formatar o código para o fórum`
Olhando ao teu código eu vejo uma possibilidade para ele "não funcionar"...
Com esses delays, existe a possibilidade de o que tens "ligado" à variável MFCV1, assumindo que está ligada a um pino ou sensor, mude de estado mas o código não esteja a correr para detectar essa mudança.
O outro problema poderá mesmo ser que a variável B tenha de ser recalculada fora desse while, para a lógica funcionar, mas não o faz e como tal o loop continua a funcionar.
Outro mecanismo que se costuma fazer é mesmo um timeout no loop while para garantir que não prende toda a funcionalidade do sistema.