Enviar pulsos a un driver de motor pap con Arduino UNO

Hola, buenos días, estoy haciendo practicas para un proyecto de controlar motores PAP con un Arduino: El motor PAP va conectado en su driver y con el Arduino solo debería enviar los pulsos necesarios para que dicho motor vaya mas rápido o mas lento. Pongo información sobre el controlador que debo controlar: Productoscnc.es | Controladors pap

Yo he hecho esta programación pero no me sirve ya que quiero que el motor vaya mucho mas rápido y por mucho que ponga mas de 1000 siempre va igual de rápido y esto con un PLC no pasa.

void setup() {

  pinMode(9,OUTPUT);  //PULSO
}

void loop() {

      digitalWrite(9,HIGH);
      delayMicroseconds(1000);
      digitalWrite(9,LOW);
      delayMicroseconds(1000);

}

hay algunas otras funciones o algún otro pin para que pueda enviar mas frecuencia?

PD: Soy nuevo y no tengo ni idea. He leído algún tutorial y almenos he logrado hacer girar el motor.

Gracias

Moderador:
Por favor, lee las Normas del foro y edita tu título de acuerdo al punto 5 de las normas. Retira toda palabra inútil como "Ayuda ..."
El foro solo brinda ayuda asi que pedirla es redundante.
Lo demás bien posteado y bien los links.
Gracias.

Varia esos microsegundos hacia abajo claramente hasta lograr un valor en el que no responda.
Luego chequea si se comporta bien y toma un margen de seguridad.
No recuerdo el valor en useg que lo hacia funcionar mas rápido.

Necesitas adjuntar el diagrama de conexión para obtener una mejor asesoría, vi el datasheet de los controladores de motores que adjuntas donde se puede acotar varios puntos interesantes:

  • Voltaje para el estado “0” es entre 0-0.5V
  • Voltaje para el estado”1” es entre 4-5V
  • Corriente mínima para la señal lógica = 10mA
  • Corriente máxima para la señal lógica =20mA
  • Frecuencia máxima entrada =100Khz
  • Ancho de pulso mínimo =5µs
    En primera debes averiguar si el Arduino con el que estas trabajando satisface las condiciones de tu controlador de motor, porque no mencionas si trabajas con el arduino MEGA, UNO, Mini, Leonardo o el que estes usando, con respecto al codigo, parece que no sabes como funciona la modulacion por ancho de pulso, adjunto un link para que revises como realizar PWM con arduino,
    PWM con Arduino

Una vez hayas analizado las variables te dejo una modificación para que pruebes si te funciona

int duty_cycle= 100; // Introducir el valor del rango del pulso entre 0 y 255
void setup() {

  pinMode(9,OUTPUT);  //PULSO
  digitalWrite( 9, LOW ); //Se inicia el pulso en BAJO
}

void loop() {

      analogWrite(9,duty_cycle);
      delayMicroseconds(5000); //el pulso minimo de operacion de controlador que pasaste es 5uS
      // si no te funciona con 5000 prueba a usar 10000 
}

1 Like

Hola, muchas gracias, a veces las cosas mas simples parecen las mas complicadas, solo hacia falta que bajara el numero a 700.

Hola, muchas gracias por la información, no sabia nada del PWM. Cada día se aprende algo nuevo. El resultado del programa parece que es el mismo pero puse tu código ya que se ve mas limpio que el mío. A 7000 funciona perfecto. Gracias

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.