Webcampista.com

mucho más que un foro

Ayuda de los compañeros caravanistas

Ya pero como ya he dicho, por desgracia no tienes una tensión cont, tienes picos de 14,2 a 12,64 con lo que si regulas una resistencia de 10k, te puedes encontrar, con le enchufas al pic de 3,56v a 5,62v y no me mola...... prefiero gastarme los cuartos y que le entren 5v independientemente de lo que tenga de entrada.

Pues un zener de 5V, de todas maneras, pasa como el transistor y la puerta; el PIC tiene diodos de protección, que limita la tensión a 5.6V, la resistencia de 10K limita la intensidad a menos de 1mA, entonces no se rompe nada, y nada sufre, así tengo yo varias entradas y funciona, cualquier cosa que baje de 2.5V será un "0" en otro caso un "1".
 
la carga del mover porque no puede abrir la pta de la caravana en el parking
Posteado via telefono movil

Pues estaria bien implementarlo en el programa.....


voy a ver como lo puedo hacer....
 
Vamos a ver, que no cunda el panico...

Para las entradas pones una resistencia de 10K en serie y un diodo a +5, de esa manera limitas la tension de entrada a 5,6V

Entrada.JPG


Para las salidas utilizas el ULN2803. Este C.I. tiene dentro ocho parejas de transistores en montaje darlington con sus resistencias limitadoras y diodos de proteccion en la salida, soporta hasta 40V en su salida y solo necesita una entrada TTL para activarlo. Conectas el comun de los diodos a 12V, asi en cada bobina de un rele queda en paralelo un diodo de proteccion.

salida.JPG
 
El diodo ya lo lleva el PIC, por eso digo que no se estropea y te ahorras el 7805 y los condensadores, que por cierto, para ese uso, también los puedes quitar, aunque pongas el 7805.
 
Ok, oido cocina..... pero que os perece si dejamos de momento los técnicismos del montaje y nos fijamos en que es lo que queremos que haga el pic.
 
Demomento esto es lo que hace

Postulados:

polo 9 12v directo bateria coche
polo 13 masa del polo 9
polo 10 12v directo de bateria coche
polo 11 masa del polo 10
polo 12 12v del coche que solo de señal cuando damos al contacto.

El polo 9 y 13 va de serie en todas las piñas, con lo aprovecharemos para alimentar de aqui todo el circuito.
El polo 12 es de obligada instalación para que funcione el discriminador
Los polos 10 y 11 son opcionales, pero ya puestos a pasar el 12 ponesmos estos y completamos.

Funcionamiento de programa.

por si las moscas, reseteo las salidas del pic y lo pongo todo a 0, y sobretodo cuando vuelve aqui de un cambio de situación.

comprueba si hay tension en polo 9, que en principio si es el que alimenta el circuito, es obio que estará, pero como hay
condensadores de por medio, le creo un bucle fuera del programa para descargar el condensador cuando desconectamos la piña.

Despues comprueba si hemos puesto la llave en el contacto.

(esto esta así pero tengo que comprobar si el ATC pide tener motor arrancado o no)si esta la llave en el contacto activa el rele que le da tensión al ATC, y compueba si disponemos de este dispositivo, Si no lo tenemos instalado desconecta el rele.

Ahora una pausa de 1 min o 30 seg ( según decidamos entre todos). Ya que el circuito interpreta que hemos arrancado el motor, pero en realidad solo hemos puesto la llave en el contacto, con lo cual nos da un tiempo para que se apagen los calentadores del coche, y realmente aranquemos el motor para que el altenador este en marcha.

Entonces activa el rele que le da 12v a la nevera desde el polo 9

Comprueba si tenemos instalada una bateria en la caravana.
si es así mira que tengas tensión en polo 10 y si se cumple las dos, Activa el rele de carga bateria, utilizando el polo 10 para cargar la bateria.

Y se queda hay esperando un cambio en el polo 12. Si se mantiene a 1 no pasa nada si cambia a 0 vuelve al pricincipo para analizar la nueva situación.

