Autor Tema: Ayuda con mi proyecto hogareño para mi criadero de chinchillas  (Leído 2319 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado MaMu

  • PIC10
  • *
  • Mensajes: 13
Ayuda con mi proyecto hogareño para mi criadero de chinchillas
« en: 21 de Diciembre de 2006, 02:16:53 »
Estoy haciendo un proyectito, para controlar un estractor. El circuito se trata de un solo reloj, en segundos solamente, que es comun a dos horas programadas. Cada una de estas dos horas, representa el ciclo de trabajo, es decir, la primera hora programada es el tiempo que el estractor estara activo, y la segunda hora programada es el tiempo que estara inactivo. El segundero del reloj, comun a ambas horas, siempre esta corriendo, y afectando solo a una de las dos horas programadas, es decir, la hora del ciclo en curso. Por ejemplo, yo tengo como T1, programada 02:00, osea, el estractor estara encendido por 2Hs. Al correr los segundos, la hora del T1, se ira descontando hasta llegar a cero: 01:59, 01:58, 01:57 .... hasta llegar a 00:00, es ahi, cuando se conmutara la hora que es afectada, por lo tanto el segundero del reloj, trabajara ahora con T2, siendo este el tiempo de reposo del estractor. Al afectarse T2, T1 se resetea a la hora que habia sido programada, es decir 02:00 y no volvera a ser afectada hasta que T2 llegue a cero, en sintesis, el mismo procedimiento. El circuito trate de reducirlo lo mas que pude, de hecho hice una simulacion de como quedaria montado.
Dejo en los adjuntos el esquema y la simulacion. Si alguno se copa, voy mostrando lo que llevo programado. Son todos bienvenidos.

El circuito es muy sencillo, el codigo para los displays de 7 segmentos, estan en BCD, almacenados en una tabla para sacar por la parte alta del puertoB, la parte baja es entrada. La multiplexacion de los displays, que son 10, se realiza controlando un 7442 con el puertoA. El RA4 en colector abierto, lo uso de salida a otro circuito (el control de potencia al extractor). En las entradas, que son 4, RB4,5 ,6 y 7, se dispone de la siguiente manera:

RB4 y RB5, Horas y minutos del T1
RB6 y RB7, Horas y minutos del T2

Inicialmente, ambos contadores empiezan en 12:00 cada uno. El segundero comun que corre, estara afectando solamente al T1 y al llegar a cero, a T2. Cuando se produce este cambio, RA4 cambia de estado. Todos los display son de catodo comun. Cabe aclarar, que para configurar cualquiera de las dos horas, abra que presionar los dos botones juntos, es decir el de horas y minutos del T1 o T2 y ahi modificar pulsando horas o minutos, siempre ascendente, al llegar a 23:59 vuelve a empezar, tanto para T1 como para T2. Un vez que estan programada la hora seleccionada, volviendo a pulsar ambos botones, se pone en funcionamiento.

Help me, me gustaria poder hacerlo como regalo navideño :).

Saludos.
« Última modificación: 21 de Diciembre de 2006, 16:59:48 por MaMu »

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Ayuda con mi proyecto hogareño para mi criadero de chinchillas
« Respuesta #1 en: 21 de Diciembre de 2006, 13:41:57 »
Hola, hace un par de años, construi un temporizador para un criadero de chinchillas, pero lo 2 que me pidieron fue "barato"
asi que simplemente mostraba el tiempo a programar en 7 led (en binario)
pero los tiempos eran de 1 minuto a 63 minutos maximos
es decir, tiempo de encendido programable y tiempo de apagado programable.
Segun me comentaron, dependiendo del caudal del estractor, cantidad de chinchillas, tamaño de la habitacion... pero empleaban 3 minutos encendido y 20 min apagado...

Pero este solo tenia 2 pulsadores, un pic, fuente y un rele....   mas economico....(555)  :mrgreen:

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado MaMu

  • PIC10
  • *
  • Mensajes: 13
Re: Ayuda con mi proyecto hogareño para mi criadero de chinchillas
« Respuesta #2 en: 21 de Diciembre de 2006, 15:26:40 »
Si, yo actualmente uso un pequeño timer con un 555 (en cascada para mas tiempo), pero no es muy preciso. Mi idea de acerlo como lo describi, es porque mas adelante quiero controlarlo via RF, usando una PC como central de control, y asi ir controlando cada una de las partes electronicas.

Estoy medio atrasado por el tema de la visualizacion. Leyendo incasablemente en el foro, trate de quedarme con lo mejor de cada uno de los temas donde hay dudas similares, me ayudo muchisimo. Averguando por muchos lados, y tomando en cuenta que voy a usar 10 displays de 7 segmentos, y para no bajar de 20Hz en el barrido de los mismos, creo que tendre que temporizar cada multiplexacion a no mas de 2.5uS, para que el destello de los displays practicamente sea desapreciable. En si, estuve armando partes sueltas del programa:

