Ayuda con manejo de señales digitales
Ayuda con manejo de señales digitales
Hola, ojalá me pueda ayudar alguien con experiencia en electrónica digital, necesito "acortar" una señal cuadrada, busqué por la red y hay varios circuitos típicos para recortar los pulsos en intensidad, pero no encuentro cómo acortarlos en el tiempo, digamos que tengo una señal cuadrada 0-5v con frecuencia y ciclo de trabajo variable, digamos que cada pulso dura entre 20 y 40 ms, si necesito acortar el tiempo de duración del pulso, sin meterme en análisis de la señal, ¿cómo hago para que el pulso dure un porcentaje variable de lo que duraba originalmente? digamos que necesito que el pulso dure 85, 75 y 50% de su duración original, no importa si el recorte se da al inicio, al final o en ambos flancos.
pensé en usar un monoestable gatillado con duración programable y menor a la original, pero esto recortaría a un tiempo x, sin importar cuál era el tiempo original, la otra opción que se me ocurre es usar el monoestable gatillado pero introduciendo un retraso, no es una solución perfecta porque recortaría la misma cantidad a los pulsos largos que a los cortos, pero si no hay otra forma esta solución me sirve, siempre que haya algún modo de retrasar este tipo de circuitos.
Cualquier otra solución que conozcan, especialmente alguna que recorte porcentualmente, se las agradeceré enormente.
pensé en usar un monoestable gatillado con duración programable y menor a la original, pero esto recortaría a un tiempo x, sin importar cuál era el tiempo original, la otra opción que se me ocurre es usar el monoestable gatillado pero introduciendo un retraso, no es una solución perfecta porque recortaría la misma cantidad a los pulsos largos que a los cortos, pero si no hay otra forma esta solución me sirve, siempre que haya algún modo de retrasar este tipo de circuitos.
Cualquier otra solución que conozcan, especialmente alguna que recorte porcentualmente, se las agradeceré enormente.
Creo en la evidencia, creeré cualquier cosa, sin importar cuán extraña o ridícula sea, siempre que haya evidencias de ello, cuanto más extraña o ridícula sea, sin embargo, más sólidas tendrán que ser las evidencias.
- Anilandro
- Mensajes: 4905
- Registrado: Dom Feb 11, 2007 10:16 pm
- Ubicación: Islas Baleares, España
- Contactar:
Re: Ayuda con manejo de señales digitales
Pulsos de entre 20 y 40 mSeg son pulsos lentos y por tanto es un trabajo perfecto para un microcontrolador de gama baja con un programa muy sencillo: un contador de microsegundos mientras el impulso esté a HIGH, una división entera por el factor que se quiera, y generar el impulso resultante.
Por sistemas analógicos también se pueden conseguir cargando un condensador con el HIGH a través de una resistencia y descargarlo luego a mayor velocidad, recuperando el pulso cuadrado con un trigger-schmitt. Para conseguir una buena linealidad la constante RC del sistema debería ser de entre 6 y 10 veces la duración en alto de la señal de entrada.
Saludos
Por sistemas analógicos también se pueden conseguir cargando un condensador con el HIGH a través de una resistencia y descargarlo luego a mayor velocidad, recuperando el pulso cuadrado con un trigger-schmitt. Para conseguir una buena linealidad la constante RC del sistema debería ser de entre 6 y 10 veces la duración en alto de la señal de entrada.
Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
*** La Web de Anilandro *** http://sites.google.com/site/anilandro
- heli
- Mensajes: 1952
- Registrado: Mié Sep 06, 2006 7:28 am
- País: España
- Ciudad: Alcalá de Henares
- Ubicación: Alcala de Henares (Madrid, España)
- Contactar:
Re: Ayuda con manejo de señales digitales
Ten en cuenta que vas a introducir un retraso en la señal sí o sí.
Es necesario esperar a que la señal pase a nivel bajo para saber cual era su duración original y luego generar otra con el ancho que hayas calculado. No es posible hacerlo de otra forma y no puedes empezar a generar la señal antes de saber la duración.
Si pintas los cronogramas lo verás claro.
La idea que propone Anilandro es muy buena: cargar un condensador con una resistencia serie y sescargarlo sobre una en paralelo. La relacione de valores de las resistencias determina la proporción, pero esto es dependiente tambien de las impedancias de los circuitos de entrada y salida.
Acuérdate de escuadrar las señales de entrada también con un Schmith Trigger porque los tiempos dependerán de los niveles de tensión (además del ancho) de los pulsos de entrada.
Para independizarlo lo mas posible puedes hacerlo discreto, con un integrador reseteable y un monoestable controlado por tensión.
Si lohaces digital (creo que mas sencillo) con un micro, te vale un arduino nano o similar.
Es necesario esperar a que la señal pase a nivel bajo para saber cual era su duración original y luego generar otra con el ancho que hayas calculado. No es posible hacerlo de otra forma y no puedes empezar a generar la señal antes de saber la duración.
Si pintas los cronogramas lo verás claro.
La idea que propone Anilandro es muy buena: cargar un condensador con una resistencia serie y sescargarlo sobre una en paralelo. La relacione de valores de las resistencias determina la proporción, pero esto es dependiente tambien de las impedancias de los circuitos de entrada y salida.
Acuérdate de escuadrar las señales de entrada también con un Schmith Trigger porque los tiempos dependerán de los niveles de tensión (además del ancho) de los pulsos de entrada.
Para independizarlo lo mas posible puedes hacerlo discreto, con un integrador reseteable y un monoestable controlado por tensión.
Si lohaces digital (creo que mas sencillo) con un micro, te vale un arduino nano o similar.
¡No es imposible, lo que pasa es que no sabes como hacerlo!
Aka: no es difícil si sabes como.
http://heli.xbot.es
Aka: no es difícil si sabes como.
http://heli.xbot.es
Re: Ayuda con manejo de señales digitales
No puedo esperar a que termine el pulso real para empezar a emitir el modificado porque se me desfasan todos, pero se me ocurre que podría medir el pulso por separado y usarlo como realimentación para recortar el siguiente, el primero lo dejaría pasar sin realimentación.
Me atrae más la idea de hacerlo analógicamente porque el pulso resultante sería simultáneo al original, pero si en digital apenas entiendo un poco, en analógico estoy en ceros, ¿podrías darme más o menos el circuito en módulos para ponerme a experimentar hasta dar con los valores adecuados?
Me atrae más la idea de hacerlo analógicamente porque el pulso resultante sería simultáneo al original, pero si en digital apenas entiendo un poco, en analógico estoy en ceros, ¿podrías darme más o menos el circuito en módulos para ponerme a experimentar hasta dar con los valores adecuados?
Creo en la evidencia, creeré cualquier cosa, sin importar cuán extraña o ridícula sea, siempre que haya evidencias de ello, cuanto más extraña o ridícula sea, sin embargo, más sólidas tendrán que ser las evidencias.
Re: Ayuda con manejo de señales digitales
Yo creo que deberías comentar el problema en general, quizás haya otra solución mas facil que adelgazar los pulsos.
Si entiendo bién, debes mantener la posición del pulso, pero la duración puede basarse en la historia anterior. En este caso puedes generar nuevos pulsos sincronizados con los originales, pero cuya amplitud dependa de la amplitud de los originales anteriores.
Te aconsejo por digital; por analógico podrías integrar los últimos pulsos, (no el último, sinó el conjunto de los últimos), y generar una señal de control que manejase las amplitudes de los nuevos pulsos.
Saludos.
Si entiendo bién, debes mantener la posición del pulso, pero la duración puede basarse en la historia anterior. En este caso puedes generar nuevos pulsos sincronizados con los originales, pero cuya amplitud dependa de la amplitud de los originales anteriores.
Te aconsejo por digital; por analógico podrías integrar los últimos pulsos, (no el último, sinó el conjunto de los últimos), y generar una señal de control que manejase las amplitudes de los nuevos pulsos.
Saludos.
Cielo azul sobre campo de mieses, ánimo.
Constitución Española:
Todos los españoles tienen el deber de trabajar y el derecho al trabajo.
Todos los españoles tienen derecho a disfrutar de una vivienda digna y adecuada.
Constitución Española:
Todos los españoles tienen el deber de trabajar y el derecho al trabajo.
Todos los españoles tienen derecho a disfrutar de una vivienda digna y adecuada.
-
- Mensajes: 5282
- Registrado: Mar Nov 10, 2009 3:26 pm
- País: españa
- Ciudad: madrid
- Ubicación: Madrid
Re: Ayuda con manejo de señales digitales
Yo lo que haría es generar nuevos pulsos con el ancho que necesite, mediante un monoestable. Ese monoestable lo dispararía con el flanco ascendente de los pulsos originales (simplemente diferenciando el pulso original).
Die Welt is meine Vorstellung
A. Sch. 1815
A. Sch. 1815
Re: Ayuda con manejo de señales digitales
Este es el circuito, no puedo usar un monoestable gatillado y ajustar el ancho del pulso a una cantidad fija porque el ancho de los pulsos varía con la frecuencia (o al menos eso creo).
Estoy por construir una punta para osciloscopio para el celular, para ver la señal en vivo y tener certeza de cómo se comporta.
Gracias.
Creo en la evidencia, creeré cualquier cosa, sin importar cuán extraña o ridícula sea, siempre que haya evidencias de ello, cuanto más extraña o ridícula sea, sin embargo, más sólidas tendrán que ser las evidencias.
-
- Mensajes: 5282
- Registrado: Mar Nov 10, 2009 3:26 pm
- País: españa
- Ciudad: madrid
- Ubicación: Madrid
Re: Ayuda con manejo de señales digitales
No veo porqué no puedes usar un monoestable "gatillado" de ancho variable. Tan simple como un 555. Al dispararse con el flanco inicial del pulso original (sea + o -), seguirá sincrónicamente la frecuencia de los pulsos originales.
No dices qué ley quieres que siga el ancho del pulso de salida; si es siempre un porcentaje del ancho del pulso de entrada, tienes un problema irresoluble, ya que quieres saber qué ancho darle al de salida antes que termine el pulso de entrada, del cual desconoces cuál va a ser el ancho final. (violación causa-efecto).
Si no puedes desfasar todos los pulsos una posición (o sea determinar el ancho de salida en base al ancho del pulso inmediatamente anterior y no entiendo cual puede ser el problema ya que los pulsos vienen "sin nombre", podrías intentar una aproximación complicada, como ser medir un ancho de entrada, calcular el de salida y usar ese ancho calculado para, por ejemplo, los siguientes 10 o 50 pulsos de salida, luego volver a medir, etc.
No dices qué ley quieres que siga el ancho del pulso de salida; si es siempre un porcentaje del ancho del pulso de entrada, tienes un problema irresoluble, ya que quieres saber qué ancho darle al de salida antes que termine el pulso de entrada, del cual desconoces cuál va a ser el ancho final. (violación causa-efecto).
Si no puedes desfasar todos los pulsos una posición (o sea determinar el ancho de salida en base al ancho del pulso inmediatamente anterior y no entiendo cual puede ser el problema ya que los pulsos vienen "sin nombre", podrías intentar una aproximación complicada, como ser medir un ancho de entrada, calcular el de salida y usar ese ancho calculado para, por ejemplo, los siguientes 10 o 50 pulsos de salida, luego volver a medir, etc.
Die Welt is meine Vorstellung
A. Sch. 1815
A. Sch. 1815
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado