Autor Tema: 127VCA a un pin IO de un PIC  (Leído 7551 veces)

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

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
127VCA a un pin IO de un PIC
« en: 10 de Octubre de 2005, 20:32:00 »
Sé que suena psicótico poner ese voltaje a un pin de un PIC, pero según he leído en varios lugares, es posible.

Lo pienso usar como detector de cruce por cero de la línea de alimentación de mi casa (en México son 127VCA, en mi casa 130VCA Muchas risas ).

Tengo alimentado al PIC con esta fuente de 4.5V.



La LINEA de la alimentación (sé que es esa porque la chequé con un probador de corriente) está conectada a la terminal RB0 del 877A. La resistencia que yo puse es de 6.2Mohm.



Supuestamente, los PIC tienen diodos de protección que al recibir un voltaje mayor a Vdd, lo detienen y lo interpretan como un 1 lógico; del mismo modo, cuando recibe un voltaje menor a Vss, lo interpretan como 0 lógico.

De esta forma, el PIC sabrá cuando la onda senoidal pasa de un ciclo positivo a un ciclo negativo.

Escribí un programa que toma la lectura del puerto B y la pasa directamente a los puertos A, C, D y E. Entonces lo que lea en RB0 se verá reflejado en RC0. Si hay ciclo positivo de la onda, en RC0 habrá un 1; y si es negativo, un 0.

Ya echando a andar todo esto pasa lo siguiente... a RB0 ni cosquillas, la protección del PIC es real, pero en RC0 el LED que conecté se queda encendido, no oscila a 60Hz como reflejo de la entrada de RB0 (lo chequé con osciloscopio).

¿Alguien tiene experiencia en esto? No sé que me pueda estar fallando.

Adjunto el programa que no creo tenga fallas, más bien el truco ha de estar en hardware y no software.

Gracias por leer todo esto. XD



#include "16f877.h"
#use delay(clock=4000000)
#fuses xt,nowdt,noput,nobrownout,nolvp,noprotect
#use fast_io (a)
#use fast_io (b)
#use fast_io (c)
#use fast_io (d)
#use fast_io (e)

void main(void)
{

SETUP_ADC_PORTS(NO_ANALOGS);
SETUP_ADC(ADC_OFF);

set_tris_a(0x00);
set_tris_b(0xff);
set_tris_c(0x00);
set_tris_d(0x00);
set_tris_e(0x00);

while(1)
{
output_a(input_b());
output_c(input_b());
output_d(input_b());
output_e(input_b());
}

}

Desconectado DannielHP

  • PIC10
  • *
  • Mensajes: 43
RE: 127VCA a un pin IO de un PIC
« Respuesta #1 en: 11 de Octubre de 2005, 00:32:00 »
No sé mucho del tema, una vez intenté leer voltaje alterno por una entrada análoga reduciendolo con un potenciometro como un divisor de tensión. Intentaba leer el Voltaje Pico para calcular el voltaje RMS y lo mismo hacia con el voltaje dado por una Resistencia Shunt para medir corriente, todo esto con el objeto de medir potencia, pero no lo logré y al final abandoné el proyecto. Es cierto que el PIC no se daña, pero como dices, debe haber algún truco. Ahora comenzé un nuevo proyecto también para medir potencia pero con un cto. especial de Cirrus Loigic: CS5460A.
Mencionas que usas un LED, pero lo conectas directamente o usas alguna resistencia? Por experiencia te digo que si no estas colocando una resistencia el PIC puede fallar y ocasionarte cosas como lo que mencionas, de quedarse encendido. Lo mejor sería checar sin el LED con el osciloscopio.
A ver si puedes resolverlo, me interesa el tema. Sonrisa Gigante
Saludos...

Desconectado cHiPmAn

  • PIC16
  • ***
  • Mensajes: 110
RE: 127VCA a un pin IO de un PIC
« Respuesta #2 en: 11 de Octubre de 2005, 15:19:00 »

Hola,
el condensador C2 me parece muy gordo. Intenta con uno de 470nF

Suerte!

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: 127VCA a un pin IO de un PIC
« Respuesta #3 en: 11 de Octubre de 2005, 16:55:00 »
Daniel, gracias por tu respuesta Divertido

Le puse una R de 330 ohms en serie al LED.

