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/
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/
al fin algo que se puede entender sobre microcontroladores, sigan asi y adelante...
ResponderEliminarsaludos... gracias por el dato... debo controlar un sistema de ball and beam... y estuve apunto de comprar un servomotor...
ResponderEliminarde nada amigo pero que es un ball and beam?
ResponderEliminarbueno.. es un sistema que busca mantener equilibrada una bola sobre una barra..
ResponderEliminarla 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
Muy buen aporte me sirvio gracias :D
ResponderEliminaroralee k chido no habia yo entendido pero buen dato
ResponderEliminarcomo 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!!!
ResponderEliminarYo nesesito eso mismo ase tiempo que se publico este mensaje no podrías alludarme con el circuito que ayas utilizado
EliminarYo nesesito eso mismo ase tiempo que se publico este mensaje no podrías alludarme con el circuito que ayas utilizado
EliminarEl programa es el mismo que esta aqui, por q es un puente h EL QUE ESTAMOS CONTROLANDO
ResponderEliminarHOLA 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
ResponderEliminarpuedes usar los bc558 q son pnp, yo probe con 4 bc548 me funciono normal, cuestion de polarizar bien nomas.
ResponderEliminarme gustaria saber el programa en .hex :(
ResponderEliminarel programa fuente esta hecho en asembler,el archivo hex lo compilas con el MPLAB de microchip, te lo puedes bajar de internet es gratis
ResponderEliminarOye 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.
ResponderEliminarTe sugiero que hagas tu circuito para mas o menos poder ayudarte.
ResponderEliminarExcelente información, justo lo que necesito, soy algo inexperta por lo cual no reconozco algunos componentes del circuito, me puedes decir cuales utilizaste?
ResponderEliminarQ1,Q2,Q3,Q4=BC548 para motores pequeños y TIP41 para motores grandes.
EliminarR1,R2,R3,R4= 300 ohmios. y un cristal de 4 mhz y 2 condesnadores de 22pf.
hola buenas noches e tratado de compilar el programa para tener el archivo .hex pero me marca error:
ResponderEliminarClean: 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
tienes que aprender a manejar el mplab, consigue un tutorial hay bastantes solo fijate que sea la version de mplab que estas usando
ResponderEliminarEstimado 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.
ResponderEliminarSi gustas te puedo mandar el programa que tengo hecho.
ResponderEliminarok, mandame tu circuito en proteus mejor pa hacerle un programa.
ResponderEliminarMario, el circuito no tendria que tener un resistor para la base de cada transistor?
ResponderEliminarexacto, hay veces hay q polarizar la base de transistor, recomiendo una resistencia de 330 ohmios hasta de un 1 kohm puede ser.
ResponderEliminarSi quiero que el motor gire dos segundos para un lado y luego dos segundos para el otro en automático
ResponderEliminarhola amigo me podrias esplicar algo
ResponderEliminar