Temporizador de tiempo aleatorio

Estoy construyendo un circuito simple que emite un pitido en un intervalo de tiempo determinado, usando un temporizador 555. ¿Hay alguna forma simple de aleatorizar el tiempo en el temporizador 555 entre dos intervalos dados, digamos, cualquier tiempo entre 30 segundos y dos minutos? Ni siquiera estoy buscando una verdadera aleatorización, solo algo simple para hacer que el intervalo sea diferente entre cada pulso. Idealmente, esto sería lo suficientemente simple/pequeño como para poder poner dos de ellos en un circuito con un temporizador 556; el segundo sería una sincronización de menos de un segundo para crear un 'pitido' diferente cada vez. ¿Algunas ideas?

Gracias.

PD: ¿bonificación si los intervalos se pueden ajustar con un potenciómetro?

Aceptar una respuesta tan rápido es desalentador para otros que, de lo contrario, también habrían publicado una respuesta. Ahora posiblemente obtendrá menos respuestas/ideas.
@FedericoRusso en serio? Jaja, nunca había considerado eso antes, ¡gracias por el consejo!
Recuerdo mi probador favorito que diseñé para marcar un número de teléfono para probar una red digital DS1. Descolgó, marcó 888.8888, se conectó y luego colgó, esperó y repitió toda la semana. Lo hice con solo un par de contadores y algunas puertas con marcación de control de pulso. Chris, ¿puedes rechazarlo? Me gustaría ver una solución más simple. ¿Puedes morder un PIC? El mejor diseño es el que usa las herramientas que sabes usar.
@TonyStewart seguro, no hay problema. Y sí, posiblemente, y luego podría obtener un poco más de funcionalidad también. ¿Quizás un PICAXE?

Respuestas (5)

Estoy de acuerdo con Olin: deshazte del 555 y obtén un microcontrolador. El PIC10F200 es el primero que viene a la mente si solo necesita un par de E/S y un programa simple. Gracias al oscilador interno no necesita ninguno de los componentes externos que requiere el LM555. El 10F200 cuesta solo unos centavos más que el LM555 y puede reemplazar fácilmente a dos de ellos. El LM556 tampoco es competencia: cuesta el doble de lo que pagas por el 10F200.

Entonces, ¿la respuesta de Olin es la correcta? No :-). ¡Voy por el bono! Recientemente encontré el Atmel ATTiny5 , que es comparable con el PIC10F200: mismo paquete SOT23, misma memoria de programa de 512 bytes, oscilador interno. ¡PERO! ¡El ATTiny5 tiene un ADC , que el PIC no tiene! ¡Conéctale el potenciómetro y la bonificación es mía! :-)

(También puede hacer un ADC crudo con el PIC, pero necesita 2 pines que puede usar como salidas, y como ya tenemos dos salidas y una E/S del 10F200 es solo entrada, tendrá que renunciar esa salida de zumbador Editar. Pensándolo bien, puede hacerlo con una E / S, pero necesitará dos resistencias y un condensador en lugar de una resistencia y un condensador ) .

El software será muy parecido al del PIC: programe un LFSR (registro de desplazamiento de retroalimentación lineal):

ingrese la descripción de la imagen aquí

Un LFSR de 8 bits puede recorrer hasta 255 combinaciones antes de repetirse, un LFSR de 16 bits hasta 65535. Use la lectura del potenciómetro para definir los valores de recorte para el temporizador.

Tenga en cuenta que los PIC diminutos también están disponibles con A/D. La serie PIC 10F22x es más o menos la serie 10F20x con un A/D y algunas otras cosas menores añadidas.
Una vez que tenga una MCU, también puede usar otras fuentes para la aleatoriedad, por ejemplo, use un pin analógico desconectado y pruebe el LSB en él. O configure una carrera de transistores mediada por un pin MCU.
@Olin - Bah, ¡estás estropeando mi respuesta! :-)
¡Fresco! ¡Gracias por la respuesta detallada y entretenida, y disfrute de su bono!

Dijiste que quieres algo simple y pequeño, pero aún estás usando un temporizador 555. Esos dos están en desacuerdo entre sí.