detallo y comento algunas...

Código: [Seleccionar]
;////////////////////Tablas/////////////////////////

digit ADDWF PCL, F
RETLW B'0000' ; código para 0
RETLW B'0001' ; código para 1
RETLW B'0010' ; código para 2
RETLW B'0011' ; código para 3
RETLW B'0100' ; código para 4
RETLW B'0101' ; código para 5
RETLW B'0110' ; código para 6
RETLW B'0111' ; código para 7
RETLW B'1000' ; código para 8
RETLW B'1001' ; código para 9

Esta es la tabla donde tengo el codigo BCD para cada digito, siendo esta la parte baja o nible LSB del puerto B.

Código: [Seleccionar]
;//////////////////Encabezado///////////////////////////////////////////////

list      p=16F84A           
#include <p16F84A.inc> 
radix   hex

;//////////////////Configs//////////////////////////////////////////////////

__CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC

;/////////////////variables/////////////////////////////////////////////////

reset   ORG     0x00
        GOTO    inicio
        ORG     0x05
reg1 equ 0x0D ; 3 registros para el retardo
reg2 equ 0x0E
reg3 equ 0x0F
cont equ 0x10
cblock 0x0
segtcu ;segundos del TC unidad
segtcd ;segundos del TC decena
mint1u ;minutos del T1 unidad
miny1d ;minutos del T1 decena
hort1u ;hora del T1 unidad
hort1d ;hora del T1 decena
mint2u ;minutos del T2 unidad
mintt2d ;minutos del T2 decena
hort2u ;hora del T2 unidad
hort2d ;hora del T2 decena
cuenta
digito
endc

;//////////////////Inicializacion de variables//////////////////////////////

;puesta a cero

clrf segtcu ;segundos del TC unidad
clrf segtcd ;segundos del TC decena
clrf mint1u ;minutos del T1 unidad
clrf miny1d ;minutos del T1 decena
clrf hort1u ;hora del T1 unidad
clrf hort1d ;hora del T1 decena
clrf mint2u ;minutos del T2 unidad
clrf mintt2d ;minutos del T2 decena
clrf hort2u ;hora del T2 unidad
clrf hort2d ;hora del T2 decena
clrf cuenta ;cuenta de multiplexacion
clrf digito

;///////////////Configuración de PUERTOS////////////////////////////////////

inicio  BSF     STATUS, 5
        MOVLW   b'00000'            ;RAs SALIDAs
        MOVWF   TRISA
        MOVLW   b'11110000'     ;LSB RBs SALIDAs - MSB RBs ENTRADAs
        MOVWF   TRISB
        BCF     STATUS, 5
        CLRF PORTB
        CLRF cont
CLRF PORTA


;/////////////////Interrupciones///////////////////////////////////////////

BSF INTCON,GIE ; habilitamos todas las interrupciones
; BSF INTCON,INTE ; que sean interrupciones externas
BSF INTCON,RBIF ; que sean de RB4 a RB7, almenos uno que cambie

Esta es otra parte, donde voy definiendo e inicializando el asunto

Código: [Seleccionar]
;///////////////////Rutinas de Retardos///////////////

retardo movlw 40 ; Aquí se cargan los registros
movwf reg1 ; reg1, reg2 y reg3
tres movlw 40 ; con los valores 40 (mas o menos 1 segundo)
movwf reg2
dos movlw 40
movwf reg3

uno decfsz reg3,1 ; Aquí se comienza a decrementar
goto uno
decfsz reg2,1
goto dos
decfsz reg1,1
goto tres
retlw 00 ; regresare del retardo

Es el retardo que uso para generar el segundo durante la cuenta.

El problema en que me encuentro perdido, es como hacer el barrido de los displays, ya que yo por un lado tengo que hacer funcionar el segundero en dos digitos, unidad y decena, de 0 a 59 o bien de 59 a 0, es indistinto, e ir descontando a la hora afectada. Durante este proceso debo ir haciendo el muestreo en todos los displays, es ahi donde me trabo.

Alguien me puede explicar un poco?. Vengo de la vieja escuela, programacion en ASM y micros 6800 :( .

Gracias nuevamente.

Desconectado johnnybravo

  • PIC12
  • **
  • Mensajes: 76
Re: Ayuda con mi proyecto hogareño para mi criadero de chinchillas
« Respuesta #3 en: 19 de Marzo de 2007, 16:26:54 »
saludos .. amigo..que tal como vas con tu proyecto..
bueno.parece interesante.. y eso de chinchilllas..que son animalitos o que son..algun tipo de roedor o algo asi... podria ayudarte en algo tal ves... voy a analisar un poco mas lo que quieres hacer...
te escribo luego
Atte.
Johnny Bravo