Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

22/06/2015 #21

Avatar de Ardogan

Y por qué no usar el módulo comparador (hardware) del pic18f4550? -> "Comparator module" pag 271 de la hoja de datos: http://ww1.microchip.com/downloads/e...doc/39632c.pdf
25/06/2015 #22

Avatar de cguerrero1205

Hmmm creo que me explique mal, lo que sucede es que cuando la señal del sensor hace su cruce por cero, se activa una temporización y luego toma los datos del ADC, pero sucede que desde que hace ese cruce por cero, hasta que lee el ADC pasa un tiempo, por que las muestras no se comienzan a tomar en 512 (este es mi valor de 0 en el ADC), sino, que por ejemplo, lo hace en 600, por ejemplo, por lo que la gráfica no inicia en cero, sino en otro valor, como se ve en la gráfica del sensor de corriente, como ven no inicia en cero...

uploadfromtaptalk1435245749923.jpg
26/06/2015 #23

Avatar de Saint_

Hola, ahora se entiende mejor la idea que planteabas antes.
Ten en cuenta que desde que sucede el cruce por cero (real) hasta que se llegue al voltaje umbral para que el led del optoacoplador se ilumine y luego dispare la interrupción externa pasa un tiempo (aunque normalmente no es muy considerable), luego de disparar la interrupción externa activas el temporizador y hasta que suceda su interrupción pasa otra cantidad de tiempo... quizá este por ahí el problema que planteas.
Se podría hacer que: En la interrupción externa (que es la mas cercana al cruce por cero) se active al temporizador y ahi mismo se tome la primera muestra de tanto de los sensores de voltaje como de corriente y luego el temporizador se ocuparía del resto.

Por otro lado asumo que las mediciones la estas haciendo sobre una carga netamente resistiva, solo asi se tendrían en fase la tensión y la corriente.
26/06/2015 #24

Avatar de cguerrero1205

Saint_ dijo: Ver Mensaje
Hola, ahora se entiende mejor la idea que planteabas antes.
Ten en cuenta que desde que sucede el cruce por cero (real) hasta que se llegue al voltaje umbral para que el led del optoacoplador se ilumine y luego dispare la interrupción externa pasa un tiempo (aunque normalmente no es muy considerable), luego de disparar la interrupción externa activas el temporizador y hasta que suceda su interrupción pasa otra cantidad de tiempo... quizá este por ahí el problema que planteas.
Se podría hacer que: En la interrupción externa (que es la mas cercana al cruce por cero) se active al temporizador y ahi mismo se tome la primera muestra de tanto de los sensores de voltaje como de corriente y luego el temporizador se ocuparía del resto.

Por otro lado asumo que las mediciones la estas haciendo sobre una carga netamente resistiva, solo asi se tendrían en fase la tensión y la corriente.
Hola, hmmm no entendí muy bien lo que me recomiendas, dices que la primera muestra la tome en la interrupción externa y en la del TMR0?

Si, las pruebas las estoy realizando con una plancha de ropa, que consume más o menos los 9A rms
27/06/2015 #25

Avatar de Saint_

si, exactamente la primera muestra en la interrupción externa y el resto de las muestras en la interrupción temporizada, si eso no soluciona el problema habrá que pensar en algún método mas "mejor..jajajja" para la adquisición de datos.
27/06/2015 #26

Avatar de cguerrero1205

Saint_ dijo: Ver Mensaje
si, exactamente la primera muestra en la interrupción externa y el resto de las muestras en la interrupción temporizada, si eso no soluciona el problema habrá que pensar en algún método mas "mejor..jajajja" para la adquisición de datos.
Jajaja si, así puede que funcione "más mejor", bueno eso lo probaré el martes, cuando lo haga, te comento como me fue... Gracias (Y)
30/06/2015 #27

Avatar de cguerrero1205

cguerrero1205 dijo: Ver Mensaje
Jajaja si, así puede que funcione "más mejor", bueno eso lo probaré el martes, cuando lo haga, te comento como me fue... Gracias (Y)
Actualizo...

Ya hice las modificaciones que me dijiste, si mejoró un poco, pero aún hay un tiempo, lo que genera que la primera lectura no sea en 512.

Como ves en la imagen, aún la señal no inicia en 0

uploadfromtaptalk1435683239317.jpg

También en esta imagen ves que la primera lectura está en más o menos 535

uploadfromtaptalk1435683284813.jpg
01/07/2015 #28

Avatar de Saint_

...Que mal.
Primero que nada ten en cuenta que no se podrá tomar una muestra exactamente en el cruce por cero de la señal... eso debido a los tiempos que tardan en detectar el cruce por cero, disparar la interrupción y muestrearlo con el adc, pero mientas los dispositivos sean mas veloces mas cerca se estará del cometido.

