Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

25/10/2008 #1


Encender 2 motores en vaiven
hola a todos,quisiera hacer un automatismo el cual tengo hecho cableado,es lo siguiente quiero alternar 2 bombas para el suministro de agua ,el funcionamiento es el siguiente cuando hay demanda de agua me enciende una bomba (RB0) cuando llega a la presion deseada para y en el proximo arranque en vez de encender la misma arrnco (RB1) para darle descanso a la otra,luego en los momentos de mucho consumo me arranquen las 2 juntas ,el presostato iria a (RA1),a ver que me podeis aconsejar ,quisiera utilizar un 12f508 aunque de este pic no se mucho,saludos.
25/10/2008 #2

Avatar de Meta

Si lo explicas mejor con dibujo aunque sea el Paint mejor que mejor.

Por lo que cuenta es fácil utilizando algo parecido a esto.

Código:
;********************************** Indexado_02.asm *************************************
;
;	===================================================================
;	  Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
;	  E. Palacios, F. Remiro y L. López.		www.pic16f84a.com
; 	  Editorial Ra-Ma.  www.ra-ma.es
;	===================================================================
;
; Controla el nivel de un depósito de líquido. Utiliza (entre paréntesis las líneas del
; microcontrolador a la que se han conectado):
; -	Tres sondas detectoras: SV, Sonda de Vacío (RA0); SLL, Sonda de LLenado (RA1);
;	SR, Sonda de Rebose (RA2).
; -	Dos bombas de agua: B1 (RB5), B2 (RB6).
; - Cinco indicadores: Vacio (RB0), Llenandose (RB1), Lleno (RB2), Rebose (RB3),
;	Alarma (RB4).
;
; Su funcionamiento: 
; -	Cuando ninguna de las sondas está mojada se entiende que el depósito está vacío y
;	se accionarán las dos bombas. El indicador "Vacio" se iluminará*.
; -	Cuando el nivel del líquido toque la sonda de vacío "SV" seguirá llenándose el
; 	depósito con las dos bombas. El indicador "Llenandose" se ilumina.
; -	Cuando el nivel del líquido toca la sonda de llenado "SLL", para la bomba B2, quedando
;	B1 activada en modo mantenimiento. El indicador "Lleno" se ilumina.
; -	Si el nivel del líquido moja la sonda de rebose "SR" se apaga también la bomba B1,
;	quedando las dos bombas fuera de servicio. El indicador "Rebose" se enciende.
; -	Cuando se produce un fallo o mal funcionamiento en las sondas de entrada (por
;	ejemplo que se active la sonda de rebose y no active la de vacío) se paran
;	las dos bombas. El indicador "Alarma" se ilumina.
;
; Según el enunciado del problema, teniendo en cuenta las conexiones citadas y poniendo la
; salida no utilizada (RB7) siempre a cero, la tabla de verdad resultante es:
;
; RA2.. RA0 | RB7 ...          ... RB0
; ------------|--------------------------------
;  0   0   0  |  0   1   1   0   0   0   0   1	(Configuración 0. Estado "Vacio").
;  0   0   1  |  0   1   1   0   0   0   1   0	(Configuración 1. Estado "Llenandose").
;  0   1   0  |  0   0   0   1   0   0   0   0	(Configuración 2. Estado "Alarma").
;  0   1   1  |  0   0   1   0   0   1   0   0	(Configuración 3. Estado "Lleno").
;  1   0   0  |  0   0   0   1   0   0   0   0	(Configuración 4. Estado "Alarma").
;  1   0   1  |  0   0   0   1   0   0   0   0	(Configuración 5. Estado "Alarma").
;  1   1   0  |  0   0   0   1   0   0   0   0	(Configuración 6. Estado "Alarma").
;  1   1   1  |  0   0   0   0   1   0   0   0	(Configuración 7. Estado "Rebose").
;
; ZONA DE DATOS **********************************************************************

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

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

	ORG 	0					; El programa comienza en la dirección 0.
Inicio
	clrf	PORTB				; Debe estar a cero cuando el puerto se configure como salida.
	bsf		STATUS,RP0			; Acceso al Banco 1.
	clrf	TRISB				; Las líneas del Puerto B se configuran como salida.
	movlw	b'00011111'			; Las 5 líneas del Puerto A se configuran como entrada.
	movwf	TRISA
	bcf		STATUS,RP0			; Acceso al Banco 0.
