hola!
Estoy controlando 2 valvulas con un puente h y quiero que mientras la valvula A este abierte la valvula B este cerrada para diferentes tiempos y con ciclos que se pueden repetir (un ciclo seria la suma de los tiempos de valvulas abiertas)
lo estoy intentando hacer con while pero no consigo hacerlas funcionar les dejo mi codigo
#define ENA 2
#define IN1 28
#define IN2 29
#define ENB 3
#define IN3 30
#define IN4 31
int Ciclos=5,Thipp, Thip=5,Tnorr,Tnor=5;
//Thip para el tiempo que abra la valvula A, Tnor para la B, Thipp,Tnorr sirven como contadores
void setup()
{
Serial.begin(9600);
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENB,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
}
void loop()
{
//entramos al bucle de ciclo
while(Ciclos>0){
Thipp=Thip;//iniciamos los contadores
Tnorr=Tnor;
Serial.print(Ciclos);
Serial.print("\n");
Serial.print(Thip);
Serial.print("\n");
Serial.print(Tnor);
Serial.print("\n");
while(Thipp>0){//abre la valvula A
analogWrite(ENA, 255);
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
Thipp--;//disminuye el contador
delay(1000);
if(Thipp==0){//cierra la valvula A
analogWrite(ENA, 0);
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
Tnorr=Tnor;//iniciamos el contador para B
}
while(Tnorr>0){//abrimos B
analogWrite(ENB, 255);
digitalWrite(IN3, 1);
digitalWrite(IN4, 0);
Tnorr--;//disminuimos el contador
delay(1000);
if(Tnorr==0){//cerramos B
analogWrite(ENB, 0);
digitalWrite(IN3, 1);
digitalWrite(IN4, 0);
Thipp=Thip;//para empezar otro ciclo
}
}
}
delay(1000);
Ciclos--;//disminuimos el ciclo en 1
delay(1000);
}
}
no he llegado a nada, ¿algun fallo en mi codigo ?
Saludos