El circuito de detección funciona bien a 5V; desconecté la LINEA, y conecté una R de 10k a tierra (pulldown) y con un pushbutton daba 5V a RB0, la salida salía perfectamente en el LED de RC0.

Además, como medida de precaución, dado que el circuito está alimentado a la CA directamente, NO es recomendable hacer mediciones con osciloscopio... hay que aislarlo mediante transformador u optoacopladores.

La prueba con 5V funcionó a la perfección... el siguiente paso fue optoacoplar la salida de RC0 con una fuente ajena a CA, en mi caso, una fuente de 5V. No hubo problema con el opto, todo bien.

Ya conectando la LINEA de CA a la patita del PIC es cuando el LED optoacoplado (incluso la salida RC0) se quedan encendidos.

Chipman, la fuente de 5V no muestra problemas, les hice saber que la estoy usando en caso de que haya que tomar precauciones como la del osciloscopio. De todas formas el C que le puse es de 1000uF. Gracias Divertido

Desconectado DannielHP

  • PIC10
  • *
  • Mensajes: 43
RE: 127VCA a un pin IO de un PIC
« Respuesta #4 en: 12 de Octubre de 2005, 01:25:00 »
Entonces por lo que veo, no has solucionado el problema. Hay algo que no me quedó muy claro, tengo entendido que tenias el LED conectado a RC0, para qué le pones un optoacoplador  ahi? Es porque piensas hacer un rectificador o algo asi?
Saludos...

Desconectado DannielHP

  • PIC10
  • *
  • Mensajes: 43
RE: 127VCA a un pin IO de un PIC
« Respuesta #5 en: 12 de Octubre de 2005, 02:21:00 »
Buscando entre mis archivos, encontré la AN521 de Microchip (Interfacing to AC power lines) Creo que te serviría mucho darle una leida (si no lo has hecho)

En resumen, la protección que hace que puedas conectar un voltaje AC directo al PIC, son dos diodos que tiene internamente en la entrada del pin. Pero esto no lo tiene en los pines MCLR y T0CK1, pero puede ser implementado externamente (dice como hacerlo). Usan una resistencia de 5 Mohm.

 En el documento mencionan a la serie PIC16C5X, pero no sé si todos los PIC tengan esta caracteristica. Podrias probar con otro pin del PIC, ponerle el arreglito de diodos, o ya de plano probar con otro PIC, no se me ocurre mas loco
Suerte.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: 127VCA a un pin IO de un PIC
« Respuesta #6 en: 12 de Octubre de 2005, 19:39:00 »
El optoacoplador lo puse en RC0 para poder hacer medición con el osciloscopio.

La nota 521 ya la había leído; todos los PIC (familias 12, 16, 17 y 18) traen la protección. Giño

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: 127VCA a un pin IO de un PIC
« Respuesta #7 en: 13 de Octubre de 2005, 19:34:00 »
Funciona, funciona!!

El problema estaba en la corriente de alimentación del pin. La R de 6.2Mohm estaba muy grande, la corriente que entregaba era de 127/6200000=20uA.

Bajé la R a 1.1M y la i es de 115uA, que está dentro del rango de +-500uA permitidos por el PIC.

Ahorita no tengo osciloscopio, el LED prende y apaga pero apenas lo veo, le puse una bocinita y se oyen los 60Hz.

Gracias dogflu66 por las notas XD

Desconectado dogflu66

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3549
RE: 127VCA a un pin IO de un PIC
« Respuesta #8 en: 14 de Octubre de 2005, 06:28:00 »
Felicidades.... y recuerda que los picos de la linea los absorben los diodos... asi que ya sabes una VDR 150 a 175 v en la linea.....Sonrisa Gigante
Saludos desde Granada, España.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: 127VCA a un pin IO de un PIC
« Respuesta #9 en: 15 de Octubre de 2005, 01:00:00 »
Me interesa el tema, pero no me queda claro cómo ha quedado el circuito:
- ¿sólo una resistencia de 1M en serie con la alterna de la red directa al PIC?
- ¿qué es una VDR?
- ¿serviría igual para 220V?