En el caso que al llegar la comprobación del polo 12, no este la llave en el contacto, interpreta que estamos en una parada, descansando en un area, echando un meo, o pernoctando (que era un caso muy habitual para mi), por ello compruba si hay una bateria en la caravana, si la hay activa el rele que alimenta de 12 la caravana, para tener luz interior. Si no tienes bateria, pues nada.

Y espera que haya un cambio en polo 12. mientras sea 0 estara hay, cuando cambie a 1 volvera al principio del programa para analizar la nueva situación.


Como podeis ver intento que el programa, tenga el mayor numero de opciones para automatizar todas aquellas operaciones que hacemos habitualmente, y que el mismo pic sirva indistintamente para todas las caravanas.....

por eso me gustaria, conocer las costumbres, manias de todos a la hora de enganchar y desenganchar.

A petición de diego que diga la carga de la bateria.
 
Diego, el C es un lenguaje de programación, de los llamados "de alto nivel" no ensamblador, también hay compiladores para PIC en Basic, por si ese os suena más, pero ya no son con el MPLAB


Correcto, el C y basic son lenguajes para informaticos......

los electronicos puros o los que aspiramos serlo, usamos ensambladores...... jejejejejeje


La diferencia es que donde el informatico dice " si pasa esto, ves y haz esto", el electronico controla todos los 0 y 1 que conlleva toda la operación....
 
Correcto, el C y basic son lenguajes para informaticos......

los electronicos puros o los que aspiramos serlo, usamos ensambladores...... jejejejejeje

La diferencia es que donde el informatico dice " si pasa esto, ves y haz esto", el electronico controla todos los 0 y 1 que conlleva toda la operación....

Efectivamente... Yo empecé siendo electronico y despues informatico, y para proyectos mas electronicos tales como los PIC's prefiero el ensamblador. Debe ser la vena de electronico que domina sobre la del informatico.
 
Dando vueltas al problema creo que simplemente se reduce a un numero de estados que corresponde a las condiciones exteriores y una respuesta a cada estado.

El numero de estados lo podemos construir dando un bit a cada condicion, por ejemplo:

0 = Piña conectada (Tension en pin 9)
1 = Motor en marcha (Tension en pin 12)
2 = Interruptor que decide si estamos moviendo o acampados 0=acampados / 1 = moviendo. Se puede automatizar poniendo un micro en el freno de la CV.
3 = Cargador de 220V encendido.

las respuestas se harian cerrando reles o activando una chicharra que avise que algo funciona mal.
Habria 6 reles:
1 Alimenta las luces desde la bateria de la CV.
2 Alimenta las luces desde la piña.
3 Activa el ATC.
4 Activa el frigo.
5 Activa el movedor.
6 Une las baterias de la CV y del automovil para cargarlas juntas

Esas respuestas serian segun una tabla de estados parecida a esta:

0000 Piña desconectada CV frenada.
- Se activan las luces de la CV desde la bateria interior (Rele 1)

0001 Piña conectada, motor parado y CV frenada.
- Se activan las luces de la CV desde la piña (Rele 2)

0010 Motor en marcha sin tension en (9) y CV frenada.
- Todo apagado, hay una averia, la chicharra empieza a pitar.

0011 Motor en marcha CV frenada.
- La chicharra empieza a pitar (esta el freno de mano de la CV puesto)

0100 Piña desconectada y CV sin freno.
- Se activa movedor (Rele 5)

0101 Piña conectada y CV sin freno
- Se activan las luces de la CV desde la piña (Rele 2)

0110 Motor en marcha sin tension en (9) y CV sin freno.
- Todo apagado, hay una averia, la chicharra empieza a pitar.

0111 Motor en marcha CV sin freno.
- Se activa el ATC (Rele 3)
- Se activa el frigo (Rele 4)
- Se activa la carga de la bateria de la CV desde el alternador (Rele 6)

1000 Piña desconectada CV frenada cargador en marcha.
- Se activan las luces de la CV desde la bateria interior (Rele 1)

1001 Piña conectada, motor parado y CV frenada cargador en marcha.
- Se activan las luces de la CV desde la piña (Rele 2)
- Se activa la carga de la bateria del vehiculo desde el cargador a 220V (Rele 6)

