# Problemas al conectar motor DC al PIC



## Sergio_PIC

Hola, espero que me puedan ayudar con un gran problema que tengo, el cual consiste en que estoy realizando un robot móvil el cual lo estoy controlando con un PIC 16f877A, el robot cuenta con dos motoreductores los cuales los tengo conectados a un puente H L293D, pero cuando entran en funcionamiento los motores o se forzan un poco el programa de PIC se resetea y ya he probado coectando Diodos entre la salida del pic y el puente H pero el problema no se soluciona. Incluso he probado utilizando una fuente para el PIC y una fuente para los motores pero el problema no se soluciona.

Qué más puedo hacer para que los motores no interfieran con el programa del PIC??


----------



## ariel

mmmm....

La vedad es muy dicil decir algo concreto, puesto que a información que pones es muy limitada, seria bueno que nos ayudaras colgando el diagrama.

Segun mi experiencia las razones por las que te pueden estar sucediendo estas cosas, (tomado en cuneta que tu circuito esta bien diseñado), son :

1: Tuve un caso en que la induccion de corriente del motor (campo eléctrico que genera), si es que este es de realativamente de elevada corriente hace enloquecer al pic, tambien lo hacen enloquecer los celulares.

2: No separaste la tierra digital de la etapa de potencia (aunque si no me equivoco creo que el lm293d ya lo hace), la corriente de retorno del motor puede destruir tu pic.

Sin el diagrama solo te podemos ayudar con conjeturas.


----------



## chispas1

hola..

el problema que tienes es que la salida del pic la envias directo a la entrada del IC controlador del motor, lo que tienes que hacer es probar con un transistor para el manejo de la corriente de entrada al IC y si no te funciona utiliza un optoacoplador. y si por alguna razon no te funciona puedes probar con reles.


----------



## PICMIND

Hola, no creo que sea necesario utilizar transistores, yo una vez hice un microbot y lo conecte directo al puente H yno pasa nada, puede que los motores excedan la corriente que puede otorgar el puente H o las pilas. 

Otra cosa que te sugiero es que coloques unos condensadores cerámicos, (104 puede ser) para evitar que la induccion de los motores haga resetear el pic, coloca también otro lo más cerca que puedas de la alimentacion dle pic. eso te debería servir.


----------



## tiopepe123

Lo ideal es soldar directamente los condensadores de 100nf tipo lenteja directamente a los bornes del motor tal y como te sujiere PICMIND.

tambien se los pones al pic lo mas cerca posible de las patillas de alimentacion y otro en el reset.

Puedes probar de poner una pantalla electrostatica, o sea soldar un trozo de chapa entre el pic y la parte de potencia. La chapa la puedes optener de una lata que suelen ser cincadas y sin soldables.

Haz pruebas para averiguar de donde vienen esos pulsos, por ejemplo desconectando pulsadores y elementos que puedan hacer de antena.

Tambien con una radio de AM puedes hacer pruebas.


----------



## eddo

hola soy nuevo en esto y me gustaria aprender estoy montando un robot con el pic 16F84A y no puedo montar el control de los motored CC son de 12V a ver si alguien me ayuda tengo los codigos y los emulo en proteus y todo bien hasta que lo quiero montar en la protoboard am se me olvidaba estoy ocupando un puente H con el chip L293B

desde ya gracias adios


----------



## Paloky

Hola Eddo.

Danos algo mas de información.

Que compilador usas?.

La patilla de habilitación del L293 la tienes bien connectada? (a la mejor Proteus lo na tiene en cuenta).


El L293 es un circuito que no tiene ningun secreto.

Saludos.


----------



## eddo

este es el codigo sacado del libro tal cual dice abajo adjunto el archivo del proteus por si me pueden ayudar a montarlo en la placa por ahora no me funciona nada. am estoy usando el mplab para compilar el codigo y programar el pic 




		Código:
	

;************************************* MotorDC_01.asm ********************************** 
;
;	===================================================================
;	  Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
;	  E. Palacios, F. Remiro y L. López.
; 	  Editorial Ra-Ma.  [url]www.ra-ma.es[/url]
;	===================================================================
;
; Programa de control para un motor de corriente continua en funcionamiento y sentido de
; giro. Con RA0=0, el motor se pone en marcha y su sentido de giro dependerá del valor
; que tenga RA4.
;
; ZONA DE DATOS **********************************************************************

	__CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
	LIST	   P=16F84A
	INCLUDE  <P16F84A.INC>

#DEFINE  EntradaMarcha	PORTA,0		; Interruptor de puesta en marcha.
#DEFINE  EntradaSentido	PORTA,4		; Interruptor de sentido de giro.

; ZONA DE CÓDIGOS ********************************************************************

	ORG 	0
Inicio
	bsf	STATUS,RP0
	bsf	EntradaMarcha		; Configura las líneas de entrada.
	bsf	EntradaSentido
	clrf	PORTB			; Las líneas del Puerto B configuradas como salida.
	bcf	STATUS,RP0
Principal	
	clrw				; Con esta combinación se detiene el motor.
 	btfsc	EntradaMarcha		; Comprueba el estado del interruptor de funcionamiento.
	goto	ActivaSalida
	movlw	b'00010010'		; Gira en un sentido.
	btfsc	EntradaSentido     		; Comprueba el sentido de giro deseado.
	movlw	b'00010001'		; Gira en el otro sentido.
ActivaSalida
	movwf	PORTB
	goto	Principal

	END
	
;	===================================================================
;	  Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
;	  E. Palacios, F. Remiro y L. López.
; 	  Editorial Ra-Ma.  [url]www.ra-ma.es[/url]
;	===================================================================


----------



## Paloky

Podria ser esto el error:


   ORG    0
Inicio
   bsf   STATUS,RP0
   bsf   EntradaMarcha      ; Configura las líneas de entrada.
   bsf   EntradaSentido
   clrf   TRISB         ; Las líneas del Puerto B configuradas como salida.
   bcf   STATUS,RP0 


En tu código tienes puesto  "clrf PORTB"

No estabas configuando el puerto B como salidas.


Prueba a ver que tal.

Saludos.


----------



## ELIUSM

Hola a todos!
Un amigo tiene que hacer un circuito que controle el proceso, claro que con un microcontrolador, de una mini-planta de tratamiento de agua. Si le resulta, el estaría vendiendo estas miniplantas y NO deben fallar. Lo que ocurre, es que el dice que no quiere usar PIC para eso, porque los encuentra muy inestables. El y yo sabemos programar PICs. ahora a mi también me salta la duda:

¿Qué microcontrolador es finalmente el más confiable? O sea, uno que no colapse porque. porque la temperatura subio en un grado. yo sé que eso no pasa con el PIC, pero mm.

Seria AVR? Sería MCP? o en verdad el PIC no es tan inestable como creo?

Asumamos que el programa está bien hecho, de manera que no se muera el micro por culpa de eso.

Graciaas!


----------



## Paloky

Hola.

Creo que si un control falla, es por culpa del programa "Siempre".   Las arquitecturas hardware, son de lo mas fiable en cualquier microcontrolador.

Que escojas entre PIC, AVR, etc. dependerá de otros factores como pueden ser, velocidad de calculo, memoria y perifericos integrados, etc.  Todo depende la aplicación que realices.

Para eso, los microcontroladores, llevan lo que se llama el "Watchdog". Para detectar en milisegundos si algo funciona mal y el micro se queda bloqueado por culpa de la rutina software mal implementada, en la que no consideraste bien los posibles casos de variables.

Yo desde hace unos 5 años, he trabajado siempre con PIC, y no he tenido nunca ningún problema.

Un Saludo.


----------



## Saint_

Hola, concuero con Paloky, un pic es muy fiable especialmente te por lo de el reseteo por fallo de alimentacion y el "perro guardian" el secreto esta en aislar al microcontrolador de las posibles fuente de ruido incluso en la alimentacion del mismo.
En mi caso probamos el PIC y ATMEL y los problemas por ruido son barbaros especialmente si se controlan motores. quizá este por ahi el problema pero si desean puedo coperarles en el proyecto que estan emprendiendo.
un saludo y que le baya bien.


----------



## ELIUSM

Hola! Gracias por sus respuestas. Igual me han ocurrido cosas extrañas con PIC, pero si pensara un poco más, en verdad es muy posible que sea mi programa. Ahora, pasando a otro tema:

¿Qué manera es la VERDADERAMENTE mejor para controlar motores y/o relés con un PIC (u otro)? (Visto desde el punto de vista electrónico y magnético).

O de otra manera: ¿Cuál es la forma VERDADERAMENTE mejor de aislar a un PIC de los ruidos que provoca un motor o un relé?

¿Cómo hacer un buen filtro de alimentación para el micro propiamente tal? (que no molesten otros ruidos eléctricos).

Y por último, ¿cuál es la mejor manera de aislar a un microcontrolador de un ruido electromagnético? Por ejemplo, con una caja forrada en aluminio. sugerencias?

Parecen repetidas las preguntas, pero ahora creo que está bien claro lo que busco.

Quiero que aqui se haga un buen compendio sobre informaciónes sobre aislación y protección de micros. Circuitos ejemplo, y otras informaciónes. Yo mismo estaré googleando también.

Muchas gracias!


----------



## tiopepe123

LO que pides es un curso completo de diseño y no solo eso sino ademas cada maestrillo tiene su librillo, cada caso es especial, aunque hay unas normas basicas.

Los motores mejor controlarlos con reles
Resistencias calefactores con reles de estado solido o triac o tiristores.


Dos masas una digital y otra analogica que salen de un unico punto y nunca deben tocarse.

La masa nunca debe formar bucles, o sea si parte una corriente ficticia de un punto nunca debe hacer una trayectoria de retorno por otro camino.

La masa como mas grande mejor, plano de masa.

Cada integrado debe tener su condensador de 100nF lo mas cerca de las patillas de alimentacion. Algun condensador electrolitico para los integrados que dan fuertes tirones de corriente o estan mas alejados de la fuente de alimentacion.




Optoacopladores si los pulsadores estan lejanos de la placa principalm, >0.5m
El reloj del micro (cuarzo) o resets, no puede estar cerca de reles (no olvidar el diodo de proteccion)

Los condensadores electroliticos deben ser olgados para que aguantes microcortes.

La programacion debe ser estructurada y sencilla.

La utilizacion de un watchdog da fiabilidad, todos los videos domesticos realizan reseteos automaticamente cada 5 a 10 minutos.

Normalmente despues de un reseteo por wathcdog se actiba un indicador o bandera esto nor permite al inicio del programa conocer que ha pasado y decidir en consecuencia.


Yo personalmente creo dos rutina, inicializacion normal o reset por watchdog.

La normal inicializo todas las variables.
La watchdog solo inicializo alguna variable,los perifericos y salto a la rutina general.


----------



## ELIUSM

Hola!
Gracias por la respuesta!
Tengo más preguntas: ¿cómo finalmente es mejor aislar electromagnéticamente a un micro? Metiéndolo dentro de una cajita decartón forrada varias veces en papel aluminio?

Y cuál es la mejor manera de controlar relés y motores con el PIC, ya que escuché por allí que para un relé por ejemplo, el diodo no es suficiente. Parece que el relé hace algo como "rebotes" y no tengo claro si se refieren a los contactores que hacen rebote o algo con la bobina, además por alguna razón que no entriendo me dijieron que meta un optoacoplador entre el micro y el relé.

Me enfoco más en tratar de manejar motores paso a paso, por eso no me gusta tanto la idea de controlarlos con un relé. Si fuese un motor DC o AC normal, allí claro, mejor use relés. Entonces, qué consideraciones electrónicas tengo que tomar para controlar un motor paso a paso? Yo siempre les he puesto el famoso diodo, igual que para los relés.

