Control de giro de motor DC con PIC18F4550 y L293D

miren lo que pasa es lo siguiente, tengo un pic18f4550 y un l293d para mover un motor, estableci como entradas los pines del b0 al b3 y a0 al a3, mi intencion es que cuando presione el boton 1(b0) el motor arranque y cuando un optointerruptor(a0) detecte señal de entrada el motor de me apague y asi sucesivamente en las demas entradas, ya hice un programa en pic c y no me marca error al compilarlo, el problema es que no me respeta las señales de entrada ya busque informacion en internet pero no encontre nada, aqui les dejo el programa para ver si me pueden ayudar, muchas gracias
 

Adjuntos

  • PROGRAMA.txt
    3 KB · Visitas: 197
ya hice un programa en pic c y no me marca error al compilarlo, el problema es que no me respeta las señales de entrada
No te indica errores de compilación, ¿pero que tal 22 advertencias?
Una no importante sobre while(1) y 21 advertencias sobre código sin efecto. :eek:
Aparte sin establecer los puertos como Digital I/O
Adjunto el programa corregido, pero como no adjuntas ningún diagrama, solo tu sabrás si te funciona.

Suerte.
 

Adjuntos

  • PROGRAMA.c.tXt
    3 KB · Visitas: 212
muchas gracias darkbytes, y perdon por no poner el diagrama,aqui lo dejo, soy nuevo con esto de la programacion :D otra cosa lo estoy simulando en proteus y lo que pasa es que no gira el motor, creo que es la conexion del integrado pero no lo se:S
 
OK. modifique el archivo de tu simulación, ya que le faltaban resistencias pull-down.
La frecuencia de trabajo de tu programa está en 48MHz, pero la simulación estaba en 4MHz.
Ahora si podrás notar algunos cambios, pero veras que aún así tu programa está algo mal.
También adjunto un ejemplo sencillo para controlar un motor DC, ya con eso podrás mejorar tu programa.

Suerte.
 

Adjuntos

  • 18F4550_L293_Test1.rar
    45.4 KB · Visitas: 1,082
Última edición:
Buenas! Necesito controlar un ventilador para que gire en las 2 direcciones.
Tengo un sensor LM35 que envía la temperatura al pic16f876a, en el cual tengo puesto un margen, 25ºC y 20ºC, bien pues quiero que cuando suba de 25 gire en un sentido y cuando baje de 20 gire en el otro. Para llevarlo a cabo uso 2 opto-acopladores 4N25 y un L293D (puente H).
Tengo 3 patillas libres en el pic16f876a que estoy programando en CCS.
Es la primera vez que uso motores y no se muy bien si se conectan así o no y tampoco se la instrucción que le tengo que mandar a los optos desde el Pic :cry: no se exactamente si con output_low(pin_c6) valdrá.
Espero que me resolváis las dudas.... un saludo y gracias :)
 

Adjuntos

  • proteus.jpg
    proteus.jpg
    10.8 KB · Visitas: 268
hola estoy tratando de hacer esto y la verdad me salio poco? me pueden ayudar en el lcd se puede mostrar la velocidad del motor o un porcentaje de cuanto esta funcionando.
 

Adjuntos

  • CONTROL DE MOTOR DC + PWM.rar
    85.6 KB · Visitas: 245
Atrás
Arriba