Forum: Mikrocontroller und Digitale Elektronik Leuchtstoffröhre simulieren


von Rangi J. (rangi)


Lesenswert?

Hallo Forum,
ich möchte dieses typische Flackern, vor allem von alten 
Leuchtstoffröhren beim Einschalten in Software simulieren. Hat dazu 
jemand mal einen Algorithmus? So in der Art: erstmal nicht leuchten, 
dann zufälliges kurzes Flackern, irgendwann nach 2 bis 5 Sekunden an.
Wenn nicht gibt es Mitschnitte, Oszibild oder Diagramm eines typischen 
Einschaltflackerns?

Rangi

von Manfred G. (magroma)


Lesenswert?

Wozu braucht man das? Dann nimm doch eine Röhre und zeichne mit einem 
Speicheroszi den Einschaltstrom auf.

von ich (Gast)


Lesenswert?

Wie wäre es mit Zufall?
Eine "typische" Leuchtstofflampe gibts nicht, und deswegen auch kein 
typisches Flackern. Warte einfach kurz, dann Flackern per Zufall und 
nach paar Sekunden volle Durchschaltung.

von Rangi J. (rangi)


Lesenswert?

@magroma: für den Modellbau
@ich: Zufall hab ich schon probiert, sieht aber nicht echt aus, eben wie 
zufälliges Flackern, aber nicht wie das Einschaltflackern.
Deshalb wollte wissen ob jmd ein Oszibild davon hat.

von Manfred G. (magroma)


Lesenswert?

Du kannst doch mit einem Controller das optische Bild einer zündenden 
Leuchtstofflampe mit einem Fotowiderstand aufzeichnen und dann den 
gespeicherten Signalverlauf auf eine LED wieder ausgeben. Optisch müsste 
dann eine Ähnlichkeit vorhanden sein.

von Michael K. (aemkai)


Lesenswert?

ich schrieb:
> Eine "typische" Leuchtstofflampe gibts nicht, und deswegen auch kein
> typisches Flackern. Warte einfach kurz, dann Flackern per Zufall und
> nach paar Sekunden volle Durchschaltung.

Naja, das Flackern ist Zufall mit einigen Randbedingungen und damit doch 
eher typisch.
Also als Erstes kein reines ein-/ausschalten, sondern am Anfang auch mal 
glimmen mit niedrigerer Intensität, dann verlöschen, wieder glimmen, 
verlöschen .... bis Sie an ist.
Dann kann der Strom und damit die Helligkeit auch nicht beliebig schnell 
ansteigen/abfallen und so weiter.
Und dann eben das Zünden erst an den Spitzen, danach komplett - ist aber 
dann auch eine Frage, wie es nachgebildet werden soll.

Von daher wäre Nachmessen das Sinnvollste oder - wenn keine Lust - dann 
eben "nach Gefühl" implementieren.

: Bearbeitet durch User
von ich (Gast)


Lesenswert?

Rangi Jones schrieb:
> @magroma: für den Modellbau
> @ich: Zufall hab ich schon probiert, sieht aber nicht echt aus, eben wie
> zufälliges Flackern, aber nicht wie das Einschaltflackern.
> Deshalb wollte wissen ob jmd ein Oszibild davon hat.

Dann siehts doch auch immer wieder gleich aus, wenn du nur etwas 
aufgezeichnetes wiedergibst.
Spiel doch mal ein wenig mit dem Zufall rum, auch mehrere Zufallszahlen 
miteinander verknüpfen usw. Dann wirst du auch ein wirklich zufälliges 
Flackern erzeugen können. Ist nicht schwer, und man bekommt echt 
aussehende Zündvorgänge. Bei Kerzenbeleuchtung ist es das gleiche. Nur 
ein- und ausschalten per Zufall sieht unecht aus. Eine PWM PWM für die 
Helligkeit und die dann per Zufall steuern...

von Harald W. (wilhelms)


Lesenswert?

ich schrieb:

> Bei Kerzenbeleuchtung ist es das gleiche. Nur
> ein- und ausschalten per Zufall sieht unecht aus.

Genau, da muss die Melodie von "Happy Birthday" zur Speisung
der LED benutzt werden. :-)

von ich (Gast)


Lesenswert?

Harald Wilhelms schrieb:
> ich schrieb:
>
>> Bei Kerzenbeleuchtung ist es das gleiche. Nur
>> ein- und ausschalten per Zufall sieht unecht aus.
>
> Genau, da muss die Melodie von "Happy Birthday" zur Speisung
> der LED benutzt werden. :-)

Gute Idee, und wenn man dann noch eine Fotodiode an einen 
Mikrofonverstärker hängt, kann man das Lied sogar hören :-)

von Samuel C. (dragonsam)


Lesenswert?

Ich hab mal eben für dich ein altes Projekt ausgegraben. Das war damals 
mit RGBW und PWM. Deshalb meine Fragen an dich:

1. Welche Sprache?
2. Nur Weiß?
3. PWM oder An/Aus?

von Kritiker (Gast)


Lesenswert?

Die grundsätzlichen Effekte lassen sich leicht simulieren, allerdings 
kommt sehr viel "Zufall" zustande, wenn die Regelelekronik des 
Vorschaltgerätes mit ins Spiel kommt, da die interagieren. Das wird sehr 
schnell chaotisch und unvorhersehbat. Das Prinzip aber ist leicht 
simulierbar.

von Rangi J. (rangi)


Lesenswert?

@ich:
ich wollte das Oszibild um mir daraus selber einen Algorithmus 
auszudenken, eigentlich nicht um das einfach nur nachzuspielen. Ich 
wollte damit die Bitzdauer und die etwaigen Pausenzeiten ableiten und 
per Zufall variiren.

