Control de giro de motor DC con PIC18F4550 y L293D

#1
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

#2
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

#3
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
 
#6
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

Última edición:
#7
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

Arriba