Autor Tema: Pic+PicBasic vs Motores CC  (Leído 2206 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Zero13

  • PIC12
  • **
  • Mensajes: 66
Pic+PicBasic vs Motores CC
« 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

Desconectado manupri

  • PIC10
  • *
  • Mensajes: 21
Re: Pic+PicBasic vs Motores CC
« Respuesta #1 en: 17 de Junio de 2008, 15:55:48 »
Hola compañero Zer13
« Última modificación: 17 de Junio de 2008, 16:04:19 por manupri »

Desconectado manupri

  • PIC10
  • *
  • Mensajes: 21
Re: Pic+PicBasic vs Motores CC
« Respuesta #2 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

 
« Última modificación: 17 de Junio de 2008, 16:18:39 por manupri »