Principal
	movf	PORTA,W				; Lee los sensores.
	andlw	b'00000111'			; Máscara para quedarse con el valor de los sensores.
	addwf	PCL,F				; Salta a la configuración adecuada.
	goto	Configuracion0
	goto	Configuracion1
	goto	Configuracion2
	goto	Configuracion3
	goto	Configuracion4
	goto	Configuracion5
	goto	Configuracion6
	goto	Configuracion7
Configuracion0
	movlw 	b'01100001'			; Estado "Vacio" (configuración 0).
	goto	ActivaSalida
Configuracion1
	movlw 	b'01100010'			; Estado "Llenándose" (configuración 1).
	goto	ActivaSalida
Configuracion2
	movlw 	b'00010000'			; Estado "Alarma" (configuración 2).
	goto	ActivaSalida
Configuracion3
	movlw 	b'00100100'			; Estado "Lleno" (configuración 3).
	goto	ActivaSalida
Configuracion4
	movlw 	b'00010000'			; Estado "Alarma" (configuración 4).
	goto	ActivaSalida
Configuracion5
	movlw 	b'00010000'			; Estado "Alarma" (configuración 5).
	goto	ActivaSalida
Configuracion6
	movlw 	b'00010000'			; Estado "Alarma" (configuración 6).
	goto	ActivaSalida
Configuracion7
	movlw 	b'00001000'			; Estado "Rebose" (configuración 7).
ActivaSalida
	movwf	PORTB				; Visualiza por el puerto de salida.
	goto 	Principal

	END
	
;	===================================================================
;	  Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
;	  E. Palacios, F. Remiro y L. López.		www.pic16f84a.com
; 	  Editorial Ra-Ma.  www.ra-ma.es
;	===================================================================
26/10/2008 #3


meta creo que mediante tablas de verdad no me sea la solucion,ya que solo tengo una variable de entrada y dos salidas.lo unico que quiero yo hacerle es que me encienda una y la otra no ,esdecir rb0 encendida y rb1 apagada y luego en el proximo arranque al reves.cre que voy a intentarlo con saltos con condicion de testeo.saludos..[/img]
26/10/2008 #4


Aunque se puede hacer falcilmente con puertas logicas, como una simple nand tipo 4093 por ejemplo.

Por loq ue comentas necesitas un flipflop (2 puertas) y un poco de logica para las prioridades (el resto de puertas).

Si diseñas con un micro puedes añadir situaciones peligrosas, como tiempo maximo de marcha de las bombas (falta de agua) o casos imposibles...

Te aconsejo que cambies de chip , por ejemplo un pic12f675 o similares, con F de flash, el pic12c508 es de una sola programacion, cualquier pequeño bug lo tendras que tiras a la basura.


Si conoces C mejor utilizalo, te sera mas facil y podras añadirle funcionalidades facilmente. Yo utilizo el ccs
26/10/2008 #5

Avatar de Meta

Utiliza el 12F508, o con doble de memoria 12F509 o más bien el sustituto con la diferencia de que tiene hasta 8MHZ de oscilador interno y EEPROM, el 12F519.

12C509==>12F509==>12F519.
26/10/2008 #6


Hola , yo hice algo muy parecido, pero utilice un relé inteligente de esta marca:
http://www.fabelec.cl/formato.php?idp=arraypage2
Baja el software y el manual, trae un simulador y puedes probar antes de comprar si tu logica funcionara.
Me acuerdo que el precio era razonable.

saludos
26/10/2008 #7


el programa que he hecho es este:
;ZONA DE DATOS********************************************* ************************************;
LIST P=16F84A ;
INCLUDE <P16F84A.INC> ;
#DEFINE entrada PORTA,2 ;
#DEFINE motor1 PORTB,2 ;
#DEFINE motor2 PORTB,3 ;



;ZONA DE CODIGOS******************************************* ***************************************;
ORG 0 ;
Inicio bsf STATUS,RP0 ;
bcf motor1 ;
bcf motor2 ;
bsf entrada ;
bcf STATUS,RP0 ;
Principal
btfss entrada ;
goto Principal ;
call Retardo_20ms ;
goto Motor1 ;
Motor1
bsf motor1 ;
btfsc entrada ;
goto Motor1 ;
call Retardo_20ms ;
bcf motor1 ;
goto Motor2 ;
Motor2 btfss entrada ;
goto Motor2 ;
call Retardo_20ms ;
bsf motor2 ;
btfsc entrada ;
goto Motor2 ;
call Retardo_20ms ;
bcf motor2 ;
goto Principal ;
con este codigo ya consigo alternar las bombas,pero como puedo meterle este codigo a un 12f508,de ese pic no tengo nada y no quiero desperdiciar un 16f84 para esto solo.saludos a todos.[/code]
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.