TODOPIC
Mecatrónica => Robótica => Mensaje iniciado por: toovic en 06 de Febrero de 2006, 04:20:00
-
hola,
estoy haciendo un brazo robot con 5 motores pap, controlado con un 16f876.
Como no tengo suficientes salidas los estoy intentando controlar atraves de bus i2c, tambien extoy utilizando un expansor pcf8574. Y me estoy volviendo loco pues cuando me funciona uno el resto no me funciona.
Podria ayudarme alguin-- Gracias
-
Hola, antes que nada deberias poner en que lenguaje de programacion estas trabajando y un pequeño esquema de tu circuito, para entenderlo mejor... Por lo que entiendo tienes conectado el pic por i2c al pcf8574 y este con algun driver a los motores de paso, p.e. uln2003 u otro parecido. Si es asi, tu problema deberia ser de software y no de hardware...
Revisa eso y comentanos como te fue.
-
Hey,


Gracias por responder Artifox, la verdad es que es la primera vez que escribo y no tenia mucha ida de como hacerlo. Pero bueno te cuento un poco.
El lenguaje que utilizo es C, y como bien has dicho, tengo el 16f876 conectado a i2c,a traves de los pines Pin_c3 y Pin_c4, y a estas lineas, el expansor pcf8574. Cada expansor lo tengo con una direccion distinta, a su vez en la salida de cada expansor, les conecto un driver L293B, para controlar cada motor. Tambien habia pensado en colocar una LCD a traves de i2c,para que indicara que motor se estaba moviendo, pero todavia no se si la pondre.
Para accionar cada motor queria poner un pulsador, y asi al ser accionado, deberia andar el motor correspondiente... pero chico cada vez que pulso para que ande un motor.. bien, pero al pulsar para otro motor, no hace nada. Los pulsadores los tengo conectados directamente a puerto B
Para que los pulsadores entraran en funcionamiento, los hacia a traves de interrupciones(cuatro de Int_RB y la otra de Int_ext). No se si esto puede ser la fuente de algun error.
Todo esto lo he simulado con Proteus, pero no me simula bien, ya que tira demasiado de la cpu (100%) Asique lo estoy montando en board, y por ahora me hace los mismo. Azique estoy mirando el circuito y a ver.
Que te parece?
Un Saludo 
-
Bueno, si como dices vas a controlar 5 motores pap y quieres alguna forma para direccionarlos, porque no le pones un teclado y un LCD, me parece q seria mejor... por otro lado, mas que seguro que el problema lo tienes con las interrupciones por RB0 y por el puerto B.
No se si eso sera lo que pretendes, pero de todas maneras revisa bien las interrupciones o si puedes pon aca tu codigo para darle una mirada.
Nos vemos
-
Hola Artifox,
No he podido hacer nada con el robot, este finde intentare ponerme otra vez con el. Lo del teclado lo habia pensado, pero no me convencia xq tenia que colocarlo tambien a traves del i2c. La verdad q es la mejor opcion, asiq volvere a retomarla.
Del problema de las interrupciones, no se ahora mismo a que te refieres, pero revisare todo este finde y te contaré. Gracias por tu tiempo y nos vemos... 
Un Saludo 

-
hola Artifox,


Ya he vuelto. Al final ya consegui mover el brazo!!

Lo que hice, fue colocarle al pic un expansor, al cual iban conectados los pulsadores. Y dependiendo de cual se pulse, se activa un motor u otro.
Como ya comente esta todo basado en la comunicacion Bus I2C. (tanto los pulsadores como los motores pap)
El problema que me daba ... pues no lo se. Lo que hice fue poner los pulsadores con una interrupcion externa y que ejecutara el programa, es decir cambie algunas cosillas de las que hice al principio.
La LCD, al final la quite pues no me funcionaba. No se que sera, pero seguire probando. y el programa lo quiero mejorar, y completar un poquito. 
Bueno gracias por tu tiempo y ayuda


un Saludo
-
Hola toovic, me alegro que ya te este funcionando


A ver si nos pones un par de fotos cuando ya funcione bien 

Un abrazo.
-
En este mensaje comento los problemas y la solucion a la utilizacion de la interrupcion externa. Espero que te sirva.
http://miarroba.com/foros/ver.php?foroid=46840&temaid=4428090
-

Hola a todos, pss ese proyecto del brazo va muy bien eh!!
Actualmente estoy trabajando con algo similar a tu brazo pero en lugar de motores a paso uso motoreductores con engranaje extra para colocar un potenciometro y medir con el convertidor AD el estado del brazo claro dando mediante programacion ciertos rangos para que no oscile tanto al intentar bsucar una posicion, usar pwm, l293d etc, tal ves puedas hacer pequeños experimentos con esto y veras que no es tan dificil y ademas que solo para ver la posicion ves los registros del adc en lugar de contar pasos por donde andara tu brazo, esta podria ser un experimento aparte aclaro.. eh
Este sistema lo voy a emplear con un robot guiado por compu, y con un rostro a base a una matrix 256 de led (el lcd no se ve, ke mas kisiera un GLCG)= con conexion ala compu.![Helado Helado]()
Aprovecho pa" saludar a todos los del foro pk aunke pekeña es mi primera contribución jejeje