Más recomendaciones?

Gracias!


----------



## maunix

ELIUSM un microcontrolador es lo suficientemente estable para funcionar como autómata, el problema generalmente suele ser de hardware me paso a explicar.

Si tu hardware es pobre de diseño  presentando posibles entradas de interferencias (eléctricas y electromagnéticas) entonces tu microcontrolador poco y nada puede hacer para evitarlo, no importa la marca que uses.

Lo que hace caro a un automata ó PLC además del soporte que brindas las compañías, es todo el hardware que le agregan para hacerlos inmunes a los ruidos.  Es esta parte la que es 'toda una ciencia' imposible de abarcar en un post y de la que hay libros enteros escritos.  

Sería imprudente y soberbio pretender explicarte en un par de líneas tantas páginas de conocimiento.

Mi consejo es que se enfoquen en la parte de diseño de PCBs, jaulas de faraday, aislación de señales con optoacopladores, manejo de corrientes grandes que no afecten a tu pic, buen diseño de masas, etc.  

Como ves solo listé unas pocas cosas y ya ocupe 3 renglones   .  

Sin ánimo a desmotivarlos pero hacer un autómata en cuanto a las funciones operativas es relativamente sencillo lo difícil es que funcione en un ambiente industrial en forma confiable.

Saludos


----------



## ELIUSM

Hola!
Bueno, voy a seguir hinchando un poco.
Claro que no busco la tremenda guía sobre como se hace. finalmente, si hablara sobre por qué debo ponerle un condensador de 100nF justamente a la entrada del micro. también hay libros enteros de por qué, desde el estudio más primitivo de un condensador.

En lo que respecta a aislación electromagnética espero que me digan cosas como "hazle un cascarón de papel alusa aluminio, trata de que los hoyos donde salgan los cables sean chicos, dale hartas capas de aluminio. o mientras más, mejor."
Entienden? Solo algo sencillo, .

Saludos!


----------



## tiopepe123

Creo que el fundamento ya lo explique, las medidas "tipicas".

Cada caso tienes que tomar las medidas pertinentes, no es lo mismo controlar una caldera (resistencia) que un motor (inductiva) que un fluorescente (inductiva y alta tensión) o un equipo de música (distorsiones, acoples,.)


Todo diseño tiene fallas, recuerda windows, acaso es perfecto. pero funciona.

Durante la fase de diseño se aplican las "típicas" medidas y a posteriori se detectan el resto de problemas, por algo se debe empezar.

Los diodos se han utilizado durante años en montajes profesionales como PLC y maquinaria industrial y normalmente funcionan bien, el tema de los rebotes de los reles, al ser un sistema mecánico los hay, pero el fabricante ya cuenta con ellos y no deberia darte problemas.

Los motores paso a paso normalmente se controlan con puentes en H o transistores con su diodo, es la forma de hacerlo, si miras cualquier impresora veras el típico integrado con su puente en H y los diodos de proteccion.


----------



## ELIUSM

Bueno, muchas gracias por sus respuestas. Quedé bien por el momento.
Y windows. aah que problema es, jeje, por eso llevo ya un tiempo acostumbrándome a Linux.
Ya! Saludos!


----------



## Manonline

esa forma de escribir es alucinogena. ahora veo duendes cantando y tomando cerveza por todos lados.

creo que prefiero faltas de ortografia (que tambien las habia) y modismos que esa forma de escribir.


----------



## charlylex

Hola!

Bueno mira. yo tambien tube broncas de ese tipo y como ya lo mencionaron puedes usar capacitores ceramicos soldados en las terminales de tu motor yo te recomiendo los de matricula 22 22mf, 22pf o 22nf. Mientras que para tu  alimentacion ya sean baterias o fuente de voltaje soldes en tu plaquita en las terminales  + y - un capacitor electrolitico (condensador electrolitico  o filtro electrolitico ) de unos 220mf a 50v claro con su respectiva polaridad, el - de tu capacitor con el - de tu alimentacion y de la misma forma el +. y verifica que pasa. 

Teoricamente el capacitor electrolitico mantendra el voltaje estable; es decir, almacenara voltaje en el y con la baja de voltaje que produce el motor a la hora de su puesta en marcha, el capacitor hara que no afecte esta disminucion de voltaje ya que tendra almacenada en el un voltaje similar al de tu fuente o baterias. Pero tambien "filtrara" los "ruidos" producidos por tu motor.

Mientras que los capacitores ceramicos filtraran mas estos ruidos o corrientes paracitas ya que estan conectados directamente en las terminales de tu motor y al no tener polaridad, tu motor podra incluso ser reversible!

Espero te ayuden estos tips. pero me gustaria que dieras mas detalles de tu problema.

Bye bye!


----------



## ELIUSM

Hola a todos!
Como no quedé contento con lo que se lleva hablando hasta aquí, seguí buscando. Y después de todo este tiempo encontré eso:

http://www.todopic.com.ar/interferencias.htm

Esto es todo lo que yo buscaba.
Saludos.


----------



## kmepartaunrayo

charlylex dijo:
			
		

> Hola!
> 
> Bueno mira. yo tambien tube broncas de ese tipo y como ya lo mencionaron puedes usar capacitores ceramicos soldados en las terminales de tu motor yo te recomiendo los de matricula 22 22mf, 22pf o 22nf. Mientras que para tu  alimentacion ya sean baterias o fuente de voltaje soldes en tu plaquita en las terminales  + y - un capacitor electrolitico (condensador electrolitico  o filtro electrolitico ) de unos 220mf a 50v claro con su respectiva polaridad, el - de tu capacitor con el - de tu alimentacion y de la misma forma el +. y verifica que pasa.
> 
> Teoricamente el capacitor electrolitico mantendra el voltaje estable; es decir, almacenara voltaje en el y con la baja de voltaje que produce el motor a la hora de su puesta en marcha, el capacitor hara que no afecte esta disminucion de voltaje ya que tendra almacenada en el un voltaje similar al de tu fuente o baterias. Pero tambien "filtrara" los "ruidos" producidos por tu motor.
> 
> Mientras que los capacitores ceramicos filtraran mas estos ruidos o corrientes paracitas ya que estan conectados directamente en las terminales de tu motor y al no tener polaridad, tu motor podra incluso ser reversible!
> 
> Espero te ayuden estos tips. pero me gustaria que dieras mas detalles de tu problema.
> 
> Bye bye!






yo estoy teniendo ese problema! si conecto el pic solo (estoy usando el 16f873a) veo la secuencia de los pasos perfectamente....  (estoy usando un motor bipolar del cual no encontre la hoja de datos dice 'Airpax P/N MA 82863-m1' y el mismo driver el L293D) el problema es cuando le conecto el driver... los pasos se vuelven locos aveces se atoran o se brincan pasos hace lo que quiere :-s! ya probe otro driver de microchip y pasaba lo mismo y probe el L293E y lo mismo.... no se si cambiar el pic o que hacer.... estoy utilizando una fuente de computadora que segun la etiqueta es de 12V y 19A .... claro que con un 7805 para el pic .... que hago?!?!? tengo dias en esto la vdd estoy muy desesperado! porfavor ayudenme!


----------



## Thomy

Exacto.-

Pon los capacitores que arriba te dijeron, que eso evita que se resetee.


----------



## dxtr_hyperion

Hola mira lo que puedes hacer es seguir el circuito mostrado abajo, o no se si este sea el que estés usando, pero este a mi me funcionó muy bien, le conecté 9V y todo a las mil maravillas ... aparte ese integrado te maneja hasta 2A, o sea que no creo que sea por ahi las cosa, si este no es el circuito que estas usando, intenta con este. A y B son tus entradas digitales o salidas del PIC y es para control bidireccional de tu motor. Solo pon a 1 la direccion hacia la que quieras que vaya tu motor y en 0 la otra y para la direccion opuestas cambias las salidas a 0 y 1 respectivamente.


----------



## Fire_Leon

Buenas, he estado trabajando con pics ultimamente y en los proyectos de la escuela siempre emos tenido el problema con la corriente de los motores (quemamos los pics), esta ultima vez utilizamos un uln2004 para los motores de DC y aun asi se calentaban los pics y se quemaban, los motores estaban alimentados a 10v y creo que el amperaje creo serian unos 3,4 el voltaje de 10 lo conecto al positivo del uln i a un lado del motor y las salidas a la otra pata, la tierra del uln y del pic es la misma (sera ese el problema? aunke kreo ke para que funcione el circuito las tierras de todos los dispositivos tienen que ser comunes, no?), el uln ni se calienta ni nada, el pic es el que muere, debo usar otro ic? debo hacer algun arreglo en la conexión?


----------



## Daniel85

server-die.alc.upv.es/asignaturas/LSED/2002-03/MotoresPasoaPaso/Motorespasoapaso.pdf


----------



## german orlando niño uribe

hola compañero, debes tomar en cuenta la capacidad de entraga de corriente maxima del pic, la cual no alcanza para manejar directamente un mitor DC, para ello se utiliza un NPN,

conectas la salida de el pic, a las base del transistor, a travez de una R de 220, el emisor, a tierra, y el motor ente el colector del transistor, y +v.

asi la carga del motor recae sobre el transistor.

ahora segun el tipo de motor escoges la poencia del transistor. si es un motor muy pequeño, usa el 2N3904, o 2N2222, o si es de mas potncia, un BD139, o un 2N3055.

saludos y suerte.... 8)  8) 

recuerda consultar la hoja de datos del pic que usas para evitar problemas..


----------



## Fire_Leon

thanks lo probare asi, gracias a los 2 =)


----------



## buhosw

El programa jamas va a hacer lo que deseas porque no estas definiendo de forma adecuada PortA y PortB.. Debes usar la instrucción TRIs.  El programa queda como sigue :



		Código:
	

     __CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
       LIST      P=16F84A
       INCLUDE  <P16F84A.INC>

    #DEFINE  EntradaMarcha    PORTA,0      ; Interruptor de puesta en marcha.
    #DEFINE  EntradaSentido   PORTA,4      ; Interruptor de sentido de giro.

    ; ZONA DE CÓDIGOS ********************************************************************

       ORG    0
    Inicio
       bsf   STATUS,RP0
       bsf   EntradaMarcha      ; Configura las líneas de entrada.
       bsf   EntradaSentido
[b]       movlw  0f
       tris  PORTA
       movlw  0
       tris  PORTB [/b]          ; Las líneas del Puerto B configuradas como salida.
       bcf   STATUS,RP0
    Principal   
       clrw            ; Con esta combinación se detiene el motor.
       btfsc   EntradaMarcha      ; Comprueba el estado del interruptor de funcionamiento.
       goto    ActivaSalida
       movlw   b'00010010'      ; Gira en un sentido.
       btfsc   EntradaSentido           ; Comprueba el sentido de giro deseado.
       movlw   b'00010001'      ; Gira en el otro sentido.
    ActivaSalida
       movwf   PORTB
       goto    Principal

       END


Saludos desde Cordoba Veracruz
Carlo Magno Morales H.


----------



## cubanox

hola! tengo el puente H armado y funcionando. Pero estoy renegando mucho con el combinacional. Empece a hacer el combinacional con compuertas porq no conozco lsobre progracion y manejo del pic. Agradeceria muchisimo si me pueden facilitar el programa para realizar esto y el modelo del pic, d esta forma veo si puedo controlar mi puente H con el pic.
muchas gracias!


----------



## dxavier

buena brother soy nuevo en eso tengo un proyecto de motor con mi pic 16f88 pero no me sirve nose q error tengo sera que me pueden ayudar..


