TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: Zero13 en 16 de Marzo de 2005, 14:34:00

Título: Pic+PicBasic vs Motores CC
Publicado por: Zero13 en 16 de Marzo de 2005, 14:34:00
Hola amigos, tengo un problema ya que estoy intentando controlar un servomotor de 3.2 kg habiendole quitado toda la electronica y dejandole solamente el motor de Corriente continua y la reductora para no perder la fuerza par.

He conseguido a traves del L293 ( puente en H ) controlar este motores con la siguiente orden:

Canal PORTd

high portd.0
low portd.1
high portd.2
low portd.3

De esta manera va hacia adelante y para atras pues a la inversa cada linea...

Todo esto dentro de un tipico inicio: ---> goto inicio

El problema viene cuando quiero hacer por ejemplo:

Que vaya un poco hacia atras ( 1 segundo )
+
Que gire 180 grados ( lo que dure el giro )

...estas dos cosas dentro de una subrutina...llamada evasion:

No se como hacerlo...quizas sea una chorrada...pero es que no encuentro la solucion...

ya que solamente me funciona adelante ó atras, pero va a piñon fijo.....aunque le indique el tiempo dentro de un bucle ( for bucle=1 to 50 ) lo ignora...y no para.

Alguien me puede dar alguna idea ó manera ??

Gracias
Zero13
Título: Re: Pic+PicBasic vs Motores CC
Publicado por: manupri en 17 de Junio de 2008, 15:55:48
Hola compañero Zer13
Título: Re: Pic+PicBasic vs Motores CC
Publicado por: manupri en 17 de Junio de 2008, 16:02:04
Hola compañero Zero13 decirte que cuando declaras con alto o bajo ( high o low) no  es necesario indicar el port delante.
Aqui te dejo este código, con él controlo 2 motores dc, de los cuales uno gira constantemente y el segundo motor gira al contrario durante un tiempo determinado, esto lo hace cuando se pulsa un button pulsador.
Lo puedes usar en un cochecito  donde rodara hasta tropesar con un obstaculo en ese momento el cochecito girara hacia detras x segundos y volvera a reanudar la marcha.
Espero que te sirva de ayuda.
saludos..


Device= 16f84A         'Micro a usar
XTAL 4                      ' frecuencia externa del crystal a usar
TRISA.0=1                'asignamos al bit 0 del puertoA como entrada
TRISB=%00000000    'todos los bit del puerto B seran salidas

inicio:                        ' etiqueta donde volbver con goto
       
       if portA.1=0 then terminar else    ' interruptor de parada general
         if portA.0=1 then          'si no pulsamos el boton entonces ocurre lo siguiente
            high 6: low 4: high 7     ' gira el motor hacia delante
        else         'si por lo contrario es pulsado entonces ocurre lo siguiente
             low 6: high 4: low 7: low 1: high 0         'el segundo motor gira hacia la izquierda durante un tiempo determinado

        delayms 3000    ' aqui determinamos el tiempo
      endif             ' finaliza la comprobación

goto inicio    ' y volvemos ala etiqueta inicio

terminar:      'parada total del programa y por consiguiente de los motores

end  'fin