Hola Queridos Genios del Forum:
Resulta que estoy tratando de implementar un dispensador de pasta de soldadura para circuitos
SMD que encontre en el Forum (forum.arduino.cc/index.php?topic=245639.0), este sketch, compila
bien, hago todas las conexiones pertinentes (creo yo?) y no funciona.
Alguien seria tan amable en darme una mano?, gracias de antemano. Saludos,
JAIME
Bueno esto funciona con la válvula de alivio.
#define Pulsador 2 // Pin usado para el pulsaador
#define V_Alimen 3 // Pin usado para Valvula alimentaciHIGH
#define V_Alivio 4 // Pin usado para Valvula alivio
bool Estado_Pulsador = false; // Para cHIGHtrolar el estado del pulsador
bool Estado_Anterior = false; // Para cHIGHtrolar los cambios de estado del pulsador
unsigned long T_Alivio = 1000; // Milisegundos que estara la valvula alivio abierta
unsigned long MillisT = 0; // Para cHIGHtrolar el timpo de valvula de alivio
unsigned long U_Millis = 0; // Para cHIGHtrolar eldesborde de millis()
void setup()
{
pinMode(Pulsador, INPUT); // Establecer pin de pulsador como entrada
pinMode(V_Alimen, OUTPUT); // Establecer pin de valvula1 como salida
pinMode(V_Alivio, OUTPUT); // Establecer pin de valvula2 como salida
digitalWrite(V_Alimen, LOW); // Desactivar rele valvula 1
digitalWrite(V_Alivio, LOW); // Desactivar rele valvula 2
Serial.begin(9600);
}
void loop()
{
U_Millis = millis(); // Cargamos millis para comprobar desborde
Estado_Pulsador = digitalRead(Pulsador); // Leer pin pulsador
if (Estado_Pulsador != Estado_Anterior) { // Ha variado el estado del pulsador
if (Estado_Pulsador) { // Pulsador pulsado
Serial.println("Desactivar valvula alivio");
digitalWrite(V_Alivio, LOW); // Desactivar valvula alivio
delay(100); // Dejamos tiempo para que actue la valvula
digitalWrite(V_Alimen, HIGH); // Activar alimentaciHIGH
MillisT = 0; // No hay tiempo de alivio
}
else { // Pulsador soltado
digitalWrite(V_Alimen, LOW); // Desactivar alimentaciHIGH
digitalWrite(V_Alivio, HIGH); // Activar valvula alivio
MillisT = millis() + T_Alivio; // Tiempo para parar la valvula de alivio
}
}
Estado_Anterior = Estado_Pulsador;
// if (U_Millis > millis()) { // Millis ha desbordado
// Serial.println("Desborde");
// MillisT = MillisT - U_Millis + millis(); // Nuevo tiempo para fin alivio
// Serial.print("MillisT=");
// Serial.println(MillisT);
// }
if (MillisT - millis() > T_Alivio) { // Finalizo tiempo para desactivar valvula alivio
Serial.println("Desactivar valvula alivio"),
Serial.print("MillisT=");
Serial.println(MillisT);
digitalWrite(V_Alivio, LOW); // Desactivar valvula alivio
MillisT = 0; // Dejamos de cHIGHtrolar el tiempo
}
}