List p=16F88
#include <p16F88.Inc>

temp1 equ 0x20
temp2 equ 0x21
cont1 equ 0x22
cont2 equ 0x25
cont3 equ 0x24	
	Org 0x00
	GoTo CONFIGURACION
	Org 0x04
	GoTo ISR

CONFIGURACION
	bsf STATUS,Rp0; cambiar de banco
	clrf TRISA; se limpia el registro TRISA y se configura como salida          
	movlw 0xFF
	movwf TRISB; PortB entrada
	movlw 0x06
	movwf ADCON1
	bcf STATUS,Rp0; regresar de banco

Principal	
	bsf INTCON,GIE
	bsf INTCON,RBIE
	bcf INTCON,RBIF
Inicio
	bsf PORTA,0
	bcf PORTA,1
	Call retardo
	bcf PORTA,0
	bcf PORTA,1
	Call retardo
	GoTo inicio
ISR
	movwf temp1
	swapf STATUS,w
	movwf temp2

	bcf PORTA,0
	bsf PORTA,1

	bcf INTCON,INTF

	swapf temp2,w
	movwf STATUS
	swapf temp1,f
	swapf temp1,w
	retfie
Retardo
	movlw .14
	movwf cont3
Ciclo_3
	movlw 0xFF
	movwf cont2
Ciclo_2
	movlw 0xFF
	movwf cont1
Ciclo_1
	decfsz cont1,1
	GoTo Ciclo_1
	decfsz cont2,1
	GoTo Ciclo_2
	decfsz cont3,1
	GoTo Ciclo_3
	Return
	End


----------



## José D. Rodríguez M.

Colocar un condensador de 100uf- 25V, en las lineas de alimentación hacia el motor. Esto facilita el desvio de posible corrientes de oscilación que es la causa de la desprogramación del PIC.


José.


----------



## ESAZING

Hola 

Como estan, mi problema es el siguiente:

Necesito conectar un motor dc a un pic 16f84 pero sin conectarlo de manera directa a este, pregunte y me dijeron que podia hacerlo con una fase de poder o carga no recuerdo muy bien y no se como hacerlo, ya tengo todo solo falta saber como hacer esta conexion, solo se hacerlo de manera directa a las entradas del pic, al igual lo tengo que hacer con un motor a pasos alguien me podria ayudar por favor.

http://img338.imageshack.us/img338/2028/picture11111111111.jpg

Espero me puedan ayudar.

Gracias.


----------



## Meta

Hola:

Te puedes bajar los ejemplos y esquema aquí del 16F84A en .asm.

http://www.pic16f84a.org/index.php?...w=article&id=66&Itemid=87#Proteus_Capitulo_29

Saludo.


----------



## ESAZING

Muchas Gracias Meta Por la informacion Me a servido de maravilla.


aun asi no sabras otra forma de conectarlo ademas del puente en h que viene en las practicas?, Para variar la presentacion de las practicas.

Gracias.


----------



## thenot

quieres que de vueltas hacia un solo lado?? o necesitas ke anda a ambas??


----------



## ESAZING

Ambas, un motor para un solo lado y el otro motor a los dos lados (con cambio de giro).


----------



## thenot

con el l293 o con el sn754410 ( son exactamente iguales) puedes conectarlos lo mas bien ambos motores.
acá tienes las conexiones






los enables, los puedes dejar a 5 volts siempre, o controlarlos con un pin del micro, y con pin 1 y pin 2 controlas el motor 1, para el motor 2 pin 4 y pin 5. Por ejemplo para motor 1 haciendo las siguientes combinaciones obtienes:

*pin1 | pin2 | salida*
alto  | alto | motor_detenenido
bajo | bajo | motor_detenido
alto  | bajo | motor_una_direccion
bajo | alto  | motor_otra_direccion

para el motor 2 es lo mismo..
si necesitas que el motor gire en un solo sentido siempre, puedes usar esta configuración. con un tip122:





Saludos, ojala sea lo que buscas.. :B


----------



## ESAZING

Gracias por las respuestas. intentare las dos formas a ver cual me sirve mejor.

Saludos.


----------



## ESAZING

Hola de nuevo.

Tenia duda de como conectar un motor cd a un pic sin que fuera de manera directa por medio de una fase de potencia, recibi respuestas y me dijeron que con un driver 
L283.

Estuve viendo las hojas de especificaciones y vi que en el L283D decia algo de que tiene diodos y el otro no.

Mi pregunta es: si compro el L283B tendria que comprar los diodos aparte para armar el circuito?

Cual me recomiendan?

Espero su respuesta.

Muchas Gracias.


----------



## Fogonazo

Tema movido



ESAZING dijo:


> Hola de nuevo......



No abras nuevos post para preguntar sobre lo mismo.


----------



## gato1994

recientemente e estado utilizando el pic 16f628a con el cual e intentado controlar la velocidad de un motor dc el problema que tengo es que cuando enciendo el circuito en el momento de controlar el motor se reinicia el programa y no mueve el motor

quisiera saber que estoy asciendo mal ????

acá les dejo el circuito y el programa echo en lenguaje basic
--------------------------------------------------------------------------
led var portb.1
mot var portb.0

high led
pause 1000
low led
pause 500

inicio:
pwm mot,250,60
goto inicio

end
---------------------------------------------------------------------------


----------



## Scooter

¿El fallo es en el simulador o en la realidad?

Te falta una resistencia en la base, un diodo volante.... y probableente algún condensador para quitar picos. Me parece que necesitarás un optoacoplador.


----------



## unmonje

Estuve viendo la hoja de dato del fabricante yyy....
Aparentemente hay bastantes cosas que pareces estar haciendo mal.
Fundamentalmente por omisiòn....
Me parece, que tu crees que basta darle esa instruccion para que lo haga,pero la hoja dice algo diferente.
Digo CREO,porque es evidente que el -software- que estas usando, es de una tercera persona, es decir no lo has hecho tu.
Tu escribes el programita tuyo,pero lo EDITAS y COMPILAS con productos MANIPULADOS por otros programadores,que vaya uno a saber ,que cosas definieron en el.!!!!

Yo te cuento en leguaje ASMembler ,que falta hacer para mi.
Cuando escribes PWM MOT,250,60,es definir el ciclo PWM de trabajo,pero no le dices DONDE ponerlo afuera !!!
Tu me diras ,lo quiero en la salida MOT !!! claro , estoy de acuerdo ,pero el fabricante del chip
dice que esa funcion solo es posible electronicamente en PB3 y no en otras entradas salidas.
Ademas desde el punto de vista de ASM,no veo ninguna definicion e instruccion para el micro,respecto de que funcion han de cumplir tus bits de puertos,durante el funcionamiento.

tipo   : PORTB,&hf0
( En esta instruccion le digo al micro que en el puerto B ,los bits mas altos seran SALIDAS y los mas bajos ENTRADAS)

Ademas, no veo en ningun lugar de TU progrma que diga que has habilitado la funcion PWM,que es un dispositivo electronico especial ,y que ademas DEBE tener  interrupciones para su buen funcionamiento y no veo que las hayas escrito ,ni que las estes atendiendo,quiero decir que necesitas,rutinas de atenciòn de interrupciones.

Estas se escriben en este chip en la direcciòn &h0004
Cuando respondas continuo ,si hace falta...


----------



## gato1994

unmonje dijo:


> Estuve viendo la hoja de dato del fabricante yyy....
> Aparentemente hay bastantes cosas que pareces estar haciendo mal.
> Fundamentalmente por omisiòn....
> Me parece, que tu crees que basta darle esa instruccion para que lo haga,pero la hoja dice algo diferente.
> Digo CREO,porque es evidente que el -software- que estas usando, es de una tercera persona, es decir no lo has hecho tu.
> Tu escribes el programita tuyo,pero lo EDITAS y COMPILAS con productos MANIPULADOS por otros programadores,que vaya uno a saber ,que cosas definieron en el.!!!!
> 
> Yo te cuento en leguaje ASMembler ,que falta hacer para mi.
> Cuando escribes PWM MOT,250,60,es definir el ciclo PWM de trabajo,pero no le dices DONDE ponerlo afuera !!!
> Tu me diras ,lo quiero en la salida MOT !!! claro , estoy de acuerdo ,pero el fabricante del chip
> dice que esa funcion solo es posible electronicamente en PB3 y no en otras entradas salidas.
> Ademas desde el punto de vista de ASM,no veo ninguna definicion e instruccion para el micro,respecto de que funcion han de cumplir tus bits de puertos,durante el funcionamiento.
> 
> tipo   : PORTB,&hf0
> ( En esta instruccion le digo al micro que en el puerto B ,los bits mas altos seran SALIDAS y los mas bajos ENTRADAS)
> 
> Ademas, no veo en ningun lugar de TU progrma que diga que has habilitado la funcion PWM,que es un dispositivo electronico especial ,y que ademas DEBE tener  interrupciones para su buen funcionamiento y no veo que las hayas escrito ,ni que las estes atendiendo,quiero decir que necesitas,rutinas de atenciòn de interrupciones.
> 
> Estas se escriben en este chip en la direcciòn &h0004
> Cuando respondas continuo ,si hace falta...





yo no e copiado el codigo de ninguna otra persona
yo e estado aprendiendo un buen tiempo a programar pic con el lenguaje basic no ASMembler 
con un programa llamado microcodestudio y un compilador pbp
el código yo lo escribi y lo hice de esta forma para ser algo sencillo y situar donde probablemente hay errores el programa funciona perfectamente en la simulación en proteus pero cuando lo pongo 
a funcionar en la realidad cuando prende el led de rectificación de que el programa inicio
el led se apaga y reinicia el programa no dejando que continué el código
algo interesante que paso cuando lo probe con una fuente de 3A es que si funciono el circuito
pero yo veo que es algo ilógico que necesite tanto amperage para funcionar cuando el consumo del pic es muy bajo igual que el motor



Scooter dijo:


> ¿El fallo es en el simulador o en la realidad?
> 
> Te falta una resistencia en la base, un diodo volante.... y probableente algún condensador para quitar picos. Me parece que necesitarás un optoacoplador.



gracias por la ayuda


----------



## unmonje

gato1994 dijo:


> yo no e copiado el codigo de ninguna otra persona
> yo e estado aprendiendo un buen tiempo a programar pic con el lenguaje basic no ASMembler
> con un programa llamado microcodestudio y un compilador pbp
> el código yo lo escribi y lo hice de esta forma para ser algo sencillo y situar donde probablemente hay errores el programa funciona perfectamente en la simulación en proteus pero cuando lo pongo
> a funcionar en la realidad cuando prende el led de rectificación de que el programa inicio
> el led se apaga y reinicia el programa no dejando que continué el código
> algo interesante que paso cuando lo probe con una fuente de 3A es que si funciono el circuito
> pero yo veo que es algo ilógico que necesite tanto amperage para funcionar cuando el consumo del pic es muy bajo igual que el motor
> 
> 
> 
> gracias por la ayuda



Celebro que te haya funcionado...
Cuando me referia a programa -ajeno-, me referia  al BASIC ,no a tu programa que es el programa -DEL USUARIO-
El BASIC que usas lo escribio alguien mas...!!!

Respecto a los 3Amperes....Un motor ,aunque pequeño, dificilmente consuma lo mismo que una PIC.... Como sea...entiendo que lo que te estaba pasado era perturbacion electromàgnetica ò
-ripple de fuente-... aparentemente , esto te reseteaba la PIC.

Porque lo digo ?
Con las PIC me paso muchas veces cuando usaba -cosas- con bobinas,que el pic se *taraba*

