Hola a todos:
Es mi primera vez que publico un post en este forum de antemano disculpas si de pronto no me haga entender o algún error de redacción.
Estoy realizando un control de velocidad para un motor AC desde una App hecha en MIT App Inventor, los comandos enviados desde la app son simples, que cuando pulse el botón me envíe un comando para poner andar el motor de acuerdo a la velocidad que le he dado desde la misma app y cuando lo suelte envíe otro comando para poner en LOW el pin analógico donde me regula la velocidad es como si apagara el motor.
Un saludo!
Codigo:
void setup() {
Serial.begin(38400);
pinMode(led_Q10,OUTPUT);
digitalWrite(led_Q10,LOW);
pinMode(variar_freccarro_Q8,OUTPUT);
pinMode(finalccarro_I1,INPUT);
}
void loop(){
if( Serial.available()){
dato = Serial.read(); // leer el dato recibido
}
fccarro = digitalRead(finalccarro_I1);
Motores();
Finales_de_carrera();
}
void Motores(){
if(contcarro == 0){
if (dato == 'c'){ // boton variador norte presionar
Serial.println("y"); //enciende led movimiento
delay(300);
contcarro = 1;
}
}
if(contcarro1 == 0){
if (dato == 'd'){ // boton variador norte soltar
Serial.println("z"); //apaga led movimiento
delay(300);
contcarro1 = 1;
}
}
}
void Finales_de_carrera(){
if(contcarro1 != 0){
if(freccarro<214){
while(fccarro != HIGH){ // si final de carrera esta desativado aga esto constantemente
delay(100); //Retardo para favorecer el envio 6 desactivar final carrera
Serial.println("6");
delay(200);
analogWrite(variar_freccarro_Q8,freccarro);
Serial.print(freccarro);
fccarro = digitalRead(finalccarro_I1); //actualizar el valor de la variable
}
//Serial.print("DE REACCIÓN: ");
analogWrite(variar_freccarro_Q8,LOW);
delay(60);
Serial.print("5"); //Retardo para favorecer el envio 6 desactivar final carrera
contcarro = 0;
fccarro=0;
contcarro1 = 1;
}
else{
analogWrite (variar_freccarro_Q8,frec_maxcarro); //si sobrepasa el incremento los 214 se enviara de una rango maximo de frecuencia 255 que son 30Hz por el pin 6
//Serial.print("REACCIÓN MÁXI:");
//Serial.println(frec_maxcarro);
}
}
delay(500);
while (contcarro1 == 1){ // boton variador sur soltar
analogWrite(variar_freccarro_Q8,LOW);
Serial.println("DE REACCIÓN: 0");
contcarro1 = 1;
}
}