1010 Motor en marcha sin tension en (9) y CV frenada cargador en marcha.
- Todo apagado, hay una averia, la chicharra empieza a pitar.

1011 Motor en marcha CV frenada cargador en marcha.
- La chicharra empieza a pitar (esta el freno de mano de la CV puesto y la CV esta conectada a 220V)

1100 Piña desconectada y CV sin freno cargador en marcha.
- Se activa movedor (Rele 5)
- La chicharra empieza a pitar (la CV esta conectada a 220V y podemos romper el cable)

1101 Piña conectada y CV sin freno cargador en marcha.
- Se activan las luces de la CV desde la piña (Rele 2)
- La chicharra empieza a pitar (la CV no esta frenada y esta conectada a 220V)

1110 Motor en marcha sin tension en (9) y CV sin freno cargador en marcha.
- Todo apagado, hay una averia, la chicharra empieza a pitar.

1111 Motor en marcha CV sin freno cargador en marcha.
- La chicharra empieza a pitar (la CV no esta frenada y esta conectada a 220V)

Evidentemente, si cortamos la tension al PIC se queda todo desconectado, seria el estado en que queda todo cuando la CV se queda en el parking.

Se pueden añadir mas estados en la tabla, por ejemplo si hace menos de 30 minutos que se apagó el motor, para mantener el frigo en paradas cortas, o si hace menos de 1 minuto que se ha puesto el contacto, para no conectar el frigo y el ATC hasta que el motor esté rodando para que los consumos no afecten al arranque.

El programa seria tan sencillo como componer un numero con el estado de las entradas y buscar el estado de las salidas del PIC en una tabla y refrescar este estado cada pocos segundos.
 
Aqui un programa sencillito que puede funcionar...

Código:
#INCLUDE "16F84.INC"
 
;===========================================================
; Asignacion de la RAM
;===========================================================
 
CONTADORH  EQU 0x10   ; Contador de tiempo byte alto
CONTADORL  EQU 0x11   ; Contador de tiempo byte bajo
 
;===========================================================
; Asignacion de los puertos
;===========================================================
#DEFINE  V_12_  PORTA,0x00  ; Voltaje en pin 12 de la piña
#DEFINE  V_9_  PORTA,0x01  ; Voltaje en pin 19 de la piña
#DEFINE  Freno  PORTA,0x02  ; Freno de la CV activado
#DEFINE  V_C_  PORTA,0x03  ; Cargador de 220V funcionando
#DEFINE  RL_1  PORTB,0x00  ; Rele 1 Luces desde la bateria de la CV
#DEFINE  RL_2  PORTB,0x01  ; Rele 2 Luces desde la piña
#DEFINE  RL_3  PORTB,0x02  ; Rele 3 ATC
#DEFINE  RL_4  PORTB,0x03  ; Rele 4 Frigo
#DEFINE  RL_5  PORTB,0x04  ; Rele 5 Luces interiores CV
#DEFINE  RL_6  PORTB,0x05  ; Rele 6 Conexion baterias
#DEFINE  ALRM  PORTB,0x07  ; Chicharra
 
;===========================================================
; Vector de reset
;===========================================================
              ORG 0x0000
 
RESET:
             MOVLW 0x03
             MOVWF PCLATH   ; Fijamos la pagina 3 de la memoria para las tablas
             BSF STATUS, RP0  ; Seleccionamos banco 1 para manipular puertos
             MOVLW 0xFF
             MOVWF TRISA   ; Puerto A es entrada en todos sus bits
             MOVLW 0x00
             MOVWF TRISB   ; Puerto B es salida en todos sus bits
             BCF STATUS,RP0  ; VOlvemos a seleccionar el banco de registros 0
 
 
BUCLE:
             MOVF PORTA,W   ; Leemos el estado del puerto A
             CALL TABLA_ESTADOS  ; Buscamos la salida para este estado en la tabla
             MOVWF PORTB   ; Ponemos el estado de la salida en el puerto B
             MOVLW 0xE0   ; Se pone el contador para unos pocos segundos de tiempo
             MOVWF CONTADORH
TEMPO_1:
             MOVLW 0x00
             MOVWF CONTADORL