Devuelva el temporizador 555 al museo donde lo encontró y use un microcontrolador. El diminuto PIC10F200 puede hacer este trabajo. Viene en un paquete SOT-23 y solo necesita una pieza adicional de tapa de derivación.

El resto es firmware. Esta parte tiene un oscilador interno y 255 palabras de instrucción utilizables. Eso es suficiente para un poco de tiempo y un código numérico pseudoaleatorio. Incluso puede hacer que haga varias salidas al mismo tiempo. Esta parte tiene seis pines: alimentación, tierra, una entrada y tres E/S. Por lo tanto, puede hacer que produzca hasta 3 eventos separados directamente desde sus pines.

Agregado:

Aparentemente, existe cierto deseo de controlar la duración promedio del intervalo con un bote. Si eso es lo que quiere, puede usar un PIC 10F220 en lugar del 10F200. Ese PIC tiene un A/D de 8 bits y solo cuesta un poco más que el '200 (todavía solo $.38 en 100s en microchipdirect). Nuevamente, la única otra parte que necesita además del microcontrolador es una tapa de derivación. El bote puede rondar los 20 kΩ o los 47 kΩ. Los extremos están conectados a Vdd y tierra, y el limpiaparabrisas a uno de los dos pines de entrada analógica. El resto es firmware.

+1. Exactamente en lo que estaba pensando, solo que era demasiado perezoso para escribirlo. :-)
Cuando vi a Olin, supe que era un PIC :) +1
@Chris: si lo quiere pequeño: el 10F200 está disponible en un paquete DFN de 2 mm x 3 mm.
@stevenvh ¿Qué pasa con la programación de un microcontrolador SMD? Debería considerar cosas adicionales de ICSP en la huella, ¿verdad? No creo que a OP le importe si es pequeño, está mencionando un bote para ajustarlo y lo considera como una bonificación.
@abdullah: ICSP usa 3 pines de E / S que probablemente desee conectar de todos modos. Para un producto comercial, proporcionaría 3 almohadillas en la parte inferior (+ dos para alimentación), a las que conectaría en una plantilla de prueba usando pines de prueba con resorte . No solo son útiles para la programación, sino que también se usan ampliamente en las pruebas de placas.
@abdullah: de todos modos, también necesitará componentes adicionales para el potenciómetro; el 10F200 no tiene un ADC a bordo.
@abdullahkahraman: si su placa es demasiado pequeña para los pines de programación, también puede hacer que su proveedor programe el controlador. Lo hacemos a menudo para lotes grandes, es más barato que hacerlo nosotros mismos.
Oye, tampoco hay una patente sobre mi idea, incluso si Olin la duplicó, la mejor respuesta es la que se adapta al autor de la pregunta con las herramientas que puede usar. Factoide: cada jugador de ajedrez tiene más de 4 mil millones de posibles combinaciones de movimientos en las primeras cuatro entradas. La electrónica es más multidimensional e incluso más movimientos que el ajedrez.
Podría implementar esto con el modo de terminal usando comandos AT y sin necesidad de un PIC o cualquier hardware personalizado... y mucho más rápido de realizar, tonos de llamada flexibles, escalables y gratuitos también... mmm, un PIC era demasiado obvio... .
@stevenvh ah, ¿por qué no son útiles para programar? Acabo de terminar un diseño de 2600qty como lo dices, con almohadillas. Aunque programé todos los chips en dos días hasta que llegaron los PCB, no probé los pines ICSP.
@abdullah - Dije que no solo es útil. Son útiles para la programación y las pruebas.
@stevenvh, ups, lo siento :) OK, entonces, ahora será un dolor en el trasero tener esos pines pogo en Turquía...
El 555 tiene la ventaja de ser significativamente más barato por unidad. Si no necesita hacer ninguna lógica sofisticada, no derroche en el microcontrolador. Si necesita un poco de lógica sofisticada, elija un microcontrolador de formato "pequeño" con una pequeña cantidad de memoria.

