Zufallszeit-Timer

Ich baue eine einfache Schaltung, die mit einem 555-Timer in einem bestimmten Zeitintervall einen Piepser piept. Gibt es eine einfache Möglichkeit, die Zeit des 555-Timers zwischen zwei bestimmten Intervallen zu randomisieren, z. B. zwischen 30 Sekunden und zwei Minuten? Ich suche nicht einmal nach echter Randomisierung, sondern nach etwas Einfachem, um das Intervall zwischen den einzelnen Impulsen unterschiedlich zu gestalten. Idealerweise wäre dies einfach / klein genug, dass ich zwei davon mit einem 556-Timer in einen Schaltkreis stecken kann - der zweite wäre ein Timing von weniger als einer Sekunde, um jedes Mal einen anderen "Piep" zu erzeugen. Irgendwelche Ideen?

Vielen Dank.

PS - Bonus, wenn die Intervalle mit einem Potentiometer eingestellt werden können?

Eine Antwort so schnell zu akzeptieren, ist für andere entmutigend, die sonst auch eine Antwort gepostet hätten. Jetzt erhalten Sie möglicherweise weniger Antworten/Ideen.
@FedericoRusso wirklich? Haha, daran hatte ich noch nie gedacht, danke für den Tipp!
Ich erinnere mich an meinen Lieblingstester, den ich entworfen hatte, um eine Telefonnummer zum Testen eines digitalen DS1-Netzwerks zu wählen. Er ging ab, wählte 888.8888, wurde verbunden und legte dann auf, wartete und wiederholte die ganze Woche. Ich habe es mit nur ein paar Zählern und ein paar Gates mit Pulse Control Dialing gemacht. Chris kann dich nicht akzeptieren. Ich würde mir eine einfachere Lösung wünschen. Kannst du ein PIC bitbangen? Das beste Design ist dasjenige, das die Werkzeuge verwendet, die Sie kennen.
@TonyStewart sicher, kein Problem. Und ja, möglicherweise, und dann könnte ich auch ein bisschen mehr Funktionalität bekommen. Vielleicht ein PICAXE?

Antworten (5)

Ich stimme Olin zu: Lass den 555 weg und hol dir einen Mikrocontroller. Der PIC10F200 ist der erste, der in den Sinn kommt, wenn Sie nur ein paar I/Os und ein einfaches Programm benötigen. Dank des internen Oszillators benötigt er keine der externen Komponenten, die der LM555 benötigt. Der 10F200 ist nur ein paar Cent mehr als der LM555 und kann problemlos zwei davon ersetzen. Auch der LM556 ist keine Konkurrenz: Er kostet doppelt so viel wie der 10F200.

Olins Antwort ist also die richtige? Nein :-). Ich hol mir den Bonus! Ich habe kürzlich den Atmel ATTiny5 gefunden , der mit dem PIC10F200 vergleichbar ist: gleiches SOT23-Paket, gleiche 512 Bytes Programmspeicher, interner Oszillator. SONDERN! Der ATTiny5 hat einen ADC , den der PIC nicht hat! Schließen Sie das Potentiometer daran an und der Bonus gehört mir! :-)

(Sie können mit dem PIC auch einen groben ADC machen, aber er benötigt 2 Pins, die Sie als Ausgänge verwenden können, und da wir bereits zwei Ausgänge haben und ein I / O des 10F200 nur Eingang ist, müssen Sie aufgeben dieser Summerausgang. Bearbeiten. Beim zweiten Gedanken können Sie dies mit einem E / A tun, aber Sie benötigen zwei Widerstände und einen Kondensator anstelle von einem Widerstand und einem Kondensator. )

Die Software ist sehr ähnlich wie beim PIC: Programmieren Sie ein LFSR (Linear Feedback Shift Register):

Geben Sie hier die Bildbeschreibung ein

Ein 8-Bit-LFSR kann bis zu 255 Kombinationen durchlaufen, bevor es wiederholt wird, ein 16-Bit-LFSR bis zu 65535. Verwenden Sie den Potentiometerwert, um die Clipping-Werte für den Timer zu definieren.

Beachten Sie, dass winzige PICs auch mit A/Ds erhältlich sind. Die PIC 10F22x-Serie ist so ziemlich die 10F20x-Serie mit einem A/D und ein paar anderen kleinen Dingen, die hinzugefügt wurden.
Sobald Sie eine MCU haben, können Sie auch andere Quellen für die Zufälligkeit verwenden - zum Beispiel einen nicht angeschlossenen analogen Pin verwenden und das LSB darauf abtasten. Oder richten Sie ein Transistorrennen ein, das durch einen MCU-Pin vermittelt wird.
@Olin - Bah, du verdirbst meine Antwort! :-)
Cool! Vielen Dank für die ausführliche und unterhaltsame Antwort und viel Spaß mit Ihrem Bonus!

Sie sagten, Sie wollen einfach und klein, aber Sie verwenden einen 555-Timer. Diese beiden stehen im Widerspruch zueinander.

