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.
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
}
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