Bienvenido, Invitado
Nombre de Usuario: Contraseña: Recordarme
  • Página:
  • 1

TEMA:

CONSULTA PID 4 años 10 meses antes #344

Buen dia Jose Luis en principio saludarte y agradecer todo lo que haces por nosotros, es muy valioso, espero puedas vivir de esto, eso estaria barbaro,

MI CONSULTA ES LA SIGUIENTE: Estoy usando un PID para calcular impulsos de un motor paso a paso en funcion de un dato disponible por puerto Serie,(valores de distancia) ese dato ingresa cada 500 milisegundo lo cual creo que ahi esta el problema porque mis input son discretos y no valores analogicos, mi pregunta es si se te ocurre alguna solucion para transformar esos valores de entrada a analogicos, y simular algo por ejemplo si la orden de impulsos me hizo mover el motor a la izquierda por ejemplo 700 impulsos yo pude relacionar esos impulsos con la distancia y pude hacer que a medida que transcurren los impulsos me vaya disminuyendo la distancia POR si te sirve esta info para convertirla a Analogica y que funcione mi PID, tambien hice otro PID con un sensor potenciometro y anda perfecto, por eso mi duda, aca te paso parte del codigo,(puede faltar alguna parte pero en el void set up defino el PID tal cual vos lo esplicas eso no seri el problema pasa por ser discreta la entrada creo, te mando un abrazo y espero si se te ocurre alguna idea, GRACIAS

Void loop()
{
if (Serial.available() > 0)
{
delay(20);
bufferString = "";
while (Serial.available() > 0) {
bufferString += (char)Serial.read();
}

distancia = bufferString.toFloat();
distanciaAbs = fabs(distancia);
if ((distanciaAbs > 0) && (distanciaAbs <= 3.00))

inpDCorta = distancia;
pidDistCorta.Compute();
}
for (int i = 0; (i <= fabs(outDCorta)); i++) {


digitalWrite(enbl, distancia > 0 ? HIGH : LOW); // ANTI HORARIO. (PIN 8 Arduino) // PARA BANCO PRUEBA --> LOW : HIGH
digitalWrite(dirPin, HIGH); // Habilita DIR HIGH
digitalWrite(stepPin, HIGH); // Pulso Positivo
delayMicroseconds(TIEMPO_ENTRE_IMP2 * valorVelocidadGIRO); // Interrupcion de Pulso
digitalWrite(stepPin, LOW); // Pulso Positivo
delayMicroseconds(TIEMPO_ENTRE_IMP2 * valorVelocidadGIRO); // Interrupcion de Pulso


}

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Última Edición: por ingenieriareyna.

CONSULTA PID 4 años 10 meses antes #345

Siento decirte que he leido varias vefces el enunciado y no he entendido nada de lo que pretendes.
No se si alguien te puede entender lo que buscas para ayudarte.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

CONSULTA PID 4 años 10 meses antes #346

Jose luis consulta la entrada a un PID (INPUT) pueden ser numeros como ser valores de distancia cuando el puerto Serie esta disponible, o tiene que ser valores de voltaje que es lo que ingresa en una entrada analogica, esa seria la consulta, perdon por ahi la complique:blink: , gracias

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

CONSULTA PID 4 años 10 meses antes #347

El imput del PID es un valor que puedes tomarlo de donde quieras, de una entrada analogica, de un valor que le llegue por el puesto serial, de una variable puesta en una pantalla. Vale desde cualquier sitio.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

  • Página:
  • 1
Tiempo de carga de la página: 0.091 segundos
Gracias a Foro Kunena