www.mikrocontroller.net

Forum: Projekte & Code Random


Autor: Michael U. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

anbei ein Routine, die ich irgendwo im Netz gefunden habe.
Da ich ziemlich lange suchen durfte, hilft es vielleicht auch anderen.

Das Ding erzeugt Pseudo-Zufallszahlen, als Seed sollte man irgendwie
mit einem zufälligen Wert <> 0 laden, ADC auslesen oder sowas,
sonst bekommt man immer die gleiche Folge.

Ich brauchte das für eine hochwichtige Sache: meine Frau hat ein
Modell-Puppenhaus. Das hat einen Kamin. Der sollte "brennen".
Das, was man als Flackerlicht im Modellhandel bekommt, war ein Witz.

Nun flackern 15 LED und 3 sind ständig an, 6x gelb, 6x rot und 6x
orange. Angtrieben von einem ATiny2313, der gerade rumlag.

Sieht jetzt sowas von echt aus. :-))

Kann ich jetzt in Ruhe den Logikanalyzer/Oszi/was-weiß-ich
weitermachen...

Gruß aus Berlin
Michael

Autor: Florian P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

tolle sache, suche auch schon ne weile nach so etwas..
kannst du mir fotos vom fertigen teil, bzw. auch schaltpläne schicken.
wäre sehr nett.

gruß aus österreich
Florian

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier ne C-Variante eines ganz ordentlichen Zufallszahlengenerators.
SINT32 ist ein 32Bit signed-integer Typ.

Cheers
Detlef

#define IA ((SINT32)16807)
#define IM ((SINT32)2147483647)
#define IQ ((SINT32)127773)
#define IR ((SINT32)2836)
#define MASK ((SINT32)123459876)


/*********************************************************************** 
*******/
SINT32 zufall() {
/*********************************************************************** 
*******/
static SINT32 idum=2;
SINT32  k;
      idum ^= MASK;
      k=(idum)/IQ;
      idum=IA*(idum-k*IQ)-IR*k;
      if (idum < 0) idum += IM;
      k=(idum);
      idum ^= MASK;
      return k;
}

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

naja, die Verteilung der Schieberegistervariante ist durchaus
brauchbar. Problem ist bei anderer Anwendung nur, eine zufällige Seed
zu erzeugen. Wenn es unabhängige Ereignisse von außen gibt (Tastendruck
z.B) ist es weiter kein Problem, Zähler laufen lassen und beim ersten
Tastendruck den Zählerstand als Seed und erledigt.
Bei meiner Flackerei soielt das weiter keine Rolle, es bemerkt niemand,
daß die Flackerfolge nach jedem Einschalten identisch ist,
Wiederholungen gibt es nicht, durch die relativ große Anzahl LEDs und
die Geschwindigkeit fällt es auch nicht auf, wenn er mal 5 Sechsen
hintereinander würfelt. ;)

Schaltplan und Bilder mach ich mal fertig, gibt es bis jetzt nicht.
3 LEDs fest an Spannung, der Rest an alle Portpins. Jeweils 1k davor,
ich hatte LowCurrent-LEDs.
Aufgelötet sind die 3mm LEDs auf ein kleines Stück Lochraster, je
4,3,4,3,4 als Karo so eng es geht, Hosenträger direkt rangelötet,
Atmel, Vorwiderstände, ein 7805 und DIL-Brückengleichricher mit 220µ
auch auf einem kleinen Stück Lochraster hinten außen an der
Puppenhaushauswand.

Muß sowiso noch ein zweites zusammenlöten.......

Gruß aus Berlin
Michael

Autor: Hobbylöt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Michael,

ich habe mal versucht nach meinem Verständnis einen Schaltplan zu
erstellen.
Hoffe es sollte so funktionieren.

Gruss Marcel (auch aus Berlin)

Autor: Michael U. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke, so sieht es aus. :)

Ich habe mal schnell 2 Sachen verändert, den 2313 habe ich nur in ATiny
umbenannt.

Bei mir ist ein ATiny2313 drauf, der läuft mit internem Clock, spart
Quarz usw. Eigentlich sollte erst ein AT90S1200 rauf, der machte aber
Probleme beim Reset und dann wurden es mir zuviel Teile...

Gruß aus Berlin
Michael

Autor: autoconvert (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So sieht's aus.

Autor: Hmm... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ob der Michael hier noch mitliest nach über 2 Jahren? ;)

Auch wenn ein sporadischer Reset bei dieser Anwendung nicht groß 
auffällt trotzdem drei kleine Hinweise:

1. Anscheinend fehlt am Controller der 100nF Blockkondensator.

2. Am Reset-Pin würde ich einen Pull-Up vorsehen. Hatte schon ein paar
   ATtinys die sich ohne ihn manchmal spontan selbst Resetet haben.

3. Als Regler muss es unbedingt ein 7005 sein, die kleinen 78L05 packen
   die knapp 200mA Durchschnittslast nicht. Vielleicht auch hier ein
   etwas größerer Puffer-Elko dran.

Ansonsten: Schönes Projekt, wäre was für meine Freundin ;) Hast du schon 
ein Video davon aufgenommen?

Ist ja bald WIEDER Weihnachten...

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ja, lese und schreibe hier immernoch mit.

Zu 1. den 100n gibt es im Original, den Schaltplan gab es aber erst hier 
für das Forum.

Zu 2. ist eine schon uralte Diskussion dazu auch hier im Forum.
Meine AVR haben bis jetzt immer 100n gegen GND bekommen und nie Probleme 
gemacht. Das kann aber jeder halten, wie er will...

zu 3. ist auch dem Ermessen der Bastlers überlassen. Bei mir wohnt ein 
7805 drin, Lade-C ist bei mir mit 220µ ausreichend, die Eingangsspannung 
ist ohnehin mit fast 14V ziemlich hoch (9V aus einem Universalnetzteil, 
daß auch andere Beleuchtung im Puppenhaus bersorgt.

Ich mach nachher mal ein Video und stell es hier rein. :-)

Gruß aus Berlin
Michael

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mal ein kurzes Video vom Kamin.
http://www.roehres-home.de/kamin.avi
Das Al*i-Spielzeug hat leider etwas eigene Ansichten zur Farbe. ;-)

Gruß aus Berlin
Michael

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du mußt die Szene mehr ausleuchten damit die Farben besser zur geltung 
kommen sosnt überstrahlen die LEDs alles (gabs irgenwo schonmal ne 
Diskussion zu)

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wahnsinn wie echt das Flackermuster wirkt! :) Nicht schlecht :D

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@Läubi Mail@laeubi.de: das ist mir schon klar. :-)
War mir aber zugegebenermaßen den Aufwand nicht wert, ich denke, das 
Muster kommt auch so rüber und die Farbe kann man ja durch Auswahl der 
LEDs noch beeinflussen.
Meine ganz am Anfang angegebene Mischung passt ganz gut.

Nachtrag: wer jetzt programmierwütig ist, könnte sicher auch 3 
PWM-Kanäle und nur 3 LEDs nehmen und dann die PWM passend verknüpfen. 
Dann reicht ein kleiner Tiny.

Aber dann ist der Schattenwurf durch die Holzscheite im Kamin nicht so 
abwechsungsreich...

Gruß aus Berlin
Michael

Autor: Klaus R. (klaus2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...dafür darsft du unter Garantie mindest eine Woche machen, was DU 
willst. Sieht gut aus, sehr hoher "WAF" vermutlich!

Klaus.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.