Foros
Nuevos mensajes
Buscar en foros
Novedades
Nuevos mensajes
Nuevos recursos
Última actividad
Recursos
Últimas revisiones
Buscar recursos
Acceder
Registrarse
Novedades
Buscar
Buscar
Buscar sólo en títulos
De:
Nuevos mensajes
Buscar en foros
Menú
Acceder
Registrarse
Install the app
Instalar
Diseño digital
Microcontroladores y sistemas embebidos
Programar riego de dos zonas con un solo control
JavaScript está desactivado. Para una mejor experiencia, por favor, activa JavaScript en el navegador antes de continuar.
Estás usando un navegador obsoleto. No se pueden mostrar este u otros sitios web correctamente.
Se debe actualizar o usar un
navegador alternativo
.
Responder al tema
Mensaje
[QUOTE="urkolocado, post: 822959, member: 319829"] Hola :) Tengo dos zonas de riego en el jardín y solo un programador con una salida en la domotica de casa donde me deja programar a que hora encender y a que hora apagar con una salida de relé. Bien, tengo pensado conectar a una entrada del pic dicho relé y dos relés a la salida del mismo. La idea es que cuando reciba señal en la entrada active el primer relé y cuando deje de recibir la señal active el segundo por el mismo periodo de tiempo. Tengo el esquema del circuito ya hecho pero no se como programar el pic. Mi nivel de programación es básico, todo lo que se lo he aprendido yo solo con un libro llamado Microcontrolador pic16f84a desarrollo de proyectos, el lenguaje que uso es ensamblador, y el programa es mlab ide. Yo había pensado en lo siguiente: [code] __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC LIST P=16F84A INCLUDE <P16F84A.INC> CBLOCK 0x0C ENDC #DEFINE ENTRADA PORTB,7 ;La señal que llega de la domotica #DEFINE RIEGO_1 PORTA,3 ;Las salidas hacia las dos zonas de riego #DEFINE RIEGO_2 PORTA,4 ; ZONA DE CÓDIGOS ******************************************************************* ORG 0 Inicio bsf STATUS,RP0 ; Acceso al Banco 1. clrf TRISA ; Las líneas del Puerto A configuradas como salida. movlw b\'11111111\' ; Las 8 líneas del Puerto B configuradas como entrada. movwf TRISB bcf OPTION_REG,NOT_RBPU ; Activa las resistencias de Pull-Up del Puerto B. bcf STATUS,RP0 ; Acceso al Banco 0. Principal bcf RIEGO_1 bcf RIEGO_2 Inicio btfsc ENTRADA ;hay un 0? Llega señal domotica? goto Inicio ;no call Retardo_20ms ;si btfsc ENTRADA ;sigue 0? o es rebote goto Inicio ;no_es rebote ;si bsf RIEGO_1 ;Pone a regar la primera zona ;Aquí es donde debería de usar el registro w empezando en cero Aqui ;Aqui sumaria 1 al registro w no se como hacerlo call Retardo_1s btfsc ENTRADA ;compruebo si sigue llegando señal goto Termina riego_1 ;no llega goto Aqui ;si llega ;si todo ba bien estaria sumando 1 al registro w cada segundo para después usarlo de contador para la segunda zona Termina riego_1 ;cuando deja de recibir señal de la domotica bcf RIEGO_1 ;para el riego de la primera zona bsf RIEGO_2 ;Pone a regar la segunda zona Aqui_2 ;Aqui restaria uno al registro w no se como hacerlo call Retardo_1s ;Aqui comprobaria si el registro w es 0 y si lo es, se saltaria la siguiente instrucción y si no seguiría goto Aqui_2 bcf RIEGO_2 ;para el riego de la segunda zona goto Inicio INCLUDE <RETARDOS.INC> ; Librería con subrutinas de retardo. END ; Fin del programa.[/code]El tiempo de riego no va a superar los diez minutos,por lo que no se si 600sg desbordarían el registro w que es de 8 bit, en ese caso pienso en que los tiempos de suma sean de 5 segundos en vez de 1 así se quedaría en 120 (600 sg en tramos de 5sg). Como veis soy un perfecto novato en todo esto y no me va a venir nada mal algo (mucha) de ayuda:D:D Gracias de antemano a todos ... [/QUOTE]
Verificación
Responder
Diseño digital
Microcontroladores y sistemas embebidos
Programar riego de dos zonas con un solo control
Arriba