Me quedo la duda dle PWM... que te funcione ahora, me confirma que los que hicieron ESE BASIC,estan manipulando las cosas por dentro.

Saludos.


----------



## gato1994

unmonje dijo:


> Celebro que te haya funcionado...
> Cuando me referia a programa -ajeno-, me referia  al BASIC ,no a tu programa que es el programa -DEL USUARIO-
> El BASIC que usas lo escribio alguien mas...!!!
> 
> Respecto a los 3Amperes....Un motor ,aunque pequeño, dificilmente consuma lo mismo que una PIC.... Como sea...entiendo que lo que te estaba pasado era perturbacion electromàgnetica ò
> -ripple de fuente-... aparentemente , esto te reseteaba la PIC.
> 
> Porque lo digo ?
> Con las PIC me paso muchas veces cuando usaba -cosas- con bobinas,que el pic se *taraba*
> 
> Me quedo la duda dle PWM... que te funcione ahora, me confirma que los que hicieron ESE BASIC,estan manipulando las cosas por dentro.
> 
> Saludos.



no entiendo bien tu duda con el PWM ???????
y ps el circuito solo sirve cuando es alimentado por una fuente tan grande como es la que tengo de 3A por una pero debe de aver una forma para alimentarlo con una mas pequeña???


----------



## burren

bueno checando tu circuito opino igual que Scooter en cuanto a que te faltan algunos elementos que como en la practica se va aprendiendo efectivamente en el simulador trabaja pero en la parte real no, ¿por que? te comento una experiencia propia en la cual yo trabaje no con un motor de dc sino con uno de pasos y el micro se volvía loco y ¿cual fue la solución?, poner capacitores para evitar voltajes ruidosos en el circuito y que enloquecen al micro ahora en la aplicación de un motor dc el diodo volante es casi por defaul para protección y como dicen poner directo a la base de un transistor que maneja potencia no es muy recomendable, puedes poner uno antes de uso general por ejemplo un bcxxx o checar uno de switcheado hay muchos entonces si funcionara mejor veras


----------



## gato1994

burren dijo:


> bueno checando tu circuito opino igual que Scooter en cuanto a que te faltan algunos elementos que como en la practica se va aprendiendo efectivamente en el simulador trabaja pero en la parte real no, ¿por que? te comento una experiencia propia en la cual yo trabaje no con un motor de dc sino con uno de pasos y el micro se volvía loco y ¿cual fue la solución?, poner capacitores para evitar voltajes ruidosos en el circuito y que enloquecen al micro ahora en la aplicación de un motor dc el diodo volante es casi por defaul para protección y como dicen poner directo a la base de un transistor que maneja potencia no es muy recomendable, puedes poner uno antes de uso general por ejemplo un bcxxx o checar uno de switcheado hay muchos entonces si funcionara mejor veras



gracias por tu información me  a sido den gran ayuda tanto como para la practica como de experiencia


----------



## unmonje

gato1994 dijo:


> no entiendo bien tu duda con el PWM ???????
> y ps el circuito solo sirve cuando es alimentado por una fuente tan grande como es la que tengo de 3A por una pero debe de aver una forma para alimentarlo con una mas pequeña???




Explicarte lo del PWM , me llevaria escribir 2 horas ...
Respecto a tu fuente....
Primero conecta solo el motor y frenalo un poco,luego fijate cuanto consume en corriente y con un osciloscopio fijate si se cae la fuente ò aumenta mucho el -ripple-...
Si hay mucho ripple ,filtra mejor la fuente. Si se cae la tension debes aumentarla.
En esta condiciòn ,en la salida del regulador de 5v del PIC, no deberia haber ningun -ruidito- de fuente.
Luego desacopla la salida de la PIC con un OPTO,eso te ayudara mucho.
En general para olvidarme del asunto ,tome la costumbre de ISO-aislar la PIC.
Que digo ?   Pongo una trafo y fuente independiente para la PIC , ademas , el vinculo con las salidas es optico a traves de OPTOS.Lo importante es que las entradas y salidas ,no compartan
ni el positivo ni el negativo de la fuente , sobre todo la masa.
Cuando el motor descarga contra masa ,esa perturbacion ,llega hasta la pata de masa de la PIC y hace que se vuelva loca.

Que estoy loco ?
No, en trabajo profesional se hace solo de este modo.y funciona siempre.
Piensa que con cosas como la PIC...se controlan cosas que pueden ocacionar accidentes contra la propiedad y las personas.Por eso se hace asi.
No lo invente YO como podras imaginar...Saludos.


----------



## lm555cn

Para un monje:

1- 





> Estuve viendo la hoja de dato del fabricante yyy....
> Aparentemente hay *bastantes* cosas que pareces estar haciendo mal.
> Fundamentalmente por omisiòn....



¿Qué cosas estaba haciendo mal? ¿Qué omitió? (Hablamos de software, porque solo a eso te refieres en tu comentario, recordemos que entregaron circuito y código, dejando claro el lenguaje y compilador utilizado.)

2- 





> Me parece, que *tu crees que basta darle esa instruccion para que lo haga*,pero la hoja dice algo diferente.
> Digo CREO,porque es evidente que el -software- que estas usando, es de una tercera persona, es decir no lo has hecho tu.
> Tu escribes el programita tuyo,pero lo EDITAS y COMPILAS con productos MANIPULADOS por otros programadores,que vaya uno a saber ,que cosas definieron en el.!!!!



Sí basta con darle esa instrucción para que lo haga, él NO está equivocado.  El equivocado eres tú, la hoja se refiere al assembler y él no está usando assembler.
Al decir que el software que se está usando es de una tercera persona se puede malinterpretar como "copiar",como efectivamente sucedió, tal vez faltó aclarar más o utilizar otras palabras.
Cuando te refieres a "...vaya uno a saber que cosas definieron en el", te recuerdo que para eso hay un manual, también escrito por los programadores que "Manipularon" el producto.

3-





> Me quedo la duda dle PWM... que te funcione ahora, me confirma que los que hicieron ESE BASIC,estan manipulando las cosas por dentro.



Queda claro que el problema no fue el código que escribieron y que el pbp (compilador) utilizado tampoco tiene problema,así como que no solo el PB3 es el único para hacer PWM.  Respecto al comentario, ni idea a que te refieres.

No lo tomes a mal, mi punto es que al dar una respuesta es mejor estar seguros de la misma, máxime cuando a alguien que pide ayuda se le asegura que está equivocado o hizo mal las cosas cuando en realidad no es así, creándole más confusión.  De que nos vamos a equivocar a veces, lo vamos a hacer; pero hagámolo lo menos posible.

En lo que sí no estoy de acuerdo es en tu mensaje "Los màquinas son como las mujeres.....De lejos todas parecen fàciles."  Esto me parece un mensaje muy machista y una falta de respeto a las mujeres. Aclaro, soy hombre, pero así como me gusta que me respeten también respeto.

Para gato1994, opino igual que scooter respecto a los componentes.  Ahora, para estar seguros del motor, te recomiendo además que lo corras con la fuente de 3A y midas la corriente por el motor para estar seguros de cuánto consume.  De esa forma podrás saber si la fuente más pequeña (no sabemos de cuánto es) está en capacidad de entregar la corriente necesaria para que el motor funcione sin problemas.  De igual forma filtrar la fuente con un capacitor.


----------



## unmonje

lm555cn dijo:


> Para un monje:
> 
> 1-
> 
> ¿Qué cosas estaba haciendo mal? ¿Qué omitió? (Hablamos de software, porque solo a eso te refieres en tu comentario, recordemos que entregaron circuito y código, dejando claro el lenguaje y compilador utilizado.)
> 
> 2-
> 
> Sí basta con darle esa instrucción para que lo haga, él NO está equivocado.  El equivocado eres tú, la hoja se refiere al assembler y él no está usando assembler.
> Al decir que el software que se está usando es de una tercera persona se puede malinterpretar como "copiar",como efectivamente sucedió, tal vez faltó aclarar más o utilizar otras palabras.
> Cuando te refieres a "...vaya uno a saber que cosas definieron en el", te recuerdo que para eso hay un manual, también escrito por los programadores que "Manipularon" el producto.
> 
> 3-
> 
> Queda claro que el problema no fue el código que escribieron y que el pbp (compilador) utilizado tampoco tiene problema,así como que no solo el PB3 es el único para hacer PWM.  Respecto al comentario, ni idea a que te refieres.
> 
> No lo tomes a mal, mi punto es que al dar una respuesta es mejor estar seguros de la misma, máxime cuando a alguien que pide ayuda se le asegura que está equivocado o hizo mal las cosas cuando en realidad no es así, creándole más confusión.  De que nos vamos a equivocar a veces, lo vamos a hacer; pero hagámolo lo menos posible.
> 
> En lo que sí no estoy de acuerdo es en tu mensaje "Los màquinas son como las mujeres.....De lejos todas parecen fàciles."  Esto me parece un mensaje muy machista y una falta de respeto a las mujeres. Aclaro, soy hombre, pero así como me gusta que me respeten también respeto.
> 
> Para gato1994, opino igual que scooter respecto a los componentes.  Ahora, para estar seguros del motor, te recomiendo además que lo corras con la fuente de 3A y midas la corriente por el motor para estar seguros de cuánto consume.  De esa forma podrás saber si la fuente más pequeña (no sabemos de cuánto es) está en capacidad de entregar la corriente necesaria para que el motor funcione sin problemas.  De igual forma filtrar la fuente con un capacitor.



Bueno *555*,como *tu* dices...celebro que esos sean *tus* *puntos*...
De ambos puntos , obvio, me quedo con mis  propios...puntitos ?
Porque ?
Bueno mis respuestas son integrales , no sirven si las fragmentas en perdazos,porque se pierde el contexto y la idea general...Si lees la biblia ò cosa parecida ,de esa manera...vas muerto.
Relee TODO el tòpico desde el principio y veras que digo CREO, me parece...
Es para que trabaje la cabeza del sujeto, yo intento ayudar a razonar, no intento dar respuestas exactas, para eso estan los libros y muchos de los que aqui se convocan,es eso
justamente  lo que suelen *no* hacer...
Ademas , nadie respondia al tema y seguro que al menos, una mano le podia dar al cristiano.

Respecto al tema, le dije claramente que le escribia desde el punto de vista de ASEMBLER,no de ese BASIC, que por mas bien que funcione, le aclaraba que estaba manipulado por los autores de ESE BASIC, y que podrian haberle dado a la programaciòn...muchos manipuleos , para hacerselo mas fàcil al novato...eso era apoximadamente .
Como no conosco al sujeto, el espectro de lo posible es enorme,entonces debi ensanchar el dominio de mi respuesta.
Respecto de PB3 , bueno ...lei en la hoja de dato que la funcion en ASM y desde la electrnica periferica del PIC...era realizable desde solo esa.
Yo he hecho un sist, operativo para F84 , que te hace PWM en donde te guste y para salida H
 H ò STEPPER bifàsico solapado, pero debi escribir codigo antes y mucho para que hiciera solo eso.

En fin...si faltò algo decime...Saludos y càlmate un poco , si?  Aprecio tu voluntad...


-----------------------------------------
*Aqui ,cosas que podrian faltar escritas en  ASM,segun le dije al autor de este topico
*
_Yo te cuento en leguaje ASMembler ,que falta hacer para mi.
Cuando escribes PWM MOT,250,60,es definir el ciclo PWM de trabajo,pero no le dices DONDE ponerlo afuera !!!
Tu me diras ,lo quiero en la salida MOT !!! claro , estoy de acuerdo ,pero el fabricante del chip
dice que esa funcion solo es posible electronicamente en PB3 y no en otras entradas salidas.
Ademas desde el *punto de vista de ASM,*no veo ninguna definicion e instruccion para el micro,respecto de que funcion han de cumplir tus bits de puertos,durante el funcionamiento.