TEMPO_2:
             INCF CONTADORL,F  ; Incrementamos el contador
             BTFSS STATUS,C  ; Repetimos hasta que desborde (256 veces)
             GOTO TEMPO_2
             INCF CONTADORH,F  ; Incrementamos la parte alta del contador
             BTFSS STATUS,C  ; Repetimos desde el principio
             GOTO TEMPO_1
             GOTO BUCLE   ; y volvemos a empezar
 
;===========================================================
; Tablas en pagina 3
;===========================================================
             ORG 0x0300
 
TABLA_ESTADOS:
             ADDWF PCL,F   ; Salto al valor adecuado
             RETLW 0x01   ; Rele 1
             RETLW 0x02   ; Rele 2
             RETLW 0x80   ; Chicharra
             RETLW 0x80   ; Chicharra
             RETLW 0x10   ; Rele 5
             RETLW 0x02   ; Rele 2
             RETLW 0x80   ; Chicharra
             RETLW 0x2C   ; Reles 3, 4 y 6
             RETLW 0x01   ; Rele 1
             RETLW 0x22   ; Reles 2 y 6
             RETLW 0x80   ; Chicharra
             RETLW 0x80   ; Chicharra
             RETLW 0x90   ; Rele 5 + chicharra
             RETLW 0x82   ; Rele 2 + chicharra
             RETLW 0x80   ; Chicharra
             RETLW 0x80   ; Chicharra
 
END
 
Aqui un programa sencillito que puede funcionar...

Código:
#INCLUDE "16F84.INC"
 
;===========================================================
; Asignacion de la RAM
;===========================================================
 
CONTADORH  EQU 0x10   ; Contador de tiempo byte alto
CONTADORL  EQU 0x11   ; Contador de tiempo byte bajo
 
;===========================================================
; Asignacion de los puertos
;===========================================================
#DEFINE  V_12_  PORTA,0x00  ; Voltaje en pin 12 de la piña
#DEFINE  V_9_  PORTA,0x01  ; Voltaje en pin 19 de la piña
#DEFINE  Freno  PORTA,0x02  ; Freno de la CV activado
#DEFINE  V_C_  PORTA,0x03  ; Cargador de 220V funcionando
#DEFINE  RL_1  PORTB,0x00  ; Rele 1 Luces desde la bateria de la CV
#DEFINE  RL_2  PORTB,0x01  ; Rele 2 Luces desde la piña
#DEFINE  RL_3  PORTB,0x02  ; Rele 3 ATC
#DEFINE  RL_4  PORTB,0x03  ; Rele 4 Frigo
#DEFINE  RL_5  PORTB,0x04  ; Rele 5 Luces interiores CV
#DEFINE  RL_6  PORTB,0x05  ; Rele 6 Conexion baterias
#DEFINE  ALRM  PORTB,0x07  ; Chicharra
 
;===========================================================
; Vector de reset
;===========================================================
              ORG 0x0000
 
RESET:
             MOVLW 0x03
             MOVWF PCLATH   ; Fijamos la pagina 3 de la memoria para las tablas
             BSF STATUS, RP0  ; Seleccionamos banco 1 para manipular puertos
             MOVLW 0xFF
             MOVWF TRISA   ; Puerto A es entrada en todos sus bits
             MOVLW 0x00
             MOVWF TRISB   ; Puerto B es salida en todos sus bits
             BCF STATUS,RP0  ; VOlvemos a seleccionar el banco de registros 0
 
 
BUCLE:
             MOVF PORTA,W   ; Leemos el estado del puerto A
             CALL TABLA_ESTADOS  ; Buscamos la salida para este estado en la tabla
             MOVWF PORTB   ; Ponemos el estado de la salida en el puerto B
             MOVLW 0xE0   ; Se pone el contador para unos pocos segundos de tiempo
             MOVWF CONTADORH
TEMPO_1:
             MOVLW 0x00
             MOVWF CONTADORL