Gracias

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: 127VCA a un pin IO de un PIC
« Respuesta #10 en: 15 de Octubre de 2005, 10:27:00 »
Así como lo oyes Nocturno, una R de 1.1Mohm en serie a la CA y ya. En España tendrías que usar una R de 2Mohm por lo del voltaje 220V. Te voy a recomendar esta nota de aplicación...

http://ww1.microchip.com/downloads/en/AppNotes/00521c.pdf

La misma nota de aplicación, en español proporcionada por dogflu66:

http://www.mytempdir.com/202835

Habla de todo lo que Microchip le ha metido a todos los PIC para protegerlos ante voltajes enormes, incluso de 220V para países europeos como España.

La cuestión es que yo estoy alimentando al PIC con la fuente sin transformador, así se podría decir que hay tierra en comun (NEUTRO de CA) en el circuito.

No he probado con una fuente de 5V aislada (transformador o baterías). La LINEA iría a la R de 1M y luego al pin del PIC, pero no sé que vaya a pasar... no hay tierra en común. Puede que no fluya corriente desde la LINEA de CA.

Si se acoplara el NEUTRO de CA a la tierra de la fuente de 5V aislada me imagino que podría quemarse todo el circuito, por lo de el voltaje negativo de CA. Sólo habría que poner un diodo en serie a la R de 1M para evitarlo... aunque se modificaría el ciclo de onda negativo y habría problemas para detectar cruces por cero con buena precisión.

El PIC interpreta el ciclo positivo de la onda senoidal como un 1 lógico, y el ciclo negativo como 0 lógico. Se quemaría si te pasaras de 500uA a la entrada del PIC (considerando voltajes mayores a Vdd o menores a Vdd).

En general, se puede poner CA a un pin del PIC para varias cosas: detectar cruces por cero, medir frecuencia de la alterna (50Hz, 60Hz y 400Hz), etc.

Ahora los VDR (Voltage Dependent Resistor)...

Los varistores protegen ante picos de voltaje. Por ejemplo, si la alimentación normal es de 127Vrms, se tendría que comprar un varistor de 135Vrms.

El VDR se conecta directamente a línea y neutro de CA. Cuando llega un pico de 135V o más, el varistor reduce su resistencia y crea un corto circuito. Al crear un corto circuito, la corriente fluye totalmente por él, ya no pasa por el circuito que está protegiendo evitando que se queme.

Ya cuando el voltaje es normal, el varistor incrementa su resistencia a un valor muy alto.

En tu caso Nocturno, tendrías que comprar un VDR para 240V o algo así, para que cuando haya un pico mayor a 240Vrms, se ponga en corto y protega tu PIC y demás cosas que estés alimentando.

Espero haber sido claro.
Divertido

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: 127VCA a un pin IO de un PIC
« Respuesta #11 en: 15 de Octubre de 2005, 10:56:00 »
Muchas gracias por la explicación, y por el documento de DogFlu.

Ahora veo que en el dimmer podría haberme ahorrado mucho: el trafo, el operacional...

El próximo dimmer me va a salir por 3 duros Muchas risas

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: 127VCA a un pin IO de un PIC
« Respuesta #12 en: 15 de Octubre de 2005, 11:01:00 »
En un principio pensé que tu dimmer del Rebujito estaba hecho con un detector de cruce por cero con una R de megas. ¿Cómo le hiciste para detectar el cruce por cero?

En el proyecto en el que estamos, un amigo quiere programar AVRs para lo mismo que yo, porque no sabe de PICs, así que lo del detector de cruce por cero sin la protección del PIC le es un enigma todavía.


Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: 127VCA a un pin IO de un PIC
« Respuesta #13 en: 15 de Octubre de 2005, 11:02:00 »
Jajjaa, un duro es una moneda equivalente a 5 pesetas, la moneda que teníamos en España hasta hace unos años. Lo de "costarme 3 duros" es para mí una frase hecha Muchas risas

En mi dimmer el cruce por cero lo detecto con un operacional, un LM741, configurado como comparador contra masa. Este me envía un 1 en el semiciclo positivo y un 0 en el negativo.

Vamos, hace exactamente lo mismo que el PIC loco

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: 127VCA a un pin IO de un PIC
« Respuesta #14 en: 15 de Octubre de 2005, 11:05:00 »
Pero el 741... ¿se conecta a la CA de 120V? ¿No se quema?


 

anything