Ahora hay que luchar con el hardware, algo que debería solucionar el problema es implementar un circuito de muestreo y retención simultaneo de las señales de voltaje y corriente. por otro lado también hay que ver como es que estas obteniendo el disparo de la interrupción externa... me refiero mas al esquema, por ejemplo no es lo mismo (dependiendo del método de detección de cruce por cero) usar directamente la red eléctrica que usar un atenuador(ya sea por divisor de tensión o transformador), hay detalles que pueden generar el aparente desface entre en voltaje y corriente.

seria bueno que subas el esquema que estas usando pero con todos los detalles por ejemplo si usas transformador para la señal de la red eléctrica entonces debería estar especificado la relación de entrada y salida, detalles del sensor de corriente... etc.
si subes el esquema hecho en Proteus que no sea en la version 8 ya que para el caso mio no podre abrirlo ya que uso la version 7.
01/07/2015 #29

Avatar de cguerrero1205

Saint_ dijo: Ver Mensaje
...Que mal.
Primero que nada ten en cuenta que no se podrá tomar una muestra exactamente en el cruce por cero de la señal... eso debido a los tiempos que tardan en detectar el cruce por cero, disparar la interrupción y muestrearlo con el adc, pero mientas los dispositivos sean mas veloces mas cerca se estará del cometido.

Ahora hay que luchar con el hardware, algo que debería solucionar el problema es implementar un circuito de muestreo y retención simultaneo de las señales de voltaje y corriente. por otro lado también hay que ver como es que estas obteniendo el disparo de la interrupción externa... me refiero mas al esquema, por ejemplo no es lo mismo (dependiendo del método de detección de cruce por cero) usar directamente la red eléctrica que usar un atenuador(ya sea por divisor de tensión o transformador), hay detalles que pueden generar el aparente desface entre en voltaje y corriente.

seria bueno que subas el esquema que estas usando pero con todos los detalles por ejemplo si usas transformador para la señal de la red eléctrica entonces debería estar especificado la relación de entrada y salida, detalles del sensor de corriente... etc.
si subes el esquema hecho en Proteus que no sea en la version 8 ya que para el caso mio no podre abrirlo ya que uso la version 7.
Ok, en cuanto pueda lo haré, primero debo conseguir la v7 de proteus. En cuanto a los sensores, uso para la corriente un ASC712 de 30A, de este sensor hay bastante información en el web; el problema lo he tenido con el de voltaje, ya que mi sensor es un módulo que compré en china, funciona bien, pero no tengo datos del funcionamiento de este, lo que hice fue variar el voltaje en la entrada del sensor para así poder tener la linealidad respecto al voltaje de entrada y salida, este es el sensor del que te hablo...

http://www.aliexpress.com/item/A01B-...260479182.html
01/07/2015 #30

Avatar de J2C

.


Otra opción seria detectar el anterior cruce por cero y tener en cuenta el periodo/la frecuencia de línea para realizar el trabajo que pensar hacer.



Si trabajas sobre líneas de alimentación de redes domiciliarias la frecuencia suele ser constante.



Saludos, JuanKa.-
02/07/2015 #31

Avatar de cguerrero1205

J2C dijo: Ver Mensaje
.


Otra opción seria detectar el anterior cruce por cero y tener en cuenta el periodo/la frecuencia de línea para realizar el trabajo que pensar hacer.



Si trabajas sobre líneas de alimentación de redes domiciliarias la frecuencia suele ser constante.



Saludos, JuanKa.-
Si, eso mismo he estado pensando, no realizar el muestreo de la señal en el periodo que inicia con el cruce por cero, sino con el siguiente, sería algo como colocar un delay de más o menos 16 ms y después de este si empezar a tomar las muestras, esa es la idea, quizás lo pruebo hoy, cualquier cosa estaré comentando...

Actualizo...

Ya hice las modificaciones que comenté anteriormente y dieron buenos resultados, lo que hice fue agregar un delay justo antes de salir de la interrupcion de cruce por cero de 1250 us para asi empezar el muestreo en el periodo seguiente, en la imagen pueden ver los resultados...

Matlab.jpg
04/07/2015 #32

Avatar de cguerrero1205

Actualizo...

Ya hice las modificaciones que comenté anteriormente y dieron buenos resultados, lo que hice fue agregar un delay justo antes de salir de la interrupcion de cruce por cero de 1250 us para asi empezar el muestreo en el periodo seguiente, en la imagen pueden ver los resultados...

Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.