@samuel:
Sprache C,
Led-Farbe ist nicht relevant, da der Algortihmus universell werden soll,
PWM ja, ich habe eine PWM mit 100 Abstufungen mit 100Hz. Meine 
Statusmaschine kann alle 20ms einen neuen PWM Wert berechnen und 
asynchron ausgeben.
Ausserdem habe ich einen Pseudo-Zufallsgenerator mit dem Seed aus einem 
frei laufenden Timer.

von Samuel C. (dragonsam)


Lesenswert?

Ok, dann hier mal mein Versuch, das an deine Umgebung anzupassen:
1
/* Werte für Grenzen der Zufallswerte (*20ms) */
2
#define aufheizen_min   50  // minimale Zeit des Heiz-Effekts
3
#define aufheizen_max  100
4
#define aus_min          2  // minimale Zeit zwischen Blitzen
5
#define aus_max         75
6
#define an_min           1  // minimale Zeit der Blitze
7
#define an_max          10
8
9
#define blitze_min       1  // Mindestanzahl der Blitze
10
#define blitze_max       6
11
12
#define h_aufheizen  44  // Helligkeit nach dem Aufheizen
13
#define h_start     100  // Helligkeit am Schluss (ganz an)
14
15
uint16_t temp_lsr;
16
uint16_t temp;
17
uint8_t blitzzähler;
18
19
temp_lsr = rand(aufheizen_max - aufheizen_min) + aufheizen_min;  // Aufheizzeit bestimmen
20
21
helligkeit_zeit(h_aufheizen , temp_lsr);                 // Funktion, die die Helligkeit gleichmäßig fadet (auf den Wert h_aufheizen über die Zeit temp_lsr)
22
23
temp = rand(blitze_max - blitze_min) + blitze_min;       // Anzahl der Blitze bestimmen
24
25
for(blitzzähler=0; blitzzähler < temp; blitzzähler++) {  // Für jeden Blitz
26
   temp_lsr = rand(an_max - an_min) + an_min;            // Blitzdauer bestimmen
27
   pwm_laden(h_start) ;                                  // Blitz starten
28
   wait(temp_lsr);                                       // Blitzdauer warten
29
30
   temp_lsr = rand(aus_max - aus_min) + aus_min;         // Blitzpause bestimmen
31
   pwm_laden(h_aufheizen);                               // Blitz beenden
32
   wait(temp_lsr);                                       // Blitzpause warten
33
}
34
35
pwm_laden(h_start);                                      // Lampe komplett einschalten

Ich war mit dem Effekt immer zufrieden. Wie du den jetzt allerdings in 
deiner Maschine umsetzt (ich nehme an, du hast eine Art 
Ablaufsteuerung/State Machine/SPS oder was auch immer im Hintergrund) 
kann ich dir leider nicht sagen :)

Die Routine war urspünglich auch mal in einer anderen Sprache, ich habe 
sie nur kurz übersetzt, also bitte sieh über Flüchtigkeitsfehler und 
unsaubere Darstellung hinweg^^

: Bearbeitet durch User
von Rangi J. (rangi)


Lesenswert?

@dragonsam:
danke für die hinweise. ich konnte zwar deinen code in der weise nicht 
verwenden, aber die zeiten sind gut. Ich habs jetzt so gemacht:
der algorithmus kommt bei einschalten dran und kann alle 20 ms 
drankommen. jedes mal bestimmt er wievel n x 20 ms vergehen, bis er 
wieder dran kommt. diese bestimmung ist, wenn "an" rand(4)+1. wenn aus, 
dann wird noch bestimmt zu welcher zeit nach dem einschalten sich der 
code befindet, innerhalb der ersten 50x20 ms = rand(64), 50..99x20ms = 
rand(16), 100..149x20 ms = rand(8), >150x20 ms = rand(4). wenn zu 
irgendeiner zeit rand(x) == 0, dann wird er ausgang dauerhaft 
eingeschaltet.
ergebnis ist ein blitzen, anfangs selten, später häufiger. bei rand(4) 
(also nach 3 sec) ist die wahrscheinlichkeit hoch, recht bald einen 0 
auszuwürfeln und die lampe einzuschalten.

von stefanus (Gast)


Lesenswert?

In meiner Küche hängt eine ganz "herkömmliche" Leuchstoffröhre an der 
Decke, die Bauart mit Bimetall/Glimmlampem-Starter und Spule.

Abgesehen von wirklich seltenen Ausnahmen startet diese Lampe immer ohne 
zu flackern gleich beim ersten Zündversuch. Das hat sich in den 
vergangenen 6 Jahren Nutzungsdauer auch nciht verändert.

Als "typisches" Bild habe ich allerdings mehrere Zündversuche im 
Gedächtnis. Vielleicht kommt das daher, dass in einem Flur oder einer 
Tiefgarage viele dieser Lampen hängen und immer irgendeine davon 
schlecht startet.

Insofern wüsste ich nicht, was man da nun simulieren sollte, damit es 
"typisch" aussieht.

von RainerK (Gast)


Lesenswert?

stefanus schrieb:
> In meiner Küche hängt eine ganz "herkömmliche" Leuchstoffröhre an der
> Decke, die Bauart mit Bimetall/Glimmlampem-Starter und Spule.
>
> Abgesehen von wirklich seltenen Ausnahmen startet diese Lampe immer ohne
> zu flackern gleich beim ersten Zündversuch. Das hat sich in den
> vergangenen 6 Jahren Nutzungsdauer auch nciht verändert.

atypischer gehts ja wohl nicht ...

Es grüßt RainerK

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
Noch kein Account? Hier anmelden.