# Medidor nivel de agua con pic 16f84



## eduardoramirez (May 28, 2010)

hola buenas tardes...

Tengo una duda sobre como hacer un medidor de nivel de agua, utilizando un pic 16f84, y la verdad soy nuevo en este tema.

entontre, un programa en una pagina, pero la verdad no se para que sirven algunos componentes de el circuito. ademas de que no esoty seguro si realmente servira.


http://sputnik.epsj23.net/~eserra/elect/pics/pic16f84.html


el ejemplo es el numero 12, y mi duda es sobre, para que sirve el oscilador de 14 mh, en el circuito, y que sensores son los que se utilizan en el ejemplo.

espero que me puedan ayudar... gracias

perdon, pero no sabia como subir las imagenes,.... ahi se ve el circuito, y el programa.

vuelvo a indicar mis dudas: para que sirve el oscilador en ese circuito?¿
                                     realmente servira ese programa?¿
                                     y los sensores sumergidos de que son?¿¿?


----------



## Meta (May 28, 2010)

Buenas:

¿Te refieres algo de esta idea?

http://electronicapic.iespana.es/deposito.swf

http://electronicapic.iespana.es/16F88_deposito_2.swf


Saludo.


----------



## eduardoramirez (May 29, 2010)

Meta dijo:


> Buenas:
> 
> ¿Te refieres algo de esta idea?
> 
> ...






Antes que nada quisiera darte las gracias por interesarte en este tema, ya que apenas llevo 1 mes con microcontroladores, y no domino el tema.

Si, es algo muy parecido, pero exactamente lo que necesito es conectar un sensor en RA1(sensor de lleno cisterna), y conectar otro sensor en RA0(sensor de cisterna vacia), cuando la cisterna se llene, mandar señal a RB0 (led), y cuando el agua este debajo de el sensor de vacio, este mismo mandar una señal a RB1(led), y encenderse.


----------



## Meta (May 29, 2010)

Hola:

Llevo dos años con PIC  y no lo manejo como quiero, me cuesta el asm, ejjejej, eso si, aprenderás mucho, otra cosa es que asm se deje dominar.

Por lo que cuentas, casi prefieres este ejemplo de antes.
http://electronicapic.iespana.es/deposito.swf

Es fácil de hacer mediante tablas.


```
;********************************** 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
;    ===================================================================
```

Saludo.


----------



## eduardoramirez (May 29, 2010)

muchas gracias, si, es algo muy parecido a eso.


pero ahora mi problema es la conexion al pic, las resistencias y eso, muchas gracias


----------



## Meta (May 29, 2010)

Hi:

http://www.pic16f84a.org/index.php?option=com_content&view=article&id=66&Itemid=87

Saludo.


----------



## eduardoramirez (Jun 1, 2010)

hola de nuevo meta, muchas gracias por la info, ya hice el programa, pero, hasta el momento no logro entender, en el codigo que arriba, como es que el programa lee la tabla, para saltar a la configuracion correspondiente!!, cual es la instruccion??¿¿? muchas gracias!!


----------



## Meta (Jun 1, 2010)

Es largo de explicar. Para eso buscas tutorial en www.google.com


----------



## FFMM (Jul 30, 2010)

eduardoramirez dijo:


> Antes que nada quisiera darte las gracias por interesarte en este tema, ya que apenas llevo 1 mes con microcontroladores, y no domino el tema.
> 
> Si, es algo muy parecido, pero exactamente lo que necesito es conectar un sensor en RA1(sensor de lleno cisterna), y conectar otro sensor en RA0(sensor de cisterna vacia), cuando la cisterna se llene, mandar señal a RB0 (led), y cuando el agua este debajo de el sensor de vacio, este mismo mandar una señal a RB1(led), y encenderse.


Hola me interesa saber que partes o dispositivos utilizar para hacer un sensor de agua para un tinaco,  si tienes un diagrama te lo agradeceria. La verdad yo no se programar un  pic, con que mas puedo hacerlo gracias.


----------