tipo : PORTB,&hf0
( En esta instruccion le digo al micro que en el puerto B ,los bits mas altos seran SALIDAS y los mas bajos ENTRADAS)_

_Ademas, no veo en ningun lugar de TU progrma que diga que has habilitado la funcion PWM,que es un dispositivo electronico especial ,y que ademas DEBE tener interrupciones para su buen funcionamiento y no veo que las hayas escrito ,ni que las estes atendiendo,quiero decir que necesitas,rutinas de atenciòn de interrupciones.

Estas se escriben en este chip en la direcciòn &h0004
_
-----------------------------




.


----------



## lm555cn

El objetivo de mi comentario no era para ganar *puntos*.  No dudo de tu capacidad, ni tu buena voluntad, la cual celebro pues todos en el foro ponemos nuestro granito para ayudar y en ocasiones es cierto que varios quieren las cosas servidas y es bueno hacerlos investigar un poco.
Sin embargo ese no fue el caso aqui.  Ya expuse en lo que no estaba de acuerdo, y lo hice sin fin de perjudicar a nadie, pues como mencione a veces nos equivocamos y estoy seguro que de igual forma me voy a equivocar muchas veces tratando de ayudar.  Y este es precisamente mi punto, ayudemos lo mas que podamos sin confundir a los demas diciendoles que estan haciendo las cosas mal, cuando no es asi.
Te respondo sin ninguna mala vibra ni para buscar conflictos, si te molestaste por el comentario te pido disculpas (a lo mejor me levante con el pie izquierdo) y prefiero dejar el tema aqui para no entorpecer la funcion del foro.
Saludos.


----------



## ellogu

y porque no trabajas con el pic 16f84a con ese pic yo controle muy buen la velocidad de un motor de 12 vdc los circuitos vienen el libro de desarrollos de pryectos con pic16f84a te lo recomiendo esta en pdf buscalo en la red.


----------



## toniiberto

oye compa me ayudarias a hace runo para pic16f627a..?


----------



## Alhayn21

Hola  este es mi primer post (aunque ya llevo rato en el foro jeje) y se debe a que tengo un problema que no e podido resolver en dias, al grano: 
tengo un sensor infrarrojo de proximidad que le envia una señal al pic que al recibirlo comienza una rutina de señales que aran girar unos motores DC, hasta ahora el sensor anda de lujo al igual que el pic, pero el problema es la comunicacion entre el pic y los motores, la fuente que ocupo son baterias de 9v reguladas a 5v, intente usar un puente H pero no me funciona, intente poner 2 baterias en paralelo para incrementar el amperaje y tampoco  me pueden ayudar con esto? solo nesecito hacer que el pic aga funcionar los motores y acabo mi proyecto . please! jeje...


----------



## lubeck

> intente usar un puente H pero no me funciona,


 
Que esquema usaste...

si estas intentando alimentar el motor con las salidas del PIC, Vas por mal camino, estos entregan si mal no recuerdo 20mA, algo asi como para encender 1.5leds o quizas 2.... un motor y dependiendo casi del tamaño a de consumir unos 200mA o mas...


----------



## golumx

¿Que driver usas? yo te recomiendo un L293D


----------



## Alhayn21

lubeck dijo:


> Que esquema usaste...
> 
> si estas intentando alimentar el motor con las salidas del PIC, Vas por mal camino



no amigo, jeje el puente H lo alimento con baterias de 5v y 6v, el pic solo le da las señales para que gire el motor

amigo: golumx, hice mi propio puente H.

Adjunto el esquema del circuito que use para el puente H.