TEMPO_2:
             INCF CONTADORL,F  ; Incrementamos el contador
             BTFSS STATUS,C  ; Repetimos hasta que desborde (256 veces)
             GOTO TEMPO_2
             INCF CONTADORH,F  ; Incrementamos la parte alta del contador
             BTFSS STATUS,C  ; Repetimos desde el principio
             GOTO TEMPO_1
             GOTO BUCLE   ; y volvemos a empezar
 
;===========================================================
; Tablas en pagina 3
;===========================================================
             ORG 0x0300
 
TABLA_ESTADOS:
             ADDWF PCL,F   ; Salto al valor adecuado
             RETLW 0x01   ; Rele 1
             RETLW 0x02   ; Rele 2
             RETLW 0x80   ; Chicharra
             RETLW 0x80   ; Chicharra
             RETLW 0x10   ; Rele 5
             RETLW 0x02   ; Rele 2
             RETLW 0x80   ; Chicharra
             RETLW 0x2C   ; Reles 3, 4 y 6
             RETLW 0x01   ; Rele 1
             RETLW 0x22   ; Reles 2 y 6
             RETLW 0x80   ; Chicharra
             RETLW 0x80   ; Chicharra
             RETLW 0x90   ; Rele 5 + chicharra
             RETLW 0x82   ; Rele 2 + chicharra
             RETLW 0x80   ; Chicharra
             RETLW 0x80   ; Chicharra
 
END

Joer dedalo que eso de escribir lo queria hacer yo..... que tu ya sabes y el que tiene que aprender practicando soy yo, jejejejejejejejeje.

luego si puedo subo el que tenia yo y comparamos.....
 
No te preocupes, se puede hacer de mil formas diferentes, es mas, cada vez que leo un programa que yo mismo he hecho se me ocurren ideas nuevas y al final un proyecto ni se parece a lo que comencé a hacer. Esta es una idea pero podria escribir otras 50 diferentes y no serán ni mejores ni peores. Si escribes algo lo subes y lo comentamos, que es como se aprende. Yo suelo comentar mis programas con compañeros de trabajo para mejorarlos y aprender cada dia un poco mas.
 
Osea, que te dedicas a esto????
 
Eso no es..... el profe nos ha dicho que eso hasta el año que viene, después de haber pasado unas exsaustivas pruebas psicológicas, si las pasamos, nos lo enseñara....


Así que el proyecto del lanzador de bombas lapas para los hijos de ... que tienen costumre de adelantar a las caravanas arrancandole las pegatinas, lo tengo en stand by, pero todo llegará, todo llegará.......

:laughing6::laughing6::laughing6::laughing6::laughing6::laughing6::laughing6::laughing6::laughing6::laughing6:, qué cosas tiene este hombre....
 

Correcto, el C y basic son lenguajes para informaticos......

los electronicos puros o los que aspiramos serlo, usamos ensambladores...... jejejejejeje


La diferencia es que donde el informatico dice " si pasa esto, ves y haz esto", el electronico controla todos los 0 y 1 que conlleva toda la operación....


Esto es verdad a medias, para velocidades grandes con el 8051 usaba el ensamblador, pero una vez descubres que puedes poner

if (positivoen9)
activareleATC();
en vez
JNB P1.1, noreleATC
SETB P2.3
noreleATC:
mejor aún, con ensamblador, un contador de 16 bits.

contadorbajo EQU 10
contadoralto EQU 11


INC contadorbajo // incremento en 1 el bajo
JNC Nosumes // ¿desborda?
INC contadoralto // si, entonces incrementa el alto.
nosumes:
en C

int contador;

contador16= contador16+1; // el solo incrementa los 16 bits...
ya no vuelves al ensamblador salvo para problemas puntuales.


en vez de "perder" un segundo y medio, miraría la tensión, que para eso tiene los convertidores, si supera un nivel, es que el alternador está en marcha y puedo conectar el relé. También me sirve para desconectarlo todo si baja demasiado.

Aplicando lo que dice Dedalo y lo que dices tu mismo, no te pongo ningún código, (por que además lo pondría en C :dontknow: )

La "vida de informático" me hizo darme cuenta de que me gusta mucho más la electrónica, sin prescindir de las "comodidades" de los lenguajes de alto nivel.
 
