3. Systemfunktionen und -parameter

Systemfunktionen

Systemfunktionen dienen nicht der graphischen Dot-Manipulation. Mit ihnen legt man Eigenschaften der Library und der Dot-Ansteuerung fest. Bis auf die Funktion begin() zum Starten der Library kann man alle Funktionen auch mehrmals im Programmablauf aufrufen.

void oriSet(uint8_t orientation); // 1, 2, 3 oder 4

Stellt das Benutzerkoordinatensystem des Dot-Moduls ein. Über oriSet stellt man gewöhnlich den Ursprung x=1, y=1 in die linke obere Ecke des Dot-Moduls, unabhängig von der Ausrichtung der Hardware. Diese Funktion muss nicht aufgerufen werden. Sie überschreibt den in der wwFlipConfig.h festgelegten Wert temporär - Näheres zu den Orientierungen siehe unter 2. Konfiguration und 4. Elementare Dot-Funktionen.

void dotPowerOn();
void dotPowerOff();

Schaltet die 13,5 - 18 Volt Flippspannung zu den Treiberbausteine und zum Dot-Modul. Die Funktion dotPowerOn() muss einmal vor dem Flippen aufgerufen werden. Zum Stromsparen und zur Sicherheit vor Kurzschlüssen kann man z.B. bei einer Uhr nach jedem Stellen der Minuten per dotPowerOff() die Stromzufuhr wieder abstellen.
Auf der Platine befindet sich eine orange LED. Sie leuchtet, sobald die Flip-Spannung eingeschaltet wurde. Wen das Leuchten der LED stört, kann sie über den kleinen Schiebeschalter abschalten.

Vorwahl der Flippdauer

Für ein vollständiges Flippen eines Dots muss der Eisenkern in der Flip-Dot Spule so intensiv ummagnetisiert werden, dass das neue Magnetfeld ausreicht, um das Dot gegen alle mechanischen Widerstände in der Achse und in der Luft, sowie gegen die Schwerkraft in seine neue Position zu bewegen und dort dauerhaft fest zu halten. Die in den Eisenkern geleitete Energie ergibt sich aus dem Innenwiderstand der Spule, der angelegten Spulenspannung und der Dauer des Stromflusses.

Über den Programmcode können wir die Dauer des Stromfluss pro Flipp einstellen. Lassen wir den Strom nur sehr kurz fließen, flippt das Dot vielleicht nicht um - wir erhalten aber ein sehr reaktionsschnelles Display. Kaputtgehen kann dabei nichts! Lassen wir den Strom länger fließen, flippen die Dots sicher um. Die Hard- und Software des wwFlip verhindern dabei, dass wir die Spulen durch ein zu langes Bestromen zerstören.

Wegen der unterschiedlichen mechanischen und elektrischen Eigenschaften der Module muss man für SEIN Modul immer erst die richtige Flippdauer durch Tests ermitteln, die danach als Standard zu verwenden ist. Durch ein bewusstes Reduzieren der Flippdauer kann man künstlerische Effekte erzielen.

void setCoilFlipDuration(uint16_t flipDurationMicros);	//0-2000; KRUEGER -1500)

Setzt die Dauer des Stromimpuls pro Flip in µS (Mikrosekunden). Je kürzer die Flipdauer gesetzt wird, um so schneller kann ein Bild auf der Anzeige ausgegeben werden. Kleinere Werte als 100 µS sind eher ungewöhnlich. "Guten Modulen" genügen bei 18 Volt 200 - 500 µS - mit 1000 µS = 1 Millisekunde = 0,001 Sekunde schaffen es die meisten Module. Je höher die Flipspannung ist, um so kürzer kann geflippt werden.

Für die schnellen KRÜGER Module ist die flipDurationMicros auf eine DURATIONALLOWED von 1500 µS begrenzt. Für die BROSE Module gilt ein DURATIONALLOWED von 2000 µS.

Die BROSE Module sind so aufgebaut, dass die benötigte Flippenergie mehr oder weniger lageunabhängig ist. Nicht so bei den KRUEGER Modulen: Im "liegenden" Zustand fallen die Klappen entweder leicht herunter, oder müssen energieaufwändiger gegen die Schwerkraft nach oben hochgeklappt werden.

Mit zwei weiteren Funktionen kann man unterschiedliche Flippdauern für das schwarz Stellen und das farbig Stellen festlegen. Bei einem "liegenden" KRUEGER Modul stellen wir für das Heraufklappen eine längere Zeit ein, als für das Herunterklappen. Der maximale Grenzwerte für die flipDurationMicros bleibt bei 1500/2000 µS.

// funktioniert aktuell in der Version 2024 nicht mehr !!!
  // pflege ich bei Zeiten wieder nach ...
  setCoilSetDuration(uint16_t flipDurationMicros)
setCoilResetDuration(uint16_t flipDurationMicros)

Programmbeispiel

Ein typische Programm mit der aaFlipra-Library startet wie folgt:

// **************************************************************************
// wwFlipdot-Start-Beispiel
// 2020-05-12
//
// c by Rainer Radow, 30171 Hannover, Germany                rainer.radow.org
// **************************************************************************
#include "aaFlipra.h"
aaFlipra ww;
// ==========================================================================
void setup() {
  ww.begin();                  // setzt alle Parameter der Library
  ww.dotPowerOn();             // schaltet die Flipspannung ein
  ww.setCoilFlipDuration(500); // Flip-Dauer = 500 µs = 0,5 ms = 0,0005 s

  ... Dein Code

}
// ===========================================================================
void loop() {
  ... Dein Code
}

Systemparameter

Die aaFlipr-Library stellt vier Parameter zur Beschreibung der Dot-Modul-Größe für den allgemeinen Gebrauch zur Verfügung, die hilfreich für die eigenen Programme sind.

XCOUNTPERMODULE   // Anzahl Dots in X Richtung für ein Modul
YCOUNTPERMODULE   // Anzahl Dots in Y Richtung für ein Modul

Diese Werte werden durch die Definition des Dot-Moduls in der Config festgelegt. Für ein BROSE21X16 ergibt sich XCOUNTPERMODULE = 21 Dots und YCOUNTPERMODULE = 16 Dots. Diese Parameter kann man z.B. in For-Schleifen als oberen Grenzwert einsetzen, wie in einigen meiner Beispiele realisiert.

Die Achsen X und Y beziehen sich auf das absolute Koordinatensystem des Moduls und werden NICHT durch die Funktion oriSet() beeinflusst/gedreht!

MODULECOUNT   // Anzahl der verbauten Dot-Module

Schaltet man mehrere KRUEGER Dot-Module in Reihe, so entspricht XCOUNTPERMODULE der Breite eines einzelnen Dot-Moduls. Die Gesamtbreite des Verbunds errechnet sich aus XCOUNTPERMODULE x MODULECOUNT.

XCOUNTPERSUBMODULE  // Breite der Dot-Module im BROSE Verbund

Ein Verbund aus z.B. 4 BROSE28X16, die über nur eine wwFlip-Steuerplatine verfügen hat einen MODULCOUNT von 1 und einen XCOUNTPERMODULE von 112 - Erklärung dazu siehe auch unter Punkt 2 Konfiguration. XCOUNTPERSUBMODULE gibt uns hier den Wert 28 für die Breite der Einzelmodule an.

keine Verfolgung durch soziale Medien

Deprecated: Directive 'allow_url_include' is deprecated in Unknown on line 0