Hallo an die Community Ich bin neue hier und gleich vorweg kein profi und habe keine Fachmännische ausbildung, bin ein Hobbybastler, kann mit einem NE555 umgehen und kann schaltpläne lesen, aber nicht immer vollständig nachvollziehen :) also bitte nicht wundern wenn ich euch nicht gleich verstehe ;-) Ich wollte einen Zufallsgenerator bauen der mir einen wert von 1 - 10 ausgibt, bzw eine LED aufleuchten lässt. Hintergrund des vorhabens ist eine uralte Glücksradbox die ich mal gesehen hatte, da dies abends echt spaß bringt in einer lustigen runde wollte ich die schaltung nachbauen... Am Foto im anhang sieht man das dazu nur 3 logik ic`s verwendet werden 74ls13, 74ls42 und 74ls90 und ein taster, der bei betätigung die led`s kurz aufleuchten lässt und dann einfach bei einer stehen bleibt, bei erneuter betätigung läuft der gleiche vorgang erneut ab und eine andere led erleuchtet. Habt ihr eine idee wie das realisert wurde, der aufbau sieht sehr simpel aus? Bin für alle ratschläge sehr dankbar...
Rainer Tschinderle schrieb: > Habt ihr eine idee wie das realisert wurde, der aufbau sieht sehr simpel > aus? > Bin für alle ratschläge sehr dankbar... Ich hab jetzt nicht kontrolliert, welche Funktionalität sich hinter diesen 74-er Nummern verbirgt. Aber oft wurde das einfach so gelöst, dass man einen Zähler mit einer hohen Rate vor sich hinzählen lässt solange zb ein Taster gedrückt ist. Lässt man den Taster los, bleibt der Zähler stehen und der aktuelle Zählerstand ist die Zufallszahl. Das ganze beruht darauf, dass du als Mensch es sicher nicht schaffst, einen Taster reproduzierbar auf zb 1/10000 Sekunde lang gedrückt zu halten. Das Zufallselement ist hier also ganz einfach der Mensch.
Rainer Tschinderle schrieb: > Angehängte Dateien > 20150424_001559.jpg > 5,27 MB Das hats jetzt schon länger nicht mehr gegeben. Ich bringe die Datei mal auf eine halbwegs vernünftige Größe... Das ist der Aufbau der Schaltung:
1 | 74ls13 --> 74ls90 --> 74ls42 |
2 | Oszillator Zähler Decoder |
:
Bearbeitet durch Moderator
Danke für die rasche antwort, das habe ich mir auch gedacht das der zufall hier der mensch ist. Also die ICs sind LS13: 4 input nand schmitt trigger LS42: BCD to dezimal decoder LS90: Decade Counter, divide by twelve Die grundfunktion der bausteine kann ich nachvollziehen aber die logik dahinter daraus einen zufallsgenerator zu produzieren fehlr mir leider. Ich habe mir die datenblätter besorgt und auch versucht die eingänge und ausgänge nachzuvollziehen aber ohne fundiertem grundwissen wird das wohl nichts. Anders ausgedrückt ist mir das einen level zu hoch, leider. Bin schon lange am überlegen in dieser richtung einen grundkurs zu besuchen wenns sowas gibt, aber beruflich bleibt mir da leider nicht allzuviel zeit dazu. Villeicht hat jemand schonmal ein ähnliches projekt realisiert und dazu noch den schaltplan rumliegen das wäre mir eine große hilfe, ich denke kaum das ihr euch die mühe antun wollt mir einen crashkurs in ic logik zu geben ;)
Rainer Tschinderle schrieb: > Die grundfunktion der bausteine kann ich nachvollziehen aber die logik > dahinter daraus einen zufallsgenerator zu produzieren fehlr mir leider. Es gibt auch keine. Das ganze ist einfach nur ein Zähler, der vor sich hinzählt. Wenn du den Oszillator abklemmst und durch was eigenes ersetzt, zb eine Lichtschranke, dann kannst du damit Schafe zählen, die durch ein Tor laufen :-) (Ok da gibts noch technische Probleme weil Schafe Beine haben, aber vom Prinzip). Zum Zufallszahlengenerator wird das ganze erst durch den Oszillator, der so schnell schwingt (und die Schwingungen vom Zähler gezählt werden), dass ein Benutzer den exakten Zeitraum, in dem der Zähler zählen soll, nicht mehr kontrollieren kann. Wenn du den Oszillator so einstellen würdest, dass der in 1 Sekunde genau 1 Schwingung ausführt, dann hättest du eine Uhr. :-) Je nach Dimensionierung bzw. Anwandlung kann die Schaltung also für verschiedene Dinge eingesetzt werden. Das sich hier ein Zufallsgenerator ergibt liegt einzig an der Dimensionierung - in diesem Fall vom Oszillator. > Ich habe mir die datenblätter besorgt und auch versucht die eingänge und > ausgänge nachzuvollziehen aber ohne fundiertem grundwissen wird das wohl > nichts. Ordne den Bausteinen Funktionalitäten zu. Wie Lothar schon angegeben hat. Es gibt * Oszillator * Zähler * Aufbereitung für die Anzeige Erst mal die Schaltung in diese Blöcke aufteilen. Und dann ergründen, wie jeder Block realisiert ist. Wobei die Teile Zähler und Anzeige bereits mehr oder weniger vollständig innerhalb der jeweiligen IC realisiert sind. Beim Zähler ist allenfalls noch interessant: wie weit zählt er, nutzt er seinen möglichen Zählbereich komplett aus und wenn nicht, wie wird er bei erreichen einer bestimmten Zahl wieder auf 0 zurück gesetzt.
:
Bearbeitet durch User
Der LS13 gibt ein Taktsignal mit ein paar Kiloherz aus, das vom Zähler gezählt und über den Decoder angezeigt wird. Das selbe kannst Du auch mit einem NE555 als Taktgeber und einem 4017 als Zähler bauen. Der Trick dabei ist, daß Du nie gleichlang auf den Taster drückst und dadurch die Anzahl der gezählten Takte mehr oder weniger zufällig ist.
Erinnert mich an die elektronische Würfelschaltung von früher... Der Zähler zählt von 1-n und startet entweder am Ende neu oder bekommt vorher durch eine Logic einen Reset (z.B. bei dem elektronischen Würfel wenn er die 7 erreicht). Der Oszillator läßt ihn einfach nur schnell durchlaufen solange der Taster die Verbindung zwischen Oszillator und Zähler verbindet. Das Letzte IC ist die Aufbereitung für die Anzeige.
OK, aber bei ein paar kHz reicht doch 0-9 nicht aus um die frequenz anzuzeigen? oder zählt der zähler nur in einem bestimmten zeitabschnitt? bei 10 khz heist das doch ich habe 10000 impulse pro sekunde?
Rainer Tschinderle schrieb: > OK, aber bei ein paar kHz reicht doch 0-9 nicht aus um die frequenz > anzuzeigen? Man will doch auch gar nicht die Frequenz anzeigen. > oder zählt der zähler nur in einem bestimmten zeitabschnitt? Solange der Taster gedrückt ist. > bei 10 khz heist das doch ich habe 10000 impulse pro sekunde? genau. Und kannst du eine Taste gezielt genau 0.01056 Sekunden drücken? Also ich kann das nicht. Wenn ich aber die Taste 0.01058 Sekunden gedrückt halte, dann krieg ich schon ein anderes Ergebnis an der Anzeige. Nur dass ich natürlich es nicht hinkriege die 10000-tausendstel Sekunden gezielt zu beeinflussen :-) Bei Zehntelsekunden wirds schon schwer. Alle weiteren Kommastellen kann ich nicht mehr gezielt steuern. Das ganze ist nichts anderes als eine Variation des Kinderspiels: der eine zählt still vor sich hin und der andere sagt 'Halt'. Nur eben viele tausend mal schneller gezählt und nur solange (still) gezählt, wie der andere zb die Luft anhalten kann.
:
Bearbeitet durch User
Rainer Tschinderle schrieb: > Die grundfunktion der bausteine kann ich nachvollziehen aber die logik > dahinter daraus einen zufallsgenerator zu produzieren fehlr mir leider. Uns auch, solange Du keinen Schaltplan zeigst. Meine Glaskugel sagt mir, das Du mit dem 7413 einen Oszillator gebaut hast, mit dem Du den 7490 ansteuerst?
lol, ich hab das ding ja nicht gebaut, aber ich werde mich am wochenende daran versuchen :) mal sehen was ich mit hilfe von google und fachkundigen personen auf die reihe bekomme... der ansatz mit dem ne555 gefällt mir besser da ich mit dem ein wenig umgehen kann da ich mir damit schon ne pwm seteuerung und ähnliche schaltungen aufgebaut habe... komm nur nicht mit dem zähler ganz klar, das der dann an den 4 ausgängen einen BCD code erzeugt den ich dann in dezimal umwandle ist mir wieder klar, nur eben wie der zählt nicht so ganz :) achja, hätte ich doch lieber die htl besucht...
Kurzer Einwurf hier, weil zum Thema passend: Angenommen ich habe einen Zufallsgenerator per Software (meinetwegen aus der avr-libc). Als Seed werden ADC-Rauschen oder eben Tastendrücke verwendet. Ich lasse mir zyklisch die Zufallszahlen an den PC schicken. Kann ich die Güte dieser Zufallszahlenverteilung irgendwie bewerten? Also sprich, ich lass den Controller 1000000 mal würfeln. Wie finde ich dann Muster in den Ergebnissen?
Franz schrieb: > Wie finde ich dann Muster in den Ergebnissen? Wenn es nach so wenigen Würfelvorgängen schon ein Muster gibt: nur über irgendeine Autokorrelation, weil du ja das Muster mit sich selbst vergleichen willst... Natürlich kannst und solltest du du auch Häufigkeiten/Verteilungen oder sonstige Merkmale beachten.
Pin 5: +5V Pin 10: GND Pin 14: Input A Pin 1: Input B Qa mit Input B verbinden Takt dann über Input A Anordnung der Ausgänge wie im Datenblatt (Qd,Qc,Qb,Qa(LSB)) Wird Qd mit Input A Verbunden, ist es zusätzlich ein Teiler. Takt dann über Input B und Anordnung der Ausgänge wie im Datenblatt (Qa,Qd,Qc,Qb(LSB)) Resetpins zum Einschränken des Zählers (siehe Datenblatt): Pin 2: R0(1) Pin 3: R0(2) Pin 6: R9(1) Pin 7: R9(2) Sollten zum Zählen in einer mit COUNT beschriebenen Konfiguration verdrahtet sein.
Der 74xx13 (darf auch ein HC sein) hat zwei Gatter, eines kann man mit R und C zu einem Rechteckgenerator beschalten, das andere kann den Taster "entprellen" - das ist hier eigentlich unnötig, Prellen erhöht nur die Zufälligkeit. Ein Gattereingang des Oszillators dient als Start/Stop-Signal und wird vom Ausgang des anderen Gatters gespeist. Am Eingang dessen ein Pull-Up-Widerstand nach Plus und der Taster nach Minus.
Also echt mal ein herzliches Danke dass ihr euch hier die Mühe macht mir so weiter zu helfen, ich habe gerade gegooglet und gesehen das wir in Villach tatsächlich einen händler haben, der logik ICs legrnd hat... werde nach der arbeit gleich mal shoppen gehen und mich dann hinter den lötkolben schwingen und mal sehen was ich so anstellen kann ;-) Selbstverständlich werde ich euch dann das fertige projekt präsentieren.
Rainer Tschinderle schrieb: > werde nach der arbeit gleich mal shoppen gehen und mich dann hinter den > lötkolben schwingen und mal sehen was ich so anstellen kann ;-) Wenn ich vorschlagen darf, bau das ganze in Etappen auf und baue es 'von hinten' nach 'vorne' auf. Fang also bei der BCD Dekodierung an. Dann mal damit spielen um zu sehen wie BCD geht. An die 4 Eingangsleitung jeweils 0 bzw 1 (also 0V bzw. 5V) anlegen und an den Ausgängen nachsehen, was die tun. Welche LED leuchtet? Du müsstest das Muster
1 | D C B A Led Nr |
2 | 0 0 0 0 0 |
3 | 0 0 0 1 1 |
4 | 0 0 1 0 2 |
5 | 0 0 1 1 3 |
6 | 0 1 0 0 4 |
7 | .... |
wiederfinden. Und bei der Gelegenheit lernst du auch gleich binäre Zahlen kennen. Wenn du das soweit hast, baust du den Zähler davor und taktest den mal von Hand (daran denken, dass du ohne weitere Vorkehrungen es kaum schaffen wirst entprellte Takte da reinzustopfen). An die Ausgänge kannst du wieder 4 LED anschliessen. Mit jedem Takt (den du zb von einem langsam laufenden 555 generierst), zählt der Zähler 1 weiter. Du siehst also an den Ausgängen
1 | Takt D C B A |
2 | 0 0 0 0 |
3 | Puls 0 0 0 1 |
4 | Puls 0 0 1 0 |
5 | Puls 0 0 1 1 |
6 | Puls 0 1 0 0 |
7 | ... |
und das kommt dir doch schon sehr bekannt vor. Wenn man das in den Dekoder steckt ...... dann drehst du die Taktrate mal hoch. Immer weiter und weiter. So lange, bis du optisch nicht mehr mitkommst. Und dann stellst du dir vor, was wohl wäre, wenn du in der Taktzuleitung vom Zähler einen Schalter hättest, mit dem du den Takt ganz einfach nicht an den Zählerbaustein lässt, weil du den Draht unterbrichst. Und ... im Prinzip wars das schon. Du hast die Schaltung verstanden. Aber .... unbedingt aufbauen! Es sind 2 paar Schuhe, ob man was auf dem Papier hat oder ob es vor einem auf dem Steckbrett tatsächlich blinkt und Lichter an und aus gehen!
Als Alternative (so zum Spielen) kannst Du auch gleich einen Dezimalzähler, z.B. einen 74 4017 statt dem 7490 nehmen. Damit sparst Du Dir den BCD zu Dezimaldecoder. Beispiel: http://www.doctronics.co.uk/4017.htm
Rainer Tschinderle schrieb: > Hintergrund des vorhabens ist eine uralte Glücksradbox die ich mal > gesehen hatte, da dies abends echt spaß bringt in einer lustigen runde > wollte ich die schaltung nachbauen... Wenn der Generator endlich so funktioniert wie geplant, dann könnte es für den experimentierfreudigen Hobbybastler eine neue Herausforderung geben: Den Generator so zu modifizieren, dass der "Zufall" durch den Erbauer in seinem Sinne steuerbar wird! ;-)
Franz schrieb: > Kurzer Einwurf hier, weil zum Thema passend: > > Angenommen ich habe einen Zufallsgenerator per Software (meinetwegen aus > der avr-libc). Als Seed werden ADC-Rauschen oder eben Tastendrücke > verwendet. > Ich lasse mir zyklisch die Zufallszahlen an den PC schicken. > > Kann ich die Güte dieser Zufallszahlenverteilung irgendwie bewerten? > Also sprich, ich lass den Controller 1000000 mal würfeln. Wie finde ich > dann Muster in den Ergebnissen? Wenn du die Zufallszahlen sowieso in Hardware erzeugen willst, nimm Rauschen! Brauchst du sie am PC, nimm einen fertigen Generator, wie den Xorshift oder den multply-with-carry Generator, die reichen für die meisten Sachen aus. Der direkt von den Programmiersprachen vorgegebene kann im ungünstigsten Fall ein einfacher linearer Kongruenzgenerator sein, der für Spielereien reicht, aber nicht für mehr. Das verbreitetste Tool um die Güte von Zufallszahlen abzuschätzen dürfte die DIEHARD-Suite sein. Mit Autokorrelation ist es nämlich nicht getan... https://de.wikipedia.org/wiki/Kryptographisch_sicherer_Zufallszahlengenerator#Marsaglias_Diehard_Testsuite http://www.stat.fsu.edu/pub/diehard/
So, war schnell mal shoppen und hab mir die ics besorgt, auch den 4017. Glaube ich habe es jetzt verstanden... mit dem ls13 erzeuge ich ein taktsignal zb 10 khz, das heist dann, der counter zählt in einer sekunde 1000 mal von 1-10 durch was mir als bcd code ausgegeben wird und dann auf dezimal umgewandelt und die led aufleuchten lässt. Und mit dem taster lege ich das taktsignal auf den counter der solange zählt bis er kein signal mehr hat, korrekt? Aber was sind entrprellte Takte? Und ja, natürlich könnte man den zufall auch beeinflussen, das müsste dann aber unauffällig sein zb per funk oder einem Sensorschalter der Versteckt am Gehäuse montiert ist, berührungsempfindlich sozusagen...
Zb so beeinflusst, das er beim nächsten drücken des tasters nicht weiter zählt. .. könnte man doch mit einem Kondensator realisieren der sich beim berühren des empfindlichen tasters am Gehäuse auflädt und dann beim nächsten zählvorgang auf den eingang des counters ein negative Spannung, also Logik 0 anlegt und somit nicht gezählt wird...
So, Habs jetzt tatsächlich mit nem ne555 und dem cd4017 hin bekommen.... Nur is es bei der originalschltung so das die LEDs CH dem betätigen noch ganz kurz weiter laufen... Habt ihr ne Idee wie das funktioniert? Mit dem ls13 hab ich die oszilatorschaltung übrigens nicht hin bekommen ?
Das könnte ungefähr so funktionieren: (habe grad kein 'LS13 in der Bibliothek, aber das Prinzip geht auch mit 'HC132 Gattern).
Wenn in der Originalschaltung die LEDs noch weiterlaufen dann steuert der Taster den Oszillator und nicht die Verbindung zwischen Oszillator und dem Zähler. Wenn keine Impulse mehr am Zähler ankommen zählt der auch nichts. z.B. Mit einer Schaltung des 555 die bei einem Tastendruck die volle Frequenz des Oszillators bringt und beim loslassen die Frequenz langsam (1-5 s) auf 0 verringert könntest Du am Zähler dann das auslaufen des Glücksrads simulieren.
Hab nach einigengoogle versuchen folgendes Schaltbild für den 74ls13 gefunden als oszillator gefunden, aber wie beschalte ich dann das zweite gatter zum entprellen?
Rainer Tschinderle schrieb: > aber wie beschalte ich dann das zweite gatter zum entprellen? Einfach 3 der NAND-Eingänge an Vcc, den einen verbleibenden Eingang an den Ausgang des Oszillators. Und mit dem Ausgang ab in den Zähler...
Ok, das hab ich mir auch schon gedacht, aber jetzt haltet mich bitte nicht für blöd, warum läuft der oszilator nur wenn ich control auf HIGH setze? Ich hab doch durch R1 auf Pin 5 bereist ein HIGH signal, oder? Wenn die anderen 3 Pins auch ein HIGH bekommen so müsste das gatter ja eigentlich ein LOW als ausgangssignal senden? (lt. Wahrheitstabelle eines NAND Gatters) oder wie funktioniert das jetzt, blicke irgendwie nicht durch?
Genau die Schaltung meinte ich. Nach dem Oszillator sollten die Schwingungen schon sauber genug sein, da ist kein weiteres Gatter nötig. Ich dachte eher an eine einfache Entprellung mit RC-Tiefpassfilterung am Taster und anschließend das noch übrige Schmitt-Trigger-Gatter des 7413 vor dem "control"-Anschluß, um ordentliche Rechteckflanken zu bekommen. Der RC-Tiefpass besteht aus dem sowieso nötigen Pull-Up-Widerstand und einem Kondensator parallel zum Taster. Das Gatter sorgt auch für die Invertierung, damit ein geschlossener Taster nach Masse einen High-Pegel liefert.
:
Bearbeitet durch User
Also es passt jetzte wahrscheinlich nicht hier her, aber was passiert genau in der schaltung? Wenn ich spannung anlege dann lädt sich doch C1 über R1 auf, dh auf pin 5 ligt ein high pegel an, oder? Auf pin 1,2 und 4 liegt bei geöffnetem schalter sozusagen ein low pegel, dann müsste das gatter ja eigentlich schalten und am ausgang ein high signal anliegen? Bitte nicht wundern das ich da nicht so sattelfest bin, aber bisher hat mir das noch niemand wirklich erklärt. Wenn ich den Ablauf von so Grundeinfachen sachen einmal verstehe dann wird es mir auch leichter fallen in anderen schaltungen besser nachvollziehen zu können, was genau passiert?
Hallo Rainer, Rainer Tschinderle schrieb: > Wenn ich spannung anlege dann lädt sich doch C1 über R1 auf, dh auf pin > 5 ligt ein high pegel an, oder? Du hast da wohl ein wichtiges Detail übersehen: der Widerstand, über den der Kondensator geladen wird, liegt nicht an (+) der Versorgungsspannung, sondern am Ausgang des Gatters! Dadurch wird der Kondensator geladen, wenn der Ausgang "High" ist und entladen, wenn der Ausgang "Low" ist. Durch die Schmitt-Trigger-Eigenschaft (auch ein wichtiges Detail dieser Schaltung!) wird der Kondensator also bis zur Low->High Triggerschwelle (z.B. 1,6V) aufgeladen, der Gatterausgang geht auf Low (vorausgesetzt, dass an den anderen Eingängen High anliegt!). Nun wird der Kondensator entladen, bis die High->Low Schwelle erreicht ist (z.B. 1,2V) -> der Gatterausgang geht wieder auf High und das Spiel beginnt von vorn - der Oszillator schwingt!
:
Bearbeitet durch User
Hallo, also vielen herzlichen Dank an alle die mir da weitergeholfen haben und auch einiges erklärt haben. Ich habe es jetzt doch mit dem NE555 realisiert da der 74LS13 nur zwischen 6-8 Volt ein Signal generiert hat, der 555er ist ad etwas unempfindlicher. Habe auch den steuerbaren zufall ;) umgesetzt, aber etwas vereinfacht mittels IR empfänger der mir den reset pin des cd4017 auf VCC schaltet und somit den zähler zurücksetzt... Werde noch einen Schaltplan aufzeichnen und hier Posten für alle die es interessiert.
Rainer Tschinderle schrieb: > da der 74LS13 nur zwischen 6-8 Volt ???? Die 74LS-Familie darf man an solchen Spannungen gar nicht betreiben! Die benötigen 5V Versorgungsspannung.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.