Geben Sie den 555-Timer in das Museum zurück, in dem Sie ihn gefunden haben, und verwenden Sie einen Mikrocontroller. Der winzige PIC10F200 kann diese Aufgabe übernehmen. Es wird in einem SOT-23-Gehäuse geliefert und benötigt nur ein einziges zusätzliches Teil der Bypass-Kappe.

Der Rest ist Firmware. Dieser Teil hat einen internen Oszillator und 255 nutzbare Befehlswörter. Das reicht für ein wenig Timing und Pseudo-Zufallszahlencode. Sie können sogar mehrere Ausgaben gleichzeitig ausführen. Dieser Teil hat sechs Pins: Strom, Masse, einen Eingang und drei I/O. Sie können ihn daher bis zu 3 separate Ereignisse direkt von seinen Pins erzeugen lassen.

Hinzugefügt:

Offenbar besteht der Wunsch, die durchschnittliche Intervalllänge mit einem Topf zu kontrollieren. Wenn Sie dies wünschen, können Sie anstelle des 10F200 einen PIC 10F220 verwenden. Dieser PIC hat einen 8-Bit-A/D und kostet nur wenig mehr als der '200 (immer noch nur 0,38 $ in 100s bei Microchipdirect). Auch hier ist das einzige andere Teil, das Sie neben dem Mikrocontroller benötigen, eine Bypass-Kappe. Das Poti kann etwa 20 kΩ oder 47 kΩ betragen. Die Enden sind mit Vdd und Masse verbunden und der Schleifer mit einem der beiden analogen Eingangspins. Der Rest ist Firmware.

+1. Genau das, woran ich dachte, nur war ich zu faul, es abzutippen. :-)
Als ich Olin sah, wusste ich, dass es ein PIC war :) +1
@Chris - Wenn Sie es klein wollen: Der 10F200 ist in einem 2 mm x 3 mm DFN-Gehäuse erhältlich.
@stevenvh Was ist mit der Programmierung eines SMD-Mikrocontrollers? Sie sollten zusätzliches ICSP-Zeug im Footprint berücksichtigen, richtig? Ich glaube nicht, dass OP sich darum kümmert, ob es klein ist, er erwähnt einen Pot zum Anpassen und betrachtet es als Bonus.
@abdullah - ICSP verwendet 3 E / A-Pins, die Sie wahrscheinlich sowieso verdrahten möchten. Für ein kommerzielles Produkt würden Sie unten 3 Pads (+ zwei für die Stromversorgung) bereitstellen, die Sie mit federbelasteten Teststiften an einer Testvorrichtung anschließen würden . Sie sind nicht nur zum Programmieren nützlich, sondern werden auch häufig beim Testen von Platinen verwendet.
@abdullah - Wie auch immer, er braucht auch zusätzliche Komponenten für das Potmeter; Der 10F200 hat keinen ADC an Bord.
@abdullahkahraman: falls dein Board zu klein für die Programmierpins ist, kannst du den Controller auch von deinem Lieferanten programmieren lassen. Wir machen es oft für große Chargen, es ist billiger als es selbst zu machen.
Hey, meine Idee ist auch nicht patentiert, selbst wenn Olin sie dupliziert hat, ist die beste Antwort diejenige, die dem Fragesteller mit Werkzeugen entspricht, die er verwenden kann. Factoid: Jeder Schachspieler hat über 4 Milliarden mögliche Zugkombinationen in den ersten vier Einträgen. ELEKTRONIK ist mehrdimensional und noch mehr bewegt als Schach.
Sie könnten dies im Terminalmodus mit AT-Befehlen implementieren und benötigen kein PIC oder benutzerdefinierte Hardware.... und viel schneller zu realisieren, flexibel, skalierbar und auch kostenlose Klingeltöne ... hmm, ein PIC war zu offensichtlich. .
@stevenvh ah, warum sind sie zum Programmieren nicht nützlich? Ich habe gerade ein Design von 2600 Stück fertiggestellt, wie Sie es sagen, mit Pads. Obwohl ich alle Chips in zwei Tagen programmiert habe, bis die PCBs ankamen, habe ich die ICSP-Pins nicht getestet.
@abdullah - ich sagte nicht nur nützlich. Sie sind nützlich zum Programmieren und Testen.
@stevenvh, oops, Entschuldigung :) OK, dann wird es jetzt eine Nervensäge, diese Pogo-Pins in der Türkei zu haben.
Der 555 hat den Vorteil, dass er pro Stück deutlich günstiger ist. Wenn Sie keine ausgefallene Logik machen müssen, protzen Sie nicht für den Mikrocontroller. Wenn Sie nur ein wenig ausgefallene Logik benötigen, entscheiden Sie sich für einen Mikrocontroller im "winzigen" Format mit wenig Speicher.

Klar ist das trivial. Holen Sie sich einfach ein Schieberegister, ein Quad-XOR-Gatter und einen Topf auf dem 555 oder verwenden Sie einen Schmitt-Inverter, um dasselbe zu tun (Relaxation Osc), und treiben Sie einen Binärzähler, um die Mindestperiode von 1 Minute zu erhalten. Verwenden Sie einen anderen Wechselrichter, um einen anderen Ton zu erzeugen. Verwenden Sie eine RC-Verzögerung eines XOR-Gatters und Sie erhalten einen One-Shot für jeden Übergang. Gattern Sie das mit Ihrem Ton oder verwenden Sie einen anderen Schmitt-Inverter, um einen anderen festen f-Ton zu erzeugen, oder verwenden Sie denselben Ton, sodass sich der Ton auch ändert, wenn Sie die Intervalle mit dem Poti ändern.

