# Control de giro de motor DC con PIC18F4550 y L293D



## Micky95 (Feb 21, 2013)

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


----------



## D@rkbytes (Feb 21, 2013)

Micky95 dijo:


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


----------



## Micky95 (Feb 22, 2013)

muchas gracias darkbytes, y perdon por no poner el diagrama,aqui lo dejo, soy nuevo con esto de la programacion  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


----------



## D@rkbytes (Feb 23, 2013)

Micky95 dijo:


> perdón por no poner el  diagrama, aquí lo dejo


Creo que se te olvido otra vez. 


Micky95 dijo:


> lo estoy simulando en proteus y lo que pasa es que no gira el  motor,
> creo que es la conexión del integrado pero no lo sé


Yo tampoco, y sin diagrama menos. 

Sube tu proyecto dentro de un archivo comprimido para que lo podamos ver.


----------



## Micky95 (Feb 23, 2013)

ahi esta el diagrama


----------



## D@rkbytes (Feb 23, 2013)

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.


----------



## jose011 (Feb 24, 2013)

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  no se exactamente si con  output_low(pin_c6) valdrá.
Espero que me resolváis las dudas.... un saludo y gracias


----------



## callecuatro1976 (May 19, 2015)

muy bueno el programa y la simulación con inversión de giro ahora me pregunto se puede mostrar en un lcd la velocidad del motor ?? y usar un pic 16f883?


----------



## callecuatro1976 (May 23, 2015)

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.


----------