Nota* al principio si me funcionaban las 3 cosas cuando alimentaba al puente H con 4.7v a 400mA y el pic con el sensor a 4.5v a 300 mA. pero debido a que nesecito hacerlo portable me veo obligado a utilizar baterias (lo cual me esta dando problemas :'( )

Nota 2* algo que sucede ahora que trabajo con baterias es que al alimentar el puente H, enciende un led que se encuentra en el pic (el cual solo deberia de encender hasta que reciba la señal del sensor) y se queda encendido hasta que no dejo de alimentar al puente H.


----------



## lubeck

A ver si me doy a entender....

1.- Estas usando un puente H que si esta bien armado yo creo que daria suficiente como para un motor medio grandecito... (Si mides el consumo del motor seria genial)
2.- Si utilizas dos pilas de 9v en paralelo yo creo que seria suficiente....
3.- si lo regulas a 5v para el pic y los motores yo creo que ahi esta el problema.... los reguladores y depende cual uses imagino que el 7805 solo entrega 1A o menos... yo alimentaria solo el pic con el 7805 y el puente H directamente a los 9v...


----------



## Alhayn21

los motores son de los pequeñitos, funcionan hasta con una pila de 1.5v jeje... probare lo que me dices el pic y el puente H y comento, gracias por la ayuda 

Actualizacion: lo e conectado como me indicaste y el pic junto con las rutinas de los motores funcionan pero no alcanza a terminar la rutina debido a que el motor consume mucho y el pic se apaga y se enciende de nuevo pero el motor tambien se enciende de nuevo y es cuento de nunca acbar jeje... ademas...  ahora el sensor me esta dando lata juju... ya que si lo alimento aparte con 6v envia la señal pero el pic no se enciende, y si lo alimento a los 5v junto con el pic y el puente H se queda encendido todo el tiempo, es decir, el 0 que tiene q enviar lo manda constantemente y por obia razon el pic no deja de realizar las rutinas juju... a que se podra deber esto? alguna idea?


----------



## leojunin

Por lo que he leido se te reinicia el pic. Para hacer las pruebas, alimenta todo desde una fuente, estabilizada y buena. Digo unos 12V 3 o 4 Amp, a la salida le colocas el 7805 solo para el pic y al puente H alimentalo directamente con los 12V, asi ahorraras dinero en baterias y te aseguras si funciona que no es un error de programa. Si con esto funciona, separa la tension que entra al 7805 intercalando un diodo 1N4007 y un capacitor de 100uF en la pata de entrada del 7805, luego ponele 1uF y 100nF  y cargalo con una R de 1K a la salida del 7805. Pasa que el motor al arranque genera un transitorio que hace que el pic se reinicie. Otra cosa que deberias hacer es colocarle al puente diodos rapidos de avalancha no sea cosa que estos transitorios te generen disturbios sobre el micro.


----------



## lubeck

Opino lo mismo que leojunin...

ademas de que subas el esquema completo con todo y sensores.... y ademas que llego la hora de dejar de adivinar y comenzar con las mediciones y calculos....

sabes medir el consumo del motor???
Tienes multimetro con amperimetro???


----------



## Alhayn21

leojunin podrias proporcionarme el esquema del circuito que mencionas para el 7805 porfavor?

y por desgracia ahorita no cuento con mi multimetro para medir el consumo pero los motores 

adjunto el diagrama del sensor y del puente H asi como el tipo de motor que uso por si lo conocen y sirve de algo jeje... el pic recibe la señal en RB0 y las salidas para el puente H son los pines 8 y 9.
Ver el archivo adjunto 1710
Ver el archivo adjunto 53954


----------



## antiworldx

intenta usar como prueba dos baterias, uno para el puente H y otra para el pic, y luego platicamos... No olvides que los comunes (-) o tierras van unidas.


----------



## Alhayn21

antiworldx dijo:


> intenta usar como prueba dos baterias, uno para el puente H y otra para el pic, y luego platicamos... No olvides que los comunes (-) o tierras van unidas.



ya lo probe de esa manera y no me funciona :S incluso de varios voltajes


----------



## lubeck

> adjunto el diagrama del sensor y


 
No se aprecia el diagrama...


----------



## Alhayn21

a que diagrama te refieres lubeck? este:
Ver el archivo adjunto 1710
gracias leojunin, mañana mismo compro el material antes de ir a la universidad y lo pruebo 

tambien gracias ati nandobnu  tendre en cuenta tu puente H si no funciona lo del 7805 

Nota* hize lo que me sugirio antiworldx sobre poner una pila de 9v al puente H y otra al 7805 para el pic compartiendo solo la tierra y si note un buen cambio, ya que anteriormente el pic se reiniciaba como al medio segundo a lo mucho, y despues de esto dura como 4 segundos!  lo cual fue bueno pero no suficiente 

Nota 2*
Amigos! e tenido un buen avanze  ya casi funciona todo pero, solo tengo un detalle:
alimente al puente H con 9v directo, al pic con 9v regulada a 5v y el sensor a 6v directo, comparti las 3 tierras de las 3 baterias y vuala! el circuito porfin al recibir la señal del sensor hace que el pic aga su rutina con exito  el unico detalle es que si vuelve a detectar un objeto el sensor al volver a ejecutar la rutina el pic, este se queda colgado sobre la ultima rutina y no se detiene hasta que no retiro las fuentes para resetear :S alguna idea de porque pase esto? y de como se podria solucionar? desde ya gracias por todo el apoyo, me a servido de mucho


----------



## Alhayn21

este es mi codigo:



> ; ZONA DE DATOS *********************************************************************
> 
> LIST	   P=16F84A			; Procesador utilizado.
> INCLUDE  <P16F84A.INC>		; Definición de algunos operandos utilizados.
> __CONFIG   _CP_ON &  _WDT_OFF & _PWRTE_ON & _XT_OSC
> CBLOCK 0x0c
> R_ContAA				; Contadores para los retardos.
> R_ContA				; Contadores para los retardos.
> R_ContB
> R_ContC
> ENDC
> ;
> 
> CONSTANTE  EQU	d'74'	; En sistema decimal se pone así.
> #DEFINE inter    PORTB,0
> ; ZONA DE CÓDIGOS *******************************************************************
> 
> ORG 	0			; El programa comienza en la dirección 0.
> Inicio
> bsf	STATUS,RP0		; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1.
> clrf	TRISB
> bsf 	inter
> bcf	STATUS,RP0		; Pone a 0 el bit 5 de STATUS. Acceso al Banco 0.
> clrf	PORTA
> clrf	PORTB
> call Retardo_500ms
> Principal
> btfss   inter
> call    Semaforo
> goto 	Principal	; Crea un bucle cerrado e infinito.
> 
> Semaforo
> call	Retardo_500ms
> 
> movlw	b'01010100'
> movwf	PORTB		; El contenido de W se deposita en el puerto de salida.
> call Retardo_5s
> call Retardo_5s
> 
> movlw	b'10101000'
> movwf	PORTB		; El contenido de W se deposita en el puerto de salida.
> call Retardo_5s
> call Retardo_5s
> 
> movlw	b'00000000'
> movwf	PORTB		; El contenido de W se deposita en el puerto de salida.
> call Retardo_2s
> return
> 
> 
> 
> ; RETARDOS de 0.5 hasta 20 segundos ---------------------------------------------------
> ;
> Retardo_20s				; La llamada "call" aporta 2 ciclos máquina.
> movlw	d'200'			; Aporta 1 ciclo máquina. Este es el valor de "N".
> goto	Retardo_1Decima		; Aporta 2 ciclos máquina.
> Retardo_10s				; La llamada "call" aporta 2 ciclos máquina.
> movlw	d'100'			; Aporta 1 ciclo máquina. Este es el valor de "N".
> goto	Retardo_1Decima		; Aporta 2 ciclos máquina.
> Retardo_5s				; La llamada "call" aporta 2 ciclos máquina.
> movlw	d'50'			; Aporta 1 ciclo máquina. Este es el valor de "N".
> goto	Retardo_1Decima		; Aporta 2 ciclos máquina.
> Retardo_2s				; La llamada "call" aporta 2 ciclos máquina.
> movlw	d'20'			; Aporta 1 ciclo máquina. Este es el valor de "N".
> goto	Retardo_1Decima		; Aporta 2 ciclos máquina.
> Retardo_1s				; La llamada "call" aporta 2 ciclos máquina.
> movlw	d'10'			; Aporta 1 ciclo máquina. Este es el valor de "N".
> goto	Retardo_1Decima		; Aporta 2 ciclos máquina.
> Retardo_500ms				; La llamada "call" aporta 2 ciclos máquina.
> movlw	d'5'			; Aporta 1 ciclo máquina. Este es el valor de "N".
> 
> Retardo_1Decima
> movwf	R_ContC			; Aporta 1 ciclo máquina.
> R1Decima_BucleExterno2
> movlw	d'100'			; Aporta Nx1 ciclos máquina. Este es el valor de "M".
> movwf	R_ContB			; Aporta Nx1 ciclos máquina.
> R1Decima_BucleExterno
> movlw	d'249'			; Aporta MxNx1 ciclos máquina. Este es el valor de "K".
> movwf	R_ContA			; Aporta MxNx1 ciclos máquina.
> R1Decima_BucleInterno
> nop				; Aporta KxMxNx1 ciclos máquina.
> decfsz	R_ContA,F		; (K-1)xMxNx1 cm (si no salta) + MxNx2 cm (al saltar).
> goto	R1Decima_BucleInterno	; Aporta (K-1)xMxNx2 ciclos máquina.
> decfsz	R_ContB,F		; (M-1)xNx1 cm (cuando no salta) + Nx2 cm (al saltar).
> goto	R1Decima_BucleExterno	; Aporta (M-1)xNx2 ciclos máquina.
> decfsz	R_ContC,F		; (N-1)x1 cm (cuando no salta) + 2 cm (al saltar).
> goto	R1Decima_BucleExterno2	; Aporta (N-1)x2 ciclos máquina.
> return				; El sal
> 
> END


----------



## Jrafmen

Amigo en la salida de tu pis (donde manda la señal, solo ponle un led) este led sirve como geneerador de corriente, asi tambien podras ver que señal esta mandando el pic

yo tube el mismo problema y lo solucione con eso


----------



## Alhayn21

gracias por la sujerencia Jrafmen  y les aviso que me funciona ya todo segun mis propositos jeje... solo el detalle de que una bateria se calienta en un par de minutos pero debido al precio que me costo ya me esperaba eso jeje... ahora me pondre a realizar todo en placas y a alimentar con baterias de alto rendimiento
Que marcas me recomiendan utilizar? e pensado en duracel pero mejor me espero a recibir sus opiniones jeje... saludos


----------



## comun3ro

Hola buenas, tengo en casa un montacargas con el tipico maquinillo de obra y le he automatizado con un circuito microcontrolador 16f628A, con finales de carrera etc, el problema viene que el circuito funciona bien por si solo, se mueven los reles que lleva y si toco los finales de carrera, se paran o se activan en funcion del programa, el problema llega cuando lo coloco en el moontacargas que lleva contactores de 230V (activados por los relees y un motor de 1000W. La cosa es que al activar y desactivar tanto los contactores ocmo el motor (indistintamente), o bien se me reinicia el PIC o lee falsos pulsos de finales de carrera y se salta pasos, el problema supongo que es de la fuente de alimentacion, es una de 12v de la marca cebek que vienen ya hechas y luego un LM7805 conectado como viene en el circuito que adjunto. ¿Sabeis que puedo hacer? gracias

http://www.eleccircuit.com/wp-content/uploads/2007/09/lm7805_regulator.jpg


----------



## ricbevi

comun3ro dijo:


> Hola buenas, tengo en casa un montacargas con el tipico maquinillo de obra y le he automatizado con un circuito microcontrolador 16f628A, con finales de carrera etc, el problema viene que el circuito funciona bien por si solo, se mueven los reles que lleva y si toco los finales de carrera, se paran o se activan en funcion del programa, el problema llega cuando lo coloco en el moontacargas que lleva contactores de 230V (activados por los relees y un motor de 1000W. La cosa es que al activar y desactivar tanto los contactores ocmo el motor (indistintamente), o bien se me reinicia el PIC o lee falsos pulsos de finales de carrera y se salta pasos, el problema supongo que es de la fuente de alimentacion, es una de 12v de la marca cebek que vienen ya hechas y luego un LM7805 conectado como viene en el circuito que adjunto. ¿Sabeis que puedo hacer? gracias
> 
> http://www.eleccircuit.com/wp-content/uploads/2007/09/lm7805_regulator.jpg



Hola en la resolución de tu problema interviene una gran cantidad de parámetros desde el circuito impreso, el desacople correcto de la alimentación con capacitores cercanos al pic, planos de tierra generosos, distribución de materiales y blindaje, sistemas de acoplamiento de las señales de control, astucia del programador par "leer" mas de una vez una señal y después actuar en consecuencia, etc, etc ,etc.
Sin el circuito, disposición de materiales, software y wardware, etc. una respuesta satisfactoria solo la obtendrás en el foro de los adivinos.
Saludos.

Ric.


----------



## marcelo2112

Pone un capacitor ceramico de 470n en la parte de abajo de la plaqueta entre la masa y alimentacion del pic.


----------



## comun3ro

buenas, gracias por responder, bueno ya acabe la tarde y me voy de viaje hasta el sabado, que continuare con el post y si me podeis ayudar os lo agradezco, a ver primero respondo a marcelo diciendole que lo probare el sabado a ver si da resultado, y para el primer comentario pues si me permites, pongo aqui todo el software y hardware para el sabado, en principio decir que con lo de leer falsos estimulos de los finales de carrera no supone problema porque he puesto que lea el final de carrera durante 1 decima de segundo y ya no hay problema, pero sigo teniendo el fallo de que se me reinicia el PIC he puesto todo tipo de condensadores posibles y nada, los reles tienen hasta su diodo en antiparalelo para que no joroben pero bueno es igual si me lo permitis el sabado os pongo hasta el codigo. un saludo


----------



## chapin

trata con una fuente independiente para los reles unicamente une el comun


----------



## beskyttere

tu problema es revolver circuitos digitales, con circuitos de potencia, en la descripción del problema no veo que hagas eso, te sugiero que utilices un optoacoplador (MOC), ellos permiten separar datos digitales senales de potencia.


----------



## luchosexto

Yo tube el mismo problema con un plc que arme, intente de todo: poner capacitores a la conexión a masa, hacer una puesta de tierra muy buena, blindar la etapa de reles, pero nada funcionaba, cuando pasaba a accionar un rele que controlaba una carga a 220V se reseteaba el pic y volvia a repetirse todo el proceso (cuando desconectaba todas mis cargas andaba lo mas bien), despues de renegar un buen rato averigue con un ingeniero, y me dijo "tu solucion es sencilla pero costosa, pero tenelo en cuenta cuando diseñes para la proxima, cuando el rele se acciona la descarga (chispa) de los contatos de la carga a 220, te resetea el pic, hace la prueba por separado con una carga sometida a 12V, lo que mas te conbiene es reemplazar los reles por optocopladores y triac's. Tal como lo dijo ocurrio y eso explica por que cuando sacaba las cargas andaba, asi que reemplaze los reles por reles de estado solido (una configuracion de optocopladores con triac's). Espero que mi experiencia te pueda ayudar, voy a buscar ese circuito para reemplazar los reles asi lo subo ak. Saludos.


----------



## urutecno

Buenas,

Tengo ese mismo problema.... estoy utilizando un pic16f628A para manejar un motor que se mueve en dos sentidos....La placa tiene dos reles, uno para el on/off y otro para el sentido!

Cuando utilizo el programa sin la carga, todo funciona perfecto.... el problema es cuando conecto la carga....A veces el pic se resetea y otra cosa rar que pasa es que uno de los reles a veces queda como pegado en el NC y debo pegarle un martillazo (suave) como para destrancarlo.

Les mando el circuito que estoy utilizando para ver si detectan algo que esta mal, o algo que seria mejor!

Muchas gracias


----------



## MGustavo

Tal como menciona *luchosexto*, es la mejor solución. Si sube su circuito, lo mejor es que implementes tu proyecto de esta manera, aislando las etapas. Saludo!

http://www.ucontrol.com.ar/Articulos/E-S/e-s.htm


----------



## chapin

en alguna parte de el foro encontre esta solucion


----------



## D@rkbytes

Saludos.
No se si ya checarón el tipo de configuración que estan usando en su programa.
El PIC16F628 tiene un sistema de autoreseteo por bajo nivel de voltaje de alimentación.
Llamado Brown Out Detector BOD si este bit esta activado hay un comparador dentro
del micro que esta monitoreando el voltaje de alimentación,
y si el voltaje es bajo resetea el micro:

Si este Bit lo tienen configurado en OFF el problema entonces si es debido a una mala
distribución de pistas y su desacoplo de transitorios en el voltaje de alimentación
por medio de redes de filtraje, en ambientes en donde hay frecuencias parasitas
que puedan afectar el trabajo de los procesadores se usan chokes de RF en la entrada
de alimentación para evitar este tipo de inconvenientes. BYE4NOW 
  __CONFIG   _INTOSC_OSC_NOCLKOUT & *_BOREN_OFF* & _ETC_ETC


----------



## ElciX

Hola amigos, decidí hacer un control de 4 motores DC mediante un PIC utilizando PWM y dos l298.

He realizado varias pruebas con leds para probar el circuito PWM del PIC. Las pruebas las estoy haciendo con el PIC16f886 que cuenta con un modulo CCP. He visto en el foro gente que hacen funcionar el mismo PWM con 4 salidas y otro que lo hacia con 8 pero no lo entendí muy bien y me ha parecido entender que NO son en el mismo instante de tiempo. 

Estoy programando en Basic pro y si uso el comando PWM, crea un pwm por software y lo envía por el pin que quiero. Mi problema es que al hacerlo así, noto un parpadeo (el mínimo parpadeo es usando 1 ciclo en el pwm con 20mhz de cristal). No se si ese parpadeo será apreciable en el motor, pero necesito que el movimiento sea el mas fino posible. He pensado en conectarlos con un capacitador, pero me gustaría saber si utilizando el CCP físico puedo tener en el mismo instante (misma frecuencia) diferentes valores de duttys. ¿Seria necesario un pic con 4 CCP? ¿utilizo un generador de pwm externo?

Muchas gracias por vuestro tiempo.


----------



## Meta

Hola:







Estoy navegando por la Web oficial en busca de ejemplos sobre motores *Brushed DC.*
http://www.microchip.com/pagehandler/en-us/technology/motorcontrol/motortypes/brushed.html

Este tiene pinda de hacer cambio de sentido. Lo que no se es si es capaz de regular la velocidad.

Buscando notas de aplicación, ejemplos desde la Web de www.microchip.com, para mi sorpresa, los ejemplos están con el dsPIC, precisamente el menos que me interesa, usar el control de motores con dsPIC con todos los 16F y 18F hay por haber.

Hay detalles que te explican cosas de motores como.
AN905
eso si, nada de ejemplos con un PIC16F o 18F.

Me dio por buscar en esta parte.

Me salió el:
AN897
AN893
AN843
AN857

Un saludo.


----------



## lubeck

son los tipicos motores con escobillas no??

si lo son... entonces se puede cambiar la direccion con el puente H que esta ahi, y se puede modificar la velocidad con PWM o variando el voltaje, se sensa la corriente para el torque con una resistencia shunt y una entrada analoga del pic o dspic (ya sea ADC o con un comparador). el feedback que ponen ahi supongo que es el sistema de posicionamiento como un encoder o algo asi....

si no es asi hagan caso omiso de mi comentario


----------



## Meta

Hola:

Sí, es el motor con escobillas y funciona a 230Vac, 3.1A, 10750 rpm, 50/60 Hz.

Tiene tacómetro. Lo que no se si es recomendable usar pulsos PWM para darle velocidad. En cuanto al tacómetro, estará ahí para algo, controlar la velocidad. La cuestión es como hacerlo.

Un saludo.


----------



## lubeck

hay algo que no me cuadra meta.....



> Sí, es el motor con escobillas y funciona a 230Vac, 3.1A, 10750 rpm, 50/60 Hz.





> Estoy navegando por la Web oficial en busca de ejemplos sobre motores Brushed DC.



o es DC o AC????

Si es AC no creo que se pueda cambiar la direccion con un puente H, y para variar la velocidad creo que se utilizan variadores....

en fin algo esta raro...


----------



## Meta

Hola:

Tiene relés. Entonces no será puente H con fet o transistores. Funciona con AC. Controla este motor un ATMEGA32L AU8. Puede cambiar de velocidad directamente del AVR sin problemas. Si falta más datos, las digo.

Un saludo.


----------



## lubeck

De que estas hablando meta????

te estas echando unas copas de vino? o que? invita!!!! 

ese puente H esta echo con mosfets , y hablas de PICs y dspics que son de microchip... y luego de AVR que creo es de Atmel...


o de que motores hablas???


----------



## Meta

Jajajajja, estoy bebido, ajaaajaj. Disculpe usted. 

Me explicaré algo mejor. Se que usa puente H, un motor que tengo funciona con un AVR de Atmel, quiero cambiarlo por PIC de Microchip. El motor que tengo es de una lavadora y tiene 4 relés. 

Saludo.


----------



## lubeck

aaaahhh.. ok.. ya entiendo.....

no tengo idea de que motor lleve esa lavadora, pero no creo que tenga ninguna relacion con la informacion del primer post...

no tengo mucha idea de los motores AC para cambiarles el sentido de giro, pero creo que es cambiando algo en las bobinas y si seguramente se hace con reles...



Saludos meta...


----------



## Meta

Hola:

He estado investigando con el tester. Por ahora el motor por dentro debe ser algo así.





Me imagino que los relés se conectan como pone por aquí abajo.





Con ello se peude hacer el cambio de giro del motor.

Alguna idea.

Saludo.


----------



## lubeck

Esa configuracion de puente H con relays DPDT yo la he usado con Motores de corriente directa... y funciona bien 

en alterna nunca lo he probado... y ni idea...


----------



## Meta

Buenas:

A lo mejor es igual y todo.





Presento el nuevo esquema con el Paint de Windows XP, ejjejejejee.  Este es el real. Más sencillo que este lo haré con un simulador de  motores para ver el funcionamiento de como puede ser el cambio de giro.  Algo que quiero saber de este motor, se perfectamente que con un  reostato en serie con el motor, puedo variar la velocidad del motor  manualmente, no es el caso, me da la impresión que varía de velocidad a  base de pulsos PWM.
Para que se hagan una idea. Si con el reostato  tengo 120Vac, el motor tiene una velocidad, puedo variar esa velocidad  ajustanto el reostato, subiendo hasta los 230Vac, llego a su velocidad  máxima. La técnica que usa la lavadora no es esta. Por lo que veo, usa  pulsos de 230Vac, siempre usa 230Vac para variar de velocidad a pulsos  como si fuera un oscilador NE555,  no lo deja fijo, si dejas fijo los 230Vac, siempre estará a su  velocidad máxima. Con el manejos de pulsos, puedes escoger cuantas veces  quieres el pulso para controlar la velocidad. Es la ventaja que tiene  estos motores.
*



*
Este  es el esquema boceto casi final, con los colores de los cables reales.  Hay que hacer otro para conectar el motor a parte y hacer pruebas  reales, solo el motor, sin lavadora para saber como funciona el cambio  de sentido.
Saludo.


----------



## Meta

He probado antes mismo la sólo el centrifugado. Sólo actúa dos relés a  24Vdc. Relé 2 y Relé 3. Mientras uno está activ, el otro desactivado.  Me he fijado bien, primero cambia los relés, luego el motor gira. Al  cambiar de sentido, el motor se detiene, cambia de relé, al rato el  motor gira.Según aumenta la velocidad del motor el motor actúa...


1) Estator = 70Vac | Rotor = 20Vac
2) Estator = 70Vac | Rotor = 80Vac
3) Estator = 70Vac | Rotor = 100Vac
4) Estator = 80Vac | Rotor = 165Vac