Pues no me dedico a esto, pero necesito esto para mi trabajo. Cuando tengo que diseñar algun circuito evaluo la velocidad a la que tiene que trabajar, la complejidad, la economia de componentes y la facilidad para encontrar despues las averias si es que se producen.

Para este proyecto en concreto yo hubiese utilizado una PAL, que es muchisimo mas simple, no tiene el peligro de colgarse y ademas la programacion es muchisimo mas simple, basta con escribir las ecuaciones de salida.

Te pongo un ejemplo:

En mi AC llevo tres depositos, agua limpia, agua gris y agua negra. Cada deposito me da 4 bits que encendia cuatro pilotos en la centralita. Al cambiar la centralita la presentacion es en la pantalla LCD, pero le puesto cuatro leds en la bocana de carga para saber el agua limpia que hay dentro cuando estoy llenando. El problema es que ahora hay que enviar en serie los 12 bits a la centralita para llevar solo 3 cables (en lugar de 14) hasta la centralita. Ademas le he puesto un interruptor para activar los leds e la bocana.

Lo he hecho con una PAL y solo he tenido que programar las formulas de los nodos y puertas de la PAL. Nunca se cuelga.

Este es el programa de la PAL.

Código:
;PALASM Design Description
TITLE  Niveles
REVISION rev 1
AUTHOR  tony
COMPANY  
DATE  04/30/09
CHIP  PALCE20V8
;---------------------------------- Entradas
PIN 1 clk   ; Reloj 1 Khz
PIN 23 I0   ; Bit 0 Limpia
PIN 2 I1   ; Bit 1 Limpia
PIN 3 I2   ; Bit 2 Limpia
PIN 4 I3   ; Bit 3 Limpia
PIN 5 I4   ; Bit 0 Gris
PIN 6 I5   ; Bit 1 Gris
PIN 7 I6   ; Bit 2 Gris
PIN 8 I7   ; Bit 3 Gris
PIN 9 I8   ; Bit 0 Negra
PIN 10 I9   ; Bit 1 Negra
PIN 11 IA   ; Bit 2 Negra
PIN 14 IB   ; Bit 3 Negra
PIN 21 RST   ; Reset comunicacion serie
PIN 13 OE   ; Habilitacion de salidas
;---------------------------------- Salidas
PIN 22 SDO REGISTERED ; Salida serie
PIN 20 SDI REGISTERED ; Señal intermedia no utilizada
PIN 18 L3 REGISTERED ; Salida Led 1
PIN 17 L2 REGISTERED ; Salida Led 2
PIN 16 L1 REGISTERED ; Salida Led 3
PIN 15 L0 REGISTERED ; Salida Led 4
PIN 19 SL REGISTERED ; Activacion Leds
 
;----------------------------------- Ecuaciones
EQUATIONS
SL = RST
L0 = /SL*/RST* I0
 + SL* RST*/L0
L1 = /SL*/RST*I1
 + SL* RST*L0*/L1
 + SL* RST*/L0*L1
L2 = /SL*/RST*I2
 + SL* RST*L0*L1*/L2
 + SL* RST*/L1*L2
 + SL* RST*/L0*L1*L2
L3 = /SL*/RST*I3
 + SL* RST*L0*L1*L2*/L3
 + SL* RST*/L2*L3
 + SL* RST*/L1*L2*L3
 + SL* RST*/L0*L1*L2*L3
SDI = /L0* L1* L2*/L3*I7*RST  ; Posicion 6 SD I7
 + L0* L1* L2*/L3*I8*RST  ; Posicion 7 SD I8
 +/L0*/L1*/L2* L3*I9*RST  ; Posicion 8 SD I9
 + L0*/L1*/L2* L3*IA*RST  ; Posicion 9 SD IA
 +/L0* L1*/L2* L3*IB*RST  ; Posicion A SD IB