Seguro que eso es trivial. Simplemente obtenga un registro de desplazamiento, una compuerta XOR cuádruple y un potenciómetro en el 555 o use un inversor Schmitt para hacer lo mismo (Relaxation Osc) y maneje un contador binario para obtener el período mínimo de 1 minuto. Use otro inversor para hacer un tono diferente. Use un retardo RC uno de una puerta XOR y obtendrá un disparo para cada transición. Comparta eso con su tono o use otro inversor Schmitt para hacer otro tono f fijo, o use el mismo tono para que cuando cambie los intervalos con el potenciómetro, el tono también cambie de tono.

Busque PRSG, PRNG, LFSR o RNG o... ... todo lo que necesita es un generador de secuencia aleatoria de 8 etapas. También hay polinomios más largos que puedes usar simplemente. Si usa un inversor en la retroalimentación, todos los ceros o un reinicio se pueden usar como semilla inicial. O puede cargar una semilla aleatoria de otra manera.... Pero todos los 1 son ilegales. Esto tendrá sentido después de ver el diseño clásico. (Lo usé en 1976)

Pensándolo bien, solo desea una proporción de 4:1 de 0,5 a 2 minutos y esto crearía una proporción de 8:1. Eso no es demasiado difícil de arreglar... usando un retraso de tiempo fijo de 30 segundos y un PRNG polinomial más alto para una mejor resolución, luego use un flip flop o 2 puertas para configurar después de 30 segundos y reiniciar después de 2 minutos. Ahora ve a ejecutar eso en VHDL y colócalo en un chip CPLD simple. ¿Próximo?

Impresionante, gracias por la gran respuesta! Estaba buscando un proyecto básico para mantenerme ocupado durante la próxima semana o dos, esto se ve perfecto, ¡gracias!
¿semana? Debería ser capaz de armarlo en una hora... con práctica...
jaja cierto, soy bueno con un soldador pero no tanto haciendo mis propios esquemas. En ese sentido, ¿tengo razón al decir que necesito 3 circuitos integrados: un registro de desplazamiento 4015, un XOR 4070 y una fuente de temporizador 555? Además, encontré este esquema: doctronics.co.uk/4015.htm#applications , ¿podría decirme si ese negocio con el 4093 es reemplazable con un 555? Muchas gracias por la ayuda, realmente me has hecho pensar!!
"Busca PRSG, [...]". Ese no es el camino. Las respuestas deben mantenerse por sí mismas. Si crees que PRSG es interesante, explícalo aquí, aunque sea brevemente.

Supongo que el 555 se usa en configuración monoestable.

El intervalo está determinado por el RC y C es fijo. R puede variar; por ejemplo, mediante el uso de un LDR o un termistor. Por lo tanto, la constante RC probablemente también cambiaría.

Existe, por supuesto, la advertencia de que una resistencia/controlador variable de este tipo tendría que estar expuesto al entorno adecuado para que su resistencia varíe.

Espero que esto ayude.

Los LDR y los termistores son resistencias variables, pero no variarán por sí mismos. Si el nivel de luz y la temperatura son constantes, no verá muchos cambios en los intervalos.
@stevenvh: Tienes razón. Actualicé la respuesta para acomodar la advertencia.

Los 555 son tan de la vieja escuela... Puedes hacer 6 osciladores con un inversor HEx Schmitter o usar Schmitt NAND.

Luego use ambas entradas de XOR con retardo RC en una para hacer un duplicador de frecuencia de un solo disparo.

En realidad, todo esto es de la vieja escuela y usa un registro de desplazamiento, no D FF. y contador de ondas binarias para escalar el reloj hacia abajo.

Solo usa una placa de prueba.

ingrese la descripción de la imagen aquí

Esto es interesante como poesía de la corriente de la conciencia, pero es un poco parco en explicaciones para ayudar a OP con su pregunta.
Feynman dijo que es mejor no saber y preguntarse la respuesta completa que saber la respuesta completa y no saber que está mal. Si vota por respuestas de libros de cocina en lugar de instrucciones sugerentes, no enseña a pensar, sino que simplemente regurgita datos. Si entiendes sus primeras respuestas, entiendes mi tendencia.
@TonyStewart en realidad este es un sitio de preguntas y respuestas, donde Asignifica "Responder", no "Argumentar" :) No se trata solo del OP, debe dejar contenido valioso para todos los lectores