Como máximo del centrifugado, el motor funciona a 165Vac aproximádamente.


*¿Dónde están los 230VAC?*

Parece ser que no los usa.
¿Alguna opinión sobre este detalle?
¿Es normal que sea así en muchas lavadoras?
Saludo.


----------



## rocke38

Estimados! Una consulta, estoy armando un "aparatofono"...jaja que una vez terminado lo subiré en la sección correspondiente...
En un post anterior subí una maquina de láser con PIC y motores PAP, bueno, resulta, que arme una especie de "ESPIROGRAFO LASER" con motor DC sin pic, con dos potenciometros...

Y un día, se me ocurrió meter las dos "maquinas" en uno solo...ocurre que tengo un problema/CONSULTA sobre el MOTOR DC y el PIC...

Voy al punto!

Tengo un motor de esos comunes de los juguetes de 3v creo, y resulta que arme la parte de programación PWM, con PIC16F84A, y busque sobre como armar una etapa de potencia, lo que yo estoy haciendo es R de 220ohms, a base del transistor, colector a una pata del motor, la otra a VCC y emisor a masa, TRANSISTOR de distintos tipos (TIP31 - 2N2222 TIP122 - BC548) y resulta que no anda bien del todo...que ocurre?

*Con el TIP31 anda mas o menos bien, pero cuando el motor tiene que girar a su máxima velocidad, gira 2 segundos y no gira mas...
*Con el 2N2222 el motor no gira, sino que vibra, sea la velocidad que sea... leí en los post anteriores que puede ser mucha frecuencia y el motor hace que no gire... probé con las frecuencias de 100hz, 50hz, y 10hz...MISMA RESPUESTA EN LAS 3 FRECUENCIAS...
*Con el TIP122 ni anda... hace como un "paso" y se clava...
*Con el BC548 tampoco anda, pero bueno, no le echo la culpa porque es un transistor muy básico, y nada, se debe quemar...
*Leí por ahí que hablan de los IFRZ algo así, que son para estos usos, PERO también leí por ahí por ahí, que son para manejo de mayores potencias, y que para los usos básicos con un 2N2222 debería andar...

PD: EL motor tiene un diodo en inversa a VCC, y un capacitor, por el tema de la corriente generadas y esas cosas...

Alguna Idea - Sugerencia - Aporte!!??

Desde ya...Gracias!!!

PD2: Leí el foro, y realmente no encontré la respuesta a mi problema, disculpen si parece repetitivo... =$

Rocke!


----------



## phavlo

Proba con algun BD139/140. Son de mas corriente que los BC, pero es raro que con el tip31 no te ande. subi un esquema de como esta todo conectado.


----------



## ars

con esa resistencia de base, tenes una corriente de 19,5ma, que la suministra el pic. si no estoy errado puede entregar hasta 20, y teniendo en cuenta que ademas es un calculo aproximada, estas muy al limite.
AUmenta un poco la resistencia, total no es necesario tenerlo super saturado al bjt.


----------



## rocke38

Buenas de nuevo,,,, acá les mando un diagrama de lo que estoy haciendo...

Les cuento, que por ejemplo, poniendo un led con una resistencia, como para probar que parte anda mal, el led conmuta bien, es decir, la etapa anda, pero cuando pongo el motor, pasa eso!! 

Voy a probar con una R mas grande a ver que pasa, y no quería cambiar el transistor porque teóricamente tendría que andar igual... 

El motor según lo que medí consume en 5v unos 100mA con toda la furia...por eso, tampoco quería poner un IFRZ...

La verdad...NO SE!! =$


----------



## carson314

Hola que tal lo que pasa que ando haciendo un programa que controle un motor de cd a 5v pero no funciona, no hace nada, no se si alguien me podria decir si mi programa esta mal.
PD. Funcionaria igual que con un motor a pasos este programa?


----------



## kuropatula

Hola,
los motores CD no funcionan como los de paso, te recomiendo leer en google sobre cada uno de estos.
Para el motor de CD necesitás hacer PWM a traves de un transistor.


----------



## xmatrix

como lo dice kuro patula podrias hacer que el  que el pic mande un impulso controlado a la salida y habilite y desabilite en enable de un monostable 555 y de esta manera modificarias en ancho del pulso (PWM) y con esto controlaria la velocidad del motor y seria una rutina bastante sencilla y como dice  kuro para la alimentacion del motor si se necesita de un trasnsistor o un mosfettransistor depende de los requerimientos de corriente


----------



## Jrafmen

Código:
	

pues te dejo el programa hechho en lueguaje C y la simulacion en el proteus (Isis)


----------



## Alhayn21

Jrafmen dijo:


> Código:
> 
> 
> pues te dejo el programa hechho en lueguaje C y la simulacion en el proteus (Isis)



donde amigo? no veo nada adjunto ni ningun link


----------



## Jrafmen

Es cierto Disculpame!!

Una sugerencia es que en las salidas del ´pic, las que manda la señal a driver del motor pongas una resistencia de 220Ω y la mande a tierra asi para no tener una alta impedancia en la señay y nos proboque errores o que no funciones.

Tambien puedes poner un Led en vez de la resistencia asi notaras el cambio de selal que mnda el pic, suerte!!!!!


----------



## rocke38

Ahí probando, una vez que conseguí que "girara el motor" un poco, es decir, gira un segundo y deja de hacerlo, es como que se reinicia...y me fije, y la alimentación del pic es la misma que la del motor, pero cuando el motor gira, pasa de 5v a 3v o menos, depende, por eso se reinicia el pic... 

Alguna idea/solución para esto? O a que se debe??

*Estoy usando diodos de alta velocidad 1N4148, y un capacitor cerámico 103
*Probé con los comunes también 1N4007
*Y bueno, con todas las variantes de transistores antes mencionadas...

Saludos!


----------



## lubeck

Puedes mencionar cuanta corriente proporciona tu fuente de alimentacion?....


----------



## rocke38

Es un cargador de celulares, tira aproximadamente 5.3v y si no recuerdo mal 400mA...

Puede ser que se quede corta la fuente?, y al consumir el motor mas, me la tire abajo??

Pero es un motorcito de esos de autitos, de 3v, no consume 400mA...
No se que puede ser... y ya me estoy resignando!! =$


----------



## lubeck

> Puede ser que se quede corta la fuente?, y al consumir el motor mas, me la tire abajo??



prueba con otra fuente... y si...  yo podria decirte que pudiera ser eso...  y sobretodo si es un cargador chino... ademas ponle capacitores como filtros si no los tiene...


----------



## rocke38

Ahí probé!! Con una fuente regulable de 5v 2A...No hay CASOOO!!! Hace un arranquesito corto, y muere ahí... y así sucesivamente...

Probé conectando un led, en vez del motor (pensando que es el programa), y no, con el led anda lo mas bien...no se ya con que probar...

Lo armo, cambio los diodos, pongo 2x 1N4148, pruebo con 2x 1N4007, cambio capacitor, 103, 104, 56J, 100uF, y no!! Ya no se que puede ser...