SDO = /L0*/L1*/L2*/L3*I0*RST  ; Posicion 0 SD= carga I0
 + L0*/L1*/L2*/L3*I1*RST  ; Posicion 1 SD= carga I1
 +/L0* L1*/L2*/L3*I2*RST  ; Posicion 2 SD= carga I2
 + L0* L1*/L2*/L3*I3*RST  ; Posicion 3 SD= carga I3
 +/L0*/L1* L2*/L3*I4*RST  ; Posicion 4 SD= carga I4
 + L0*/L1* L2*/L3*I5*RST  ; Posicion 5 SD= carga I5
 +/L0* L1* L2*/L3*I6*RST  ; Posicion 6 SD= carga I6
 + SDI*RST   ; Posicion 7-B SD= SDI(n-1)
;-------------------------------------------------------------------
 
Las PAL requieren programadores más especiales (y caros) aunque para tareas como esta están bien.

Peeero, no pueden medir tensiones (entre otras cosas), como si puede el PIC (u otro micro-controlador). Llegado el caso, el PIC podría podría mantener un "historial de uso", con una memoria externa, si es un PIC de "los gordos", o al menos, con memoria, no te hace falta ni eso, luego lo conectas al PC por USB y lo sacas por pantalla. Parece complicado, pero no lo es, con ensamblador un poco menos, pero en C, que ya viene con librerias, escribir en la memoria sería tan simple como llamar a una función con el dato, na más.

Dentro del bucle, mides la tensión cada cierto tiempo, y la guardas. después, cuando lo conectes al PC, la mandas por USB o serie y ya está, por cierto que usando delphi, en dos días, tienes una aplicación propia que te lo presenta todo en su sitio: "mira tal día que llovió, el ATC se activo dos veces"
 
Si vas a controlar valores de tension tienes que utilizar el PIC16F88, pues el 16F84 no lleva convertidor A/D.

El 16F88 solo tiene 64 bytes de EEPROM para guardar datos historicos, pero le puedes conectar una memoria 24C512 que se controla con solo dos hilos por un bus I2C y te caben 512 KB de informacion. Utilizando un PCF8583 en el mismo bus I2C tienes registro horario. Lo malo es que tendras que buscar una forma de poner en hora el reloj y el calendario internos del chip.

Otra forma de controlar tensiones en escalones fijos es poner un LM324, es un cuadruple comparador de tensiones, asi puedes saber si la bateria esta por debajo de 10,5V (descargada) o por encima de 13,5 (cargando). Ese sistema serviria tanto para PAL's como para micros.

Ciertamente para grabar PAL's hace falta un grabador profesional. Yo utilizo un Galep32 que graba casi de todo. Es el mas barato de los profesionales.
 
Cada cosa tiene sus ventajas.

También trabajé con un circuito con un 8051 que medía la tensión por comparación, con un condensador, muy lento y 8 bits solo, pero suficientes.
Si va a cambiar de PIC, le recomiendo directamente el 18F2550, con bus USB, lo programas una vez con el programador y ya puedes hacerlo con cualquier PC con USB, (si le has puesto el conector correspondiente).

Los programas en ensamblador te sirven igual, o mejor, porque este no tiene zonas de memoria con las que te puedas liar.
 
...trabajé con un circuito con un 8051 que medía la tensión por comparación, con un condensador...

Asi funcionaban los joystick de los IBM PC, no es muy preciso pero sirve para aplicaciones como estas en las que la precision no es muy importante.

Bueno, a ver que tiene en mente Navegante 420 y cuando decida el micro que va a utilizar ya se puede ver las posibilidades que da.
 
Esto es verdad a medias, para velocidades grandes con el 8051 usaba el ensamblador, pero una vez descubres que puedes poner

en vez
mejor aún, con ensamblador, un contador de 16 bits.

en C


ya no vuelves al ensamblador salvo para problemas puntuales.


.

No te digo que no.... pero ahora mismo que estoy empezando, veo mucho0 más clarificador el esamblador, que no el c....

attachment.php
 

Archivos adjuntos

  • mplab.jpg
    mplab.jpg
    71,4 KB · Visitas: 0
Si vas a controlar valores de tension tienes que utilizar el PIC16F88, pues el 16F84 no lleva convertidor A/D.

El 16F88 solo tiene 64 bytes de EEPROM para guardar datos historicos, pero le puedes conectar una memoria 24C512 que se controla con solo dos hilos por un bus I2C y te caben 512 KB de informacion. Utilizando un PCF8583 en el mismo bus I2C tienes registro horario. Lo malo es que tendras que buscar una forma de poner en hora el reloj y el calendario internos del chip.

