oferta

martes, 28 de diciembre de 2010

INVERSION DE GIRO: MOTOR DC

En robotica se emplea mucho el control de motores DC para hacer la inversion de giro, como sabemos un motor de corriente continua tiene 2 polos: positivo y negativo, para hacer la inversion del motor solo tenemos que invertir la polaridad de la fuente y conectar al motor DC.

Inversion de giro para motor DC con el pic16f84a con puente H



Este programa controla un motor DC mediante un swicth en el puertob (Rb0) y utilizando Rb1 y Rb2 del puertob como salida para enviar los pulsos que invertiran el giro del motor DC, en el circuito deberan conectar ademas el cristal de 4 mhz y su respectiva alimentacion de 5Vdc.
Q1,Q2,Q3,Q4=BC548 para motores pequeños y TIP41 para motores grandes.
R1,R2,R3,R4= 300 ohmios.

;Programa para inversion de giro de motor DC
list p=16f84a           ; declaramos el pic que usaremos
; Declaracion de registros a usar
puertob  equ 0x06
trisb       equ 0x86
status     equ  0x03
; Configuracion de puertos
org        0x00
bsf        status,5               ; nos vamos al banco 1 de la memoria del pic
movlw   b'0000001'        ; guardamos en el registro W a  Rb0 como entrada
movwf   trisb                   ; y Rb1 a Rb7 como salidasy  mandamos lo de W a trisb
bcf        status,5              ; regresamos al banco 0 de la memoria del pic
; Programa principal
inicio   btfsc puertob,0                   ;  testeamos Rbo (pin6) si esta en 0 o 1
           goto izquierda                    ;  vamos a la etiqueta izquierda
           goto derecha                      ; vamos a la etiqueta derecha
izquierda   bsf puertob,1                ;  encendemos pin Rb1
                 bcf puertob,2               ;  y apagamos Rb2 para giro a la izquierda
                 goto     inicio                ; regresamos a inicio a ver si cambio el swicth
derecha    bcf  puertob,1               ; apagamos pin Rb1
                bsf  puertob,2               ; y encendemos Rb2 para invertir giro de motor
                goto     inicio                 ; regresamos a inicio a ver si cambio el swicth
                end                               ; y terminamos

Un proyecto mas interesante aplicando el control de un motor DC , ascensor de 4 niveles, para que lo bajen.

http://www.proyectoselectronicoos.blogspot.com/