Acá un esquemático de lo que estoy armando en protoboard...

Pruebo con un diodo, con dos, con un cap, con otro cap, no se, todas las combinaciones posibles... =$


----------



## lubeck

Que curioso, a mi me habia pasado eso pero con un rele y un motor.... puse filtros y se corrigio... voy a armar tu esquema y te comento...

por otro lado... si estas poniendo bien el diodo??

digo a veces pasamos por alto lo mas obvio...


----------



## rocke38

Creo que si, va conectado en paralelo e inversa, es decir, el negativo hacia +V, o no!? En otras palabras, con la marquita negra o gris a +V... Me esta desmotivando ya...debe ser una "simplicidad"...pero me esta complicando la vida...


----------



## lubeck

si marquita blanca o gris hacia positivo...

pasame el archivo del codigo para probarlo, bueno si esta en C o Basic...



Mira intenta tambien esto....



si funciona te explico cual es mi teoria del porque no funcionaba, si no funciona para que gasto las teclas de mi pc en explicarlo..


----------



## rocke38

AHI VI TU RESPUESTA!! PRUEBO Y TE DIGOOOO!!!

_________________________________________

Esta en ASSEMBLER... no se si te va!

Básicamente, uso una frecuencia de 100hz...

PWM en periodos de 10000uS que multiplicado por SEGUNDO = 100 da 1 segundo. Y cantidad es la cantidad de segundos que uno quiere que ande, para probar...

TH es el tiempo en 1 a la salida del PIC
TL es el tiempo en 0 a la salida del PIC

Pero no es eso...osea, no me preocupa la programación, porque haciendo un programa mas complejo con eso mismo que te pase, pruebo, y atenúa el led lo mas bien, desde lo mínimo, hasta el máximo brillo...y la salida del pic medida con el tester va de 0.5V a 4.5v al máximo...es decir..."Anda el programa", menos con el motor, ANDA!!

ESTO ES UN ESQUEMA EN PROTEUS, EL ARCHIVO MPLAB PARA PROBARLO SI QUERES, Y UN TXT CON EL PROGRAMA SI LO PROBAS EN OTRO SOFT!

 Pero en Proteus anda!! 

No se que pasa!!

Saludos y gracias por las molestias!!!


----------



## lubeck

bueno en realidad el codigo lo queria para hacerlo en similares condiciones, pero como no tengo el 84a lo queria modificar para  hacerlo con el 628a... pero deja armarlo con un tip120 que es el que tengo en lugar del tip 31, y no no me sirve el asm (en asm para pics no se nada )


----------



## rocke38

No hay caso! Eso que probé, anda igual que lo que tengo yo, probé dando vuelta el diodo,y "andaría" pero se calienta y se pone re caliente,jajajja así que digamos, que no es esa la solución!! No se porque hace eso con el motor, voy a probar mas tarde no se "optoacoplando" pero no se, ES RARO!! =$


----------



## lubeck

pues yo ya lo arme....

y efectivamente le pongo la fuente de alimentacion y a veces prende y a veces no y se vuelve loco....

pero le puse el tipico capacitor de 100nF y tambien uno de 10uF entre el vdd y el vss del pic y buala!!!! funciona de maravilla, preparo el video.. 



aqui esta un foto para el registro... el video nada mas si es necesario....

tiene una resistencia a la base de 240Ohm y es un tip120, no le puse el diodo puesto que el tip120 ya tiene uno en sus entrañas.... en teoria deberia funcionar bien con el tip31... ahhh y utilizo un 628A con oscilador interno... asi que otra posibilidad es que el motor meta ruido en el cristal....


----------



## rocke38

Uh! Genial, voy a probar a ver que pasa!! 

Justo antes de entrar a ver tu respuesta filme un video de lo que hacia... lo subo a mi cuenta igual para que lo veas!! 

http://www.youtube.com/watch?v=Nr0g_JT7cQg&feature=youtu.be

Voy a comprar esos componentes esta tarde y después te digo como me fue!! 

Muchas gracias por el aporteeeee, por las respuestas, por las molestias, y todo!!


----------



## lubeck

> Voy a comprar esos componentes esta tarde y después te digo como me fue!!



antes de que compres cosas, ya probaste poner un capacitor de 100nF(104) y uno de 10uF lo mas cerca de la alimentacion del pic... pin 14.. no alcanzo a distingir si lo tiene en el video...


----------



## rocke38

Si, no, como comprar me refería al capacitor...porque tengo uno 103 y uno 56j que según averigüe es para temas de motores de arranque y esas cosas...y probé con esos dos y el capacitor de 10uF en el pin 5 y 14 como para probar, y no, no resulto!! 
Probare después con el 104 cuando lo compre y sino, debe ser el tema del ruido en el cristal tal vez! Y ahí si, no se que voy a hacer...pero bueno, ya me las ingeniare...


----------



## lubeck

Parece que tenemos problemas, le puse un 103 y funciona, le deje solo el de 10uF y funciona, le deje solo el de 100nF y funciona, solo dejandolo sin capacitor funciona y despues se apaga o hace cosas raras....

que capacitores le pusiste al cristal?


----------



## rocke38

Tengo capacitores de 22pF con un X de 4Mhz es el circuit de un post anterior, una maquina laser... lo que estoy haciendo es... como esta en la pagina 2 de este archivo... dejo RA0 con un interruptor, despues RA1 y RA2 las dejos para los PWM de dos motores, uno para cada uno, y con RA3 Y RA4 mas adelante, conectare los lasers para que funcione la parte que dibuja formas cuadradas con los motores PAP o la parte de figuras redondas con los motores QUE NO PUEDO HACER ANDAR,ajaja Es decir, el circuito esta andando, pero bueno, no me deja hacer esa parte de los pwm con los motores!!!

Debe ser eso del ruido en el cristal, o la verdad, no se, el transistor no creo que sea, aparte probé con 2N2222, TIP122 y pasa igual...es decir, debe ser eso...o el motor, pero no se! No se que mas probar, tengo dos motores iguales, probé con los dos, cambie los diodos, no se que mas, esta tarde comprare ese transistor para probar también, y el capacitor para armarlo como vos dijiste y ver que pasa, y sino, no se, dejare el proyecto como estaba...


----------



## lubeck

ok... 

voy a probar este 628A con cristal de 4Mhz y los capacitores de 22pF, 

por otro lado intenta poner todos puertos que no ocupes como de entrada... yo los tengo todos como de entrada... excepto el del motor...


----------



## rocke38

EUREKAAAAAAAAAA!!! AHI ANDUVOOOOO!!! Con eso de pone todas las patas como entrada, todo ok!!
Pero que pasa, yo necesito todo el PORTB como salida, todo el PORTA salida menos RA0 como entrada... Que dilema...!! =$


----------



## lubeck

Pus creo que si va por ahi.... es una recomendacion de microchip el poner los que no se ocupen  como de entrada....

por otro lado puse el cristal de 4Mhz... y tambien funciona ok...


----------



## rocke38

Ahí puse el PORTB como salida, (que usaría los PAP en el proyecto entero) y otra vez vuelve a causar problemas...ni hablar si pongo el PORTA como salida, menos RA0 pero bueno...hasta ahora mas o menos ya se como viene la mano!! Ahora experimentare y mañana doy novedades de nuevo!! Gracias por tu ayuda!!!


----------



## lubeck

Ok... Suerte....


----------



## rocke38

Buenas de nuevo....
Básicamente, la única forma de solucionarlo, y ya no tener mas problemas. fue poniendo dos fuentes, es decir, una para el PIC, y otra aparte para la parte de potencia...

Gracias a lubeck por toda la data y las molestias y tambien al resto de la gente!!

Ahora a trabajar...

Recién voy por esto...pero va encaminado...cuando tenga todo armado subo un post....


----------



## Marcoipn

dxtr_hyperion dijo:


> Hola mira lo que puedes hacer es seguir el circuito mostrado abajo, o no se si este sea el que estés usando, pero este a mi me funcionó muy bien, le conecté 9V y todo a las mil maravillas ... aparte ese integrado te maneja hasta 2A, o sea que no creo que sea por ahi las cosa, si este no es el circuito que estas usando, intenta con este. A y B son tus entradas digitales o salidas del PIC y es para control bidireccional de tu motor. Solo pon a 1 la direccion hacia la que quieras que vaya tu motor y en 0 la otra y para la direccion opuestas cambias las salidas a 0 y 1 respectivamente.



Hola..yo tambien tengo ese problema....tengo el circuito del puente H y si funciona e invierte y todo.Pero a la hora de conectar las entradas a un microcontrolador PIC16F628A...este no ejecuta bien el programa y hace cosas raras y se resetea, ademas que despues de varias pruebas de prender y apagar el circuito se quema el pic a pesar de que cuenta con el circuito de proteccion de los diodos. ¿Que debo hacer para solucionar el problema?..donde debo colocar los condensadores y de que valor?..Les agradeceria mucho por su pronta respuesta.


----------



## lubeck

Alimenta al motor y al puente H con una fuente independiente al PIC... y tan tan... aparte de que solo tu tienes idea de como lo armaste...


----------



## Marcoipn

OK ya lo probe y si efectivamente al separar las fuente de alimentaicon del pic y la que aliemte a los motores se soluciono el problema.Gracias XD


----------



## Luis felipe cardona sanch

ola  este tema esta interesante en este momento estoy controlando 2 motores con un l298   con un pic16f877a con  ccp1    en la alimentacion del l298 suicheo con un tip 41 me funciona pero los motres me andan lentoo


----------



## andyt

hola leojunin ,....
tengo el mismo problema que se me reinicia el pic
podrias poner el cto que describes anteriormnete..
gracias por la colaboracio


----------



## Vegetal Digital

Hola gente, les comento que diseñe una placa en la que controlo con un pic un servo.
Mi problema surge al alimentar el circuito y mandarle el pulso pwm al servo para que se mueva, el pico de consumo hace que caiga la tensión y se reinicia el microcontrolador.

El problema es la cantidad de corriente que demanda el servo, pues con baterias el sistema anda bien, y este reinicio ocurre cuando lo alimento con un transformador externo.
Como esto iría fijo tengo que usar un transformador y no puedo usar baterías.
Medí el pico de consumo y lo que alcanzó a medir el amperímetro digital fueron 1200mA, conseguí un transformador ( http://pictures2.todocoleccion.net/tc/2009/11/25/16079700.jpg ) que suministra esta corriente y aún asi se cae la tensión, dudo que puedo conseguir uno más grande para pared

Los reguladores que estoy usando tienen capacitores por demás, uso un lm317 para regular los 7.2V del servo y aqui tiene sumados en paralelo 2200uF, luego va a un 7805 que me regula los 5V para alimentar el pic y demás logica, aca hay aproximadamente 1200uF y según los cálculos que vi para diseñarlo es más que suficiente.
Les dejo un esquema de la alimentación para espero así me entiendan mejor y sepan orientarme hacia que solución podría darle, porque insisto no quiero usar baterías.


----------



## Gudino Roberto duberlin

Hola Amigo, que tension utilizas para alimentar el servo?, deberas alimentar la seccion digital desde alimentacion independiente.


----------



## DJ T3

Gudino, según el dibujo, lo alimenta con 12V

Prueba poner el 7805 directamente a los 12V, ya que los 7V que necesitas para el servo, pueden verse afectado por el pico que mencionas, y está demasiado justo para el 7805...


----------



## Marcoipn

DJ T3 tiene razonm o tambien puedes intentar separar la alimentacion del servo, y del pic............... o algo que a mi me funciono pero con motorreductores fue ponerle un capacitor a la alimentacion del pic y unos ceramicos a la alimentacion del servo!!


----------

