LabVIEWForum.de - LEDs mit verschiedenen Blinkfrequenzen

LabVIEWForum.de

Normale Version: LEDs mit verschiedenen Blinkfrequenzen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebes LabVIEW-Forum,

ich hoffe, ihr könnt einem Anfänger ein bisschen unter die Arme greifen.

Ich möchte gerne mehrere LEDs in unterschiedlichen Frequenzen blinken lassen.
Dazu habe ich für jede LED eine Zeitgesteuerte Schleife erstellt, die sich in bestimmter
Frequenz wiederholt. Das funktioniert so auch ganz gut. Nun möchte ich aber sicherstellen,
das die LEDs zum gleichen Zeitpunkt anfangen zu blinken.

Dann würde ich gerne zur Laufzeit die Blink-Frequenz ändern können und per Knopfdruck die
LEDs neu synchronisieren. Dazu dachte ich mir, ich könnte über ein numerisches Bedienelement
in der Haupt-While-Schleife die Periode der Zeitschleifen ändern können und dann per Knopfdruck
eine Synchronisation durchführen.

Ich habe das Blockdiagramm mal als Bild angehängt. Wie ihr seht, habe ich versucht, die Periode für
LED1 außerhalb der Haupt-Schleife über ein numerisches Bedienelement zu steuern. Mir ist schon klar,
dass das der Wert nur einmal zu Beginn ausgelesen wird. Die Steuerung für LED2 funktioniert aber auch
nichtSad

Für viele hilfreiche Tipps zur Lösung, andere Lösungsansätze bzw. auch zum Programmierstil wäre ich euch
dankbar.
OK. Ich bin ein Idiot. Die Frequenz lässt sich ja doch sehr leicht ändern (s. Anhang).

Aber vielleicht kann mir noch jemand mit der Synchronisierung helfen?
Hab' Dir mal ein kleines Bsp. gemacht. Schau' mal, ob's Dir weiterhilft....

[attachment=17421]
Lv80_img

Statt einem Notifier habe ich eine Queue mit Maximalgröße "1" verwendet. Das ist dann genau dasselbe.

Gruß Markus
' schrieb:Statt einem Notifier habe ich eine Queue mit Maximalgröße "1" verwendet. Das ist dann genau dasselbe.
@Y-P: Nein, das ist nicht dasselbe! Wenn du ein Element per Dequeue aus der Queue nimmst, dann ist sie leer. Das ist bei einem Notifier nicht so. Der ist nie leer.
Unterschied tritt in folgendem Bsp zu Tage:
Auf einen Notifier kann an verschiedenen Stellen im Programm gewartet werden, und diese Stellen bekommen alle das Setzen des Notifiers mit. Geht mit Queue nicht, zumindest nicht, wenn du irgendwo ein Dequeue verwendest. Wenn das Element aus der Queue draussen ist, ist es draussen.

Gruß, Jens
OK. Wenn ich genauer drüber nachdenke muss ich Dir Recht geben. Blush
Wenn Du aber nur an einer Stelle Deines Programms darauf wartest ist es aber zumindest sehr ähnlich. Big Grin

Gruß Markus

' schrieb:@Y-P: Nein, das ist nicht dasselbe! Wenn du ein Element per Dequeue aus der Queue nimmst, dann ist sie leer. Das ist bei einem Notifier nicht so. Der ist nie leer.
Unterschied tritt in folgendem Bsp zu Tage:
Auf einen Notifier kann an verschiedenen Stellen im Programm gewartet werden, und diese Stellen bekommen alle das Setzen des Notifiers mit. Geht mit Queue nicht, zumindest nicht, wenn du irgendwo ein Dequeue verwendest. Wenn das Element aus der Queue draussen ist, ist es draussen.

Gruß, Jens
Danke erstmal für die Denkanstöße.

Ich würde aber gerne per Knopfdruck synchronisieren können. Ist mein Ansatz denn überhaupt möglich?
Oder einfach ein dummer Fehler, den ich nicht finde?
Momentan hören die LEDs auf zu blinken, sobald ich den Sync-Button betätige.

Der Hintergrund ist übrigens, dass ich später 2 richtige LEDs blinken lassen möchte und über eine Photodiode
detektieren möchte. Die Signale sollen danach den LEDs wieder zugeordnet werden können.

Und noch ein Frage. Ich habe versucht, das Blinken der LEDs als Rechtecksignal darzustellen. Gibt es eine Möglichkeit,
dass ich über ein Event benachrichtigt werde, sobald sich der Zustand der LED ändert, damit ich das in einem Signal-Diagramm
erfassen kann? Ich habe schon versucht, die Signale in Loop 1 zu erfassen. Nur dann bekomme ich kein Rechtecksignal.

Lv80_img
' schrieb:Danke erstmal für die Denkanstöße.

Ich würde aber gerne per Knopfdruck synchronisieren können. Ist mein Ansatz denn überhaupt möglich?
Oder einfach ein dummer Fehler, den ich nicht finde?
Momentan hören die LEDs auf zu blinken, sobald ich den Sync-Button betätige.


Lv80_img

Hallo elmo,
Mit deinem Synch-Event beendest Du die Timed-Loops.
Im Anhang mal ein Lv80_img Beispiel mit den TimedLoops.
Gruß
Ralf
' schrieb:Hallo elmo,
Mit deinem Synch-Event beendest Du die Timed-Loops.
Im Anhang mal ein Lv80_img Beispiel mit den TimedLoops.
Gruß
Ralf

Oh Klasse. So wollte ich das haben. Ich mag gar nicht erzählen, wie
lang ich da schon rumprobiert habe....Smile

Danke für die Hilfe. Super Forum hier.
Referenz-URLs