Suchen Sie nach PRSG, PRNG, LFSR oder RNG oder... ....alles, was Sie brauchen, ist ein 8-stufiger Zufallsgenerator. Es gibt längere Polynome, die Sie auch einfach verwenden können. Wenn Sie einen Inverter in der Rückkopplung verwenden, können alle Nullen oder ein Reset als Startwert verwendet werden. Oder Sie können einen zufälligen Seed auf andere Weise laden ... Aber alle 1's sind illegal. Dies wird Sinn machen, nachdem Sie das klassische Design gesehen haben. (Ich habe es 1976 benutzt)

Zweiter Gedanke: Sie wollen nur ein 4:1-Verhältnis von 0,5 bis 2 Minuten, und dies würde ein 8:1-Verhältnis erzeugen. Das ist nicht allzu schwer zu beheben ... Verwenden Sie eine feste Zeitverzögerung von 30 Sekunden und ein höheres Polynom PRNG für eine bessere Auflösung. Verwenden Sie dann ein Flip-Flop oder 2 Tore, um es nach 30 Sekunden einzustellen und nach 2 Minuten zurückzusetzen. Führen Sie das jetzt in VHDL aus und stecken Sie es in einen einfachen CPLD-Chip. Nächste?

Super, danke für die tolle Antwort! Ich suchte nach einem einfachen Projekt, um mich die nächsten ein oder zwei Wochen zu beschäftigen, das sieht perfekt aus, danke!
Woche? sollte in einer stunde zusammengebaut sein... mit übung...
haha stimmt, ich kann gut mit einem Lötkolben umgehen, aber nicht so sehr mit dem Erstellen meiner eigenen Schaltpläne. In diesem Sinne - habe ich Recht, wenn ich sage, dass ich 3 ICs benötige - ein 4015-Schieberegister, ein 4070-XOR und eine 555-Timer-Quelle? Außerdem habe ich diesen Schaltplan gefunden - doctronics.co.uk/4015.htm#applications . Können Sie mir möglicherweise sagen, ob das Geschäft mit dem 4093 durch einen 555 ersetzbar ist? Vielen Dank für die Hilfe, du hast mich wirklich zum Nachdenken gebracht!!
"PRSG nachschlagen, [...]". Das ist nicht der Weg. Antworten sollten für sich stehen. Wenn Sie PRSG interessant finden, erklären Sie es hier, wenn auch nur kurz.

Ich gehe davon aus, dass der 555 in monostabiler Konfiguration verwendet wird.

Das Intervall wird durch den RC bestimmt und C ist festgelegt. R kann variiert werden; beispielsweise durch Verwendung eines LDR oder eines Thermistors. Daher würde sich wahrscheinlich auch die RC-Konstante ändern.

Es gibt natürlich die Einschränkung, dass ein solcher variabler Widerstand/Treiber der richtigen Umgebung ausgesetzt werden müsste, damit sein Widerstand variiert.

Hoffe das hilft.

LDRs und Thermistoren sind variable Widerstände, aber sie variieren nicht von selbst. Wenn Lichtstärke und Temperatur konstant sind, werden Sie keine großen Änderungen in den Intervallen feststellen.
@stevenvh: Du hast recht. Ich habe die Antwort aktualisiert, um den Vorbehalt zu berücksichtigen.

555er sind so altmodisch ... Sie können 6 Oszillatoren mit einem HEx-Schmitter-Inverter herstellen oder Schmitt NAND verwenden.

Verwenden Sie dann beide Eingänge von XOR mit RC-Verzögerung in einem, um einen One-Shot-Frequenzverdoppler zu erstellen.

Eigentlich ist das alles alte Schule und verwendet ein Schieberegister, nicht D FF. und binärer Ripple-Zähler, um die Uhr herunterzuskalieren.

Verwenden Sie einfach ein Steckbrett.

Geben Sie hier die Bildbeschreibung ein

Dies ist als Stream-of-Conciousness-Poesie interessant, aber es ist ein bisschen sparsam mit Erklärungen, um OP bei seiner Frage zu helfen.
Feynman sagte, es sei besser, die vollständige Antwort nicht zu kennen und sich zu fragen, als die vollständige Antwort zu kennen und nicht zu wissen, dass sie falsch ist. Wenn Sie für Antworten aus Kochbüchern stimmen und nicht für Vorschläge, dann lehren Sie nicht, wie man denkt, sondern geben nur Daten wieder. Wenn Sie seine ersten Antworten verstehen, verstehen Sie mich.
@ TonyStewart eigentlich ist dies eine Q & A-Site, auf der das Afür "Antworten" steht, nicht für "Argumentieren" :) Es geht nicht nur um das OP, Sie sollten allen Lesern wertvolle Inhalte hinterlassen