Otra forma de controlar tensiones en escalones fijos es poner un LM324, es un cuadruple comparador de tensiones, asi puedes saber si la bateria esta por debajo de 10,5V (descargada) o por encima de 13,5 (cargando). Ese sistema serviria tanto para PAL's como para micros.

Ciertamente para grabar PAL's hace falta un grabador profesional. Yo utilizo un Galep32 que graba casi de todo. Es el mas barato de los profesionales.

Entiendo más o menos todo, la idea de usar el 16f84, es porque es el que usamos en clase y en caso de que el año que viene se me complique la cosa, trabajo, más clases, más las practicas que me queden..... pues poco tiempo me va a quedar para poder hacer un proyecto de cara y ojos.... y si no me sale nada, pues presentaria este con el seat leon, que tambien estoy liado con otro allí para hacerle el living-home, coming-home, encedido automatico de luces, y retrovisor en posición parking.....
 
Bueno, a ver que tiene en mente Navegante 420 y cuando decida el micro que va a utilizar ya se puede ver las posibilidades que da.


Perdonad los dos días de silencio, pero he estado liado en clase con la festividad de san bosco y scalextric.....

Este es el programa que habia escrito yo, ha falta de las demoras.....

como puedes ver el mio es mucho más primitivo sin uso de las tablas, comprovando uno por uno.

La idea del comparado de tensiones me mola mucho y ese podria ser quien, con motor en marcha, activara el rele de carga en función de si lo necesita o no....

; ***** Encabezado *****
LIST P=16F84
#INCLUDE <P16F84.INC>
; ***** Definicion de variable *****
cargador EQU 0
interior EQU 0
; ***** Configuración de puertos *****
Reset org 0x00
goto inicio
org 0x05
inicio bsf STATUS,RP0 ;activa banco
movlw b'00000' ;Carga en W
movwf TRISA
movlw b'11111111'
movwf TRISB
bcf STATUS,RP0
; ****** Control Cargador Luz interior *****
program movlw b'00000' ;Carga todo 0 en el registro
movwf PORTA ;Borra todos los datos de PORTA
btfss PORTB,1 ;comprueba que esta el polo 9 conectado
goto fin
btfss PORTB,3 ;Comprueba si el motor del coche esta arrancado.
goto luz
bsf PORTA,0 ;Activa rele para el ATC
btfss PORTB,5 ;Comprueba si esta el ATC
bcf PORTA,0 ;desactiva el rele del ATC
Demora


Carga bsf PORTA,1 ;Activa rele para alimentar nevera
btfsc PORTB,2 ;comprueba si esta conectado el polo 10
btfss PORTB,4 ;comprueva si tenemos bateria
goto bucle
bsf PORTA,2 ;Activa rele carga bateria
bucle btfsc PORTB,3 ;comprueba si el motor esta en marcha
goto bucle ;Al ser 1 el motor sigue encendido y sigue comprobando hasta que se apague
clrf PORTA ;Al ser 0 el motor se ha parado y lo pone todo a 0, apagado
goto program ;Vuelve al principio del control para analizar la nueva situación
luz btfss PORTB,4 ;Comprueba si tenemos bateria en la caravana conectada
goto program ;como no esta activa la bateria vuelve al principio
bsf PORTA,3 ;como esta activa la bateria, la conecta para tener luz interior
repe btfss PORTB,3 ;Comprueba si el motor esta arrancado.
goto repe ;el motor sigue apagado y se queda en bucle
bcf PORTA,3 ;apaga la luz interior
goto program
fin
end
 
Otra forma de controlar tensiones en escalones fijos es poner un LM324, es un cuadruple comparador de tensiones, asi puedes saber si la bateria esta por debajo de 10,5V (descargada) o por encima de 13,5 (cargando). Ese sistema serviria tanto para PAL's como para micros.

Las especificaciones del datasheet me dice que es un producto obsoleto y no recomiendan se uso.....
 
Arriba
© 2004-2024 Webcampista.com