27 comentarios:

  1. al fin algo que se puede entender sobre microcontroladores, sigan asi y adelante...

    ResponderEliminar
  2. saludos... gracias por el dato... debo controlar un sistema de ball and beam... y estuve apunto de comprar un servomotor...

    ResponderEliminar
  3. de nada amigo pero que es un ball and beam?

    ResponderEliminar
  4. bueno.. es un sistema que busca mantener equilibrada una bola sobre una barra..
    la bola me mueve libremente sobre la barra. Con el fin de estabilizar el sistema y mantener la bola en el centro de la barra, se varia el angulo de la barra...
    ese es el funcionamiento del sistema. A grandes rasgos!!.. xD

    ResponderEliminar
  5. Muy buen aporte me sirvio gracias :D

    ResponderEliminar
  6. oralee k chido no habia yo entendido pero buen dato

    ResponderEliminar
  7. como puedo controlar un puente h con un pic 6f84a en el que con 2 pulsadores pueda controlarlo con un pulsador un giro y con otro el sentido contrario!!!

    ResponderEliminar
    Respuestas
    1. Yo nesesito eso mismo ase tiempo que se publico este mensaje no podrías alludarme con el circuito que ayas utilizado

      Eliminar
    2. Yo nesesito eso mismo ase tiempo que se publico este mensaje no podrías alludarme con el circuito que ayas utilizado

      Eliminar
  8. El programa es el mismo que esta aqui, por q es un puente h EL QUE ESTAMOS CONTROLANDO

    ResponderEliminar
  9. HOLA BUENAS TARDES HE TRATADO DE RECREAR EL CIRCUIO. PERO ENGO PROBLEMAS CON EL PUENTE H. PERO AUN NO LO PUEDO HACER. HE LEIDO QUE SE NECESITA HACER EL PUENTE CON TRANSISTORES PNP Y NPN QUE DE CIERTO HY EN ESTO. Y TENGO LOS BC548 CUAL SERIA EL TRANSISTOR CONRARIO. SALU2

    ResponderEliminar
  10. puedes usar los bc558 q son pnp, yo probe con 4 bc548 me funciono normal, cuestion de polarizar bien nomas.

    ResponderEliminar
  11. me gustaria saber el programa en .hex :(

    ResponderEliminar
  12. el programa fuente esta hecho en asembler,el archivo hex lo compilas con el MPLAB de microchip, te lo puedes bajar de internet es gratis

    ResponderEliminar
  13. Oye tengo un proyecto en el cual tengo que controlar: sentido de giro, paro y velocidad de un motor dc, pero la programación tiene que ser en C, no se si me puedas ayudar.

    ResponderEliminar
  14. Te sugiero que hagas tu circuito para mas o menos poder ayudarte.

    ResponderEliminar
  15. Excelente información, justo lo que necesito, soy algo inexperta por lo cual no reconozco algunos componentes del circuito, me puedes decir cuales utilizaste?

    ResponderEliminar
    Respuestas
    1. Q1,Q2,Q3,Q4=BC548 para motores pequeños y TIP41 para motores grandes.
      R1,R2,R3,R4= 300 ohmios. y un cristal de 4 mhz y 2 condesnadores de 22pf.

      Eliminar
  16. hola buenas noches e tratado de compilar el programa para tener el archivo .hex pero me marca error:

    Clean: Deleting intermediary and output files.
    Clean: Deleted file "C:\Users\Ing. Miguel\Desktop\programa.mcs".
    Clean: Done.
    Executing: "C:\Program Files (x86)\Microchip\MPASM Suite\MPAsmWin.exe" /q /p18F452 "programa.asm" /l"programa.lst" /e"programa.err" /o"programa.o"
    Warning[205] C:\USERS\ING. MIGUEL\DESKTOP\PROGRAMA.ASM 2 : Found directive in column 1. (list)
    Warning[215] C:\USERS\ING. MIGUEL\DESKTOP\PROGRAMA.ASM 2 : Processor superseded by command line. Verify processor symbol.
    Warning[205] C:\USERS\ING. MIGUEL\DESKTOP\PROGRAMA.ASM 3 : Found directive in column 1. (INCLUDE)
    Error[105] C:\USERS\ING. MIGUEL\DESKTOP\PROGRAMA.ASM 3 : Cannot open file (Include File "C:\PROGRAM FILES (X86)\MICROCHIP\MPASM SUITE\<P16F84A.INC")
    Warning[205] C:\USERS\ING. MIGUEL\DESKTOP\PROGRAMA.ASM 9 : Found directive in column 1. (org)
    Warning[203] C:\USERS\ING. MIGUEL\DESKTOP\PROGRAMA.ASM 10 : Found opcode in column 1. (bsf)
    Warning[203] C:\USERS\ING. MIGUEL\DESKTOP\PROGRAMA.ASM 11 : Found opcode in column 1. (movlw)
    Warning[203] C:\USERS\ING. MIGUEL\DESKTOP\PROGRAMA.ASM 12 : Found opcode in column 1. (movwf)
    Warning[203] C:\USERS\ING. MIGUEL\DESKTOP\PROGRAMA.ASM 13 : Found opcode in column 1. (bcf)
    Halting build on first failure as requested.
    BUILD FAILED: Sun Jul 14 21:26:15 2013

    espero puedas ayudarme gracias

    ResponderEliminar
  17. tienes que aprender a manejar el mplab, consigue un tutorial hay bastantes solo fijate que sea la version de mplab que estas usando

    ResponderEliminar
  18. Estimado tengo problemas con un programa del motor DC. Para que se mueva tengo que poner en 1 la entrada RA0 y con la entrada RB4 que decida el sentido de giro y las salidas son RB6, RB7 que entran al puente H y con la RB9 darle la partida en la pata 1 del puente H. Pero tengo el inconveniente que se mueve un rato pero después no hace nada, además me gustaría poder controlar la velocidad ya que gira muy rápido. Es posible me puedas ayudar con el programa? Saludos.

    ResponderEliminar
  19. Si gustas te puedo mandar el programa que tengo hecho.

    ResponderEliminar
  20. ok, mandame tu circuito en proteus mejor pa hacerle un programa.

    ResponderEliminar
  21. Mario, el circuito no tendria que tener un resistor para la base de cada transistor?

    ResponderEliminar
  22. exacto, hay veces hay q polarizar la base de transistor, recomiendo una resistencia de 330 ohmios hasta de un 1 kohm puede ser.

    ResponderEliminar
  23. Si quiero que el motor gire dos segundos para un lado y luego dos segundos para el otro en automático

    ResponderEliminar
  24. hola amigo me podrias esplicar algo

    ResponderEliminar