ADC, RS232, Timers e Interrupciones... estoy estancado.

Bueno, ante todo me presento. Mi nombre es Juan y estoy diseñando un circuito un tanto "complejo" (al menos para mi).

Les comento la idea (y al final del post adjunto un zip), aun es todo teorico, estoy simulando las cosas en proteus y si va bien hare prototipos.

El circuito tiene una bateria de 12v 7Ah, el mismo estara en un automovil y dicha bateria se cargara con la corriente del automovil.

El pic controla la tension de entrada (la tension del automovil) y en caso de ser:

Mayor a 16v corta la conexion entre la bateria principal y el circuito con su bateria de respaldo. El circuito sigue operando con la bateria de backup. (esto esta relativamente hecho) y suena una alarma (sirena conectada con un rele a la bateria de backup y controlada por el pic. Esto no esta hecho)

Si tension principal es menor a 10v y si el motor (llave de ignicion) no esta encendido no cargará la bateria secundaria (para preservar la primaria) a menos que la bateria secundaria tenga menos de 7v en dicho caso debera ignorar la proteccion y cargar de todas formas para preservar la integridad del funcionamiento del circuito (esto no esta hecho :()

Asi mismo la idea es que controle mas cosas, y que la carga de la bateria secundaria la administre el pic, es decir, que la vaya controlando y si ya esta cargada que desconecte la alimentacion. En teoria el circuito tiene que alimentarse con la bateria secundaria, y unicamente se usaria la bateria primaria (la del automovil) para cargar la del circuito....

Ademas cuenta con comunicacion via puerto rs232 con la pc, si la pc esta conectada enviar datos de deputacion y diagnostico. La idea es que a posterior con el programa de la pc se pueda setear la tension maxima de entrada (bateria del coche) y la minima, entre otras cosas. La idea de controlar que no haya sobre tensione n la entrada es para evitar que alguien sabotee el coche para desactivar la alarma.... dicho sea de paso, la alarma del vehiculo se alimentara de este circuito, de ahi la idea de controlar las tensione sy tener una bateria secundaria.

creo que ya estoy dando muchas vueltas con la explicacion....

Les dejo lo que pude hacer con mis infimos conocimientos (por ej, aun no se bien a que voltaje equivale un punto del adc y no entiendo por que sin conectar nada en la entrada el adc marca un valor (bajo, pero marca).

PD: He buscado algun tipo de cargador para bateria, pero no he encontrado algo bueno para adosar al circuito, y como se que se puede monitorear con el pic, pues les pido un poco de ayuda.

Lamento pedir tanta ayuda, pero es que tener una idea "tan grande" y tan pocos conocimientos es frustrante :(, si pudieran ayudarme a hacer el circuito / programa o enseñarme algunas cosas sobre pic se los agradecere, he leido muchos manuales, pero no he aprendido demasiado creo.
 

Adjuntos

  • CarCentral(rev1).zip
    60.6 KB · Visitas: 31
Tu necesitas ayuda sobre el conversor ADC del PIC para leer el estado de la bateria del coche? Tienes que tener en cuenta a que voltajes de referencias alimentas el conversor ADC y de cuantos bits es. Luego a partir de aqui puedes saber la resolucion, con la formula: Resolución = (Vref (+) - Vref (-)) / 2^n. Por ejemplo, tengo Vref (+) a 5 Voltios y Vref (-) a GND. Y el conversor es de 10 bits. Por lo tanto la resolucion es: Resolucion = (5-0)/2^10 = 5/ 1024 = 4,88 mV. Esto me esta diciendo que cada posicion ( de 0 a 1023) asciende 4,88 mV. La posicion 0 del conversor es 0 V, la posicion 1 es 4,88 mV, la posicion 2 es 9,76 mV, ........, la posicion 1023 es 5 V.
 
no he entendido casi nada de lo que dices.... la vref no es el voltaje de alimentacion del pic?.

He puesto todo lo que tengo en el archivo adjunto del primer post.
 
Hola Novatu

Creo que adjuntaste en el ZIP, la simulación en ISIS equivocada pues tiene muchas cosas por mejorar.
Por ejemplo:
A- El puente rectificador tiene uno de sus diodos conectado a tierra por los dos extremos. Está en corto circuito.
B- Qué hace un fusible de 5 Amp. En serie con un capacitor(C2) de 100 Nano-Faradios ???.
Nunca se fundirá a menos que el capacitor se ponga en corto circuito.
C- El relevador no se energiza, aunque abra o cierre el interruptor SW2.
D- En el conmutador SW1, hay una entrada que dice 220V In. Cuando éste conmutador está en esa posición, en el Voltímetro conectado al PIN 37(RB4) y donde se unen R4 y R7 hay(marca) 116 Volts. Es Correcto ??

El voltaje de referencia que hace menciónFuentes84 es el que utiliza el ADC para hacer su conversión. Este voltaje debe ser Fijo y estable. De lo contrario las conversiones serán erróneas. Es muy aparte de la alimentación para el PIC. Verifica, en las hojas de datos del PIC16F877A, Las entradas RA2(4) y RA3(5) para ver como se utiliza el PIC como ADC(Convertidor Análogo a Digital).

saludos
a sus ordenes
 
A- El puente rectificador tiene uno de sus diodos conectado a tierra por los dos extremos. Está en corto circuito.
No, son dos tierras diferentes, una de corriente continua y la otra de alterna, por eso tienen nombres diferentes las tierras (una es "tierra" y la otra no tiene nombre). Corrijanme si me equivoco, pero son dos redes separadas hasta donde se.

B- Qué hace un fusible de 5 Amp. En serie con un capacitor(C2) de 100 Nano-Faradios ???.
Nunca se fundirá a menos que el capacitor se ponga en corto circuito.
El fusible es obvio que esta por seguridad, el capacitor supongo que esta mal puesto. Sucede que no logro hacer que le rele pase a NA al detectar sobretension.

C- El relevador no se energiza, aunque abra o cierre el interruptor SW2.
Sw2 es unicamente para fines de testeo, desconecta o conecta el pin de testeo a la alimentacion primaria. El sw que provoca los cambios de estado del rele es el selector de tensiones (sw1)

D- En el conmutador SW1, hay una entrada que dice 220V In. Cuando éste conmutador está en esa posición, en el Voltímetro conectado al PIN 37(RB4) y donde se unen R4 y R7 hay(marca) 116 Volts. Es Correcto ??

evidentemente hay un problema con las tensiones, hice tantas pruebas, de tantas formas diferentes que ya he olvidado lo que esta bien y lo que esta mal.... y como nadie me respondio hasta ahora, pues habia archivado el proyecto dado que no podia avanzar mas.



Hay que sensar el voltaje de la entrada principal y desconectarla si esta supera los 16v.
Si el voltaje de entrada es inexistente debe dar una alerta (via RS232).

Si quito el capacitos en serie con el fuse, el fuse salta al meterle sobre tension en la entrada, y el rele no llega a abrir el circuito, al menos en el simulador.

Eso es lo que pude hacer, se que tiene muchos errores, por eso les pido ayuda, mas que esto no se y mas no puedo hacer.

El funcionamiento teorico del circuito esta explicado en el primer post.
 
Hola Novatu, echandole una "ojeada" a tu proyecto, puedo comentarte que no es muy complicado como tu lo vez, como el sistema que quies hacer es algo "grande" es mejor que lo diceñes de modo modular para que cuando todo funcione por separado solo tengas que unir todo y listo.
Por otro lado es cierto que varias cosas que debes mejorar o cambiar en tu esquema.

Pero no estas solo...puedo ayudarte(pero eso no significa que hare tu tarea) cumpliria mas la funcion de tutor y obiamente te guiaria sobre lo que tienes que lograr pasaso a paso. en cuanto al tiempo que se tardara para terminar tu proyecto, este solo dependera de ti y tu capacidad.

Pregunta.
es nesesario que todo el control sea mediante el microcontrolador o puedes usar alguna circuiteria adicional.
Por ejemplo. la parte del control de carga de la bateria de respaldo se puede hacer facilmente mediante comparadores siendo totalmente autonomo, asi liberarias al micro de esta tarea y seria mas facil la programacion del resto de las tareas del micro.

un saludo y "ponte la camiseta"...
 
Hola Novatu

A ver si entendí; Hay 2 baterías:
Bat1 Batería de 12v 7Ah.
Bat2 Batería Del Automóvil.

Mencionas en tu mensaje original: Bat1 se cargara con la corriente del automóvil.
La que suministra Bat2 o la que suministra el alternador(Generador) del automóvil ??.

Más adelante, en tu mensaje, dices:
1- El PIC controla la tensión de entrada (la tensión del automóvil) y en caso de ser:
Mayor a 16v corta la conexión entre la batería principal y el circuito con su batería de respaldo.

2- Si tensión principal es menor a 10v y si el motor (llave de ignición) no esta encendido no cargará la batería secundaria

3- A menos que la batería secundaria tenga menos de 7v en dicho caso deberá ignorar la protección y cargar de todas formas para preservar la integridad del funcionamiento del circuito (esto no esta hecho).

Supongo que te estás refiriendo a Bat2. si es así entonces:
Si Bat2 > 16 Entonces: Desconecta Bat1.
Si Bat2 < 10 e Ignición Prendida Entonces: conecta Bat1.
Si Bat2 < 10 e Ignición apagada Entonces: desconecta Bat1.
Pero:
Si Bat1 < 7 Entonces: conecta Bat1 a Bat2.

Dicho De Otro Modo:
Si Batería del automóvil > 16 Entonces: desconecta Batería de respaldo.
Si Batería del automóvil < 10 e Ignición prendida Entonces: conecta Batería de respaldo.
Si Batería del automóvil < 10 e Ignición apagada Entonces: desconecta Batería de respaldo.
Pero:
Si Batería de respaldo < 7 Entonces: conecta Batería de respaldo a Batería del automóvil.

Para todo el embrollo de aquí arriba se requiere utilizar el(Los) convertidores análogo a digital que trae el PIC.
Tú, según el circuito que adjuntaste, estas utilizando las entradas:
AN0 Pin2 Para medir TestIn.
AN1 Pin3 Para medir TestBat.

Atraves de los archivos de código: main.c y main.h debes hacerle saber al PIC que AN0 y AN1 van a utilizarse como entradas análogas.

saludos
a sus ordenes
 

Adjuntos

  • Car Central.zip
    41.6 KB · Visitas: 8
Atrás
Arriba