2. Konfiguration der wwFlipGFX-Library

Die wwFlipGFX-Library ist universell für alle meine Hardwarelösungen geeignet. Für die eingesetzte wwFlip Steuerplatine und das verwendete Flip-Dot-Modul muss sie konfiguriert werden. Damit man dies nicht in jedem seiner Programme wiederholt einstellen muss - und dabei vielleicht Fehler macht - gibt es eine Konfigurationdatei im Ordner der wwFlipGFX-Library. Hat man das einmal erledigt, funktionieren alle Beispielprogramme ohne jegliche Änderungen "out of the box".

Speicherort der wwFlipGFXConfig.h

Die Arduino IDE legt die Library im Windows Ordner C:\Users\Rainer\Documents\Arduino\libraries\wwFlipGFX\ bzw. auf dem MAC unter: ~/Documents/Arduino/libraries/wwFlipGFX) ab.

Speicherort der wwFlipGFXConfig.h auf meinem Windows 8 System

Speicherort der wwFlipGFXConfig.h auf meinem Windows 8 System

Der eigentliche Programmcode jeder Arduino Library liegt in dessen Unterordner src (source). Hier öffnet man die Datei wwFlipGFXConfig.h mit einem beliebigen Texteditor wie dem "Editor" bei Windows oder "TextEdit" auf dem MAC. Für Windows empfehle ich das kostenlose notepad++.

PS: Wer einen schnellen Funktionsüberblick über eine beliebige Arduino Library erhalten möchte, der wird ebenfalls im src Ordner einer jeden Library fündig. Dort muss es immer eine Datei mit Namen der Library und der Endung .h geben. Hier ist das die wwFlipGFX.h. In dieser Datei müssen für den Compiler alle verfügbaren Funktionen und Schlüsselworte definiert werden. Nette Programmierer fügen in die .h auch kurze Bemerkungen ein.

Steuerplatine und Dot-Modul

Achtung Neuere Versionen der wwFlipGFXConfig.h (Config) können von dieser Beschreibung (Stand 05/2020) abweichen - die Struktur bleibt dabei aber gleich.

Beim Kompilieren eines Arduino Programms öffnet der Kompiler die wwFlipGFXConfig.h und merkt sich alle durch #define eingestellten Schlüsselwörter. Über diese #defines wird anschließend die Codeerstellung passend zur Hardware durchgeführt. Alle erlaubten Schlüsselwörter wie z.B. PCB_BROSE19 sind bereits in der Config aufgelistet, aber durch die Kommentarzeichen "//" auskommentiert = unwirksam gemacht.

Der folgende Ausschnitt der Config demonstriert dieses Vorgehen. Für BROSE und BUSE ist immer genau eine Steuerplatine und ein Dot-Modul auszuwählen. Hier also die Steuerplatine PCBBROSE1903 und das Dot-Modul BROSE 21x16. Für KRUEGER muss nur die Modulgröße ausgewählt werden. Die Schlüsselworte dürfen nicht verändert werden.

//=====================================================================================================================
//====================================================== runde Dots BROSE mit FP28xx Chip
 //--- Steuerplatine BROSE
   // im Laufe der Zeit habe ich verschiedene Steuerplatinenvarianten für die BROSE Module entwickelt.
   // die Platine "wwFlip07.01 parallel" und die blaue unbeschriftete Platine sind mit dieser Lib nicht kompatibel!
   // Die Platinenbezeichnung steht unten rechts unter dem Stecker
   //#define PCB_BROSEP       // "keine Bezeichnung auf Platine" = Parallele Platine für umgebauten BROSE-Module (2017)
   //#define PCB_BROSE19      // "wwFlipDirekt-0.2"  = Treiber für 19 Dots in Zeile 1 bis 19
   #define PCB_BROSE1903    // "wwFlipDirekt-0.3/-031"  = Treiber für 19 Dots in Zeile 1 bis 19 mit 4 fach Modulauswahl
   //#define PCB_BROSE19033   // "wwFlipDirekt-033"  = Treiber für 19 Dots in Zeile 1 bis 19 mit 8 fach Modulauswahl
   //#define PCB_BROSE07      // "wwFlipDirekt7-0.1", "wwFlipDirekt7-0.2" = Treiber für 7 Dots in Zeile 10 bis 16
   //#define PCB_BROSE020     // "wwFlipBROSE-0.20/-022 = Original BROSE Steuerplatine, Schieberegister, NANO, ESP, Uhr
 //------------------------------------------------------------------------------------------------------------------
 //--- Dot-Module BROSE und BUSE
   //#define BROSE21X7        // 7x21 Modul mit einfach bestückter Platine
   //#define BROSE14X19       //
   #define BROSE21X16       //
   //#define BROSE21X19vorne  // Die 21x19 Module gibt es in zwei Versionen - einfach mal ausprobieren
   //#define BROSE21X19hinten // Das Dot oben links mus durch set(1,1); ansprechbar sein - dann ist es richtig gewählt!
   //#define BROSE24X16       //
   //#define BROSE28X10       //
   //#define BROSE28X11       //
   //#define BROSE28X16       //
   //#define BROSE28x16bottom // Dots beginnen erst in Zeile = Y = 3
   //#define BROSE28X19       // passt auch für alle anderen BROSE Platinen - ist dann aber nicht optimal
   //#define BROSE28X28       // nur PCB_BROSE020
   //------------------------------------------------------------------------------------------------------------------
 

Nachtrag 30.05.2020 Da die Spaltentreiber ICs BROSE2840 und FP2800 teilweise eine unterschiedliche Ansteuerung benötigen, gibt es die Definition #define FP2800 2. Zunächst sollte man ohne diese Definition starten. Wenn ein FP2800 verbaut ist, muss diese Definition zumindest beim PCB_BROSE1903 aktiviert werden. Anschließend sollte man den Wert von FP2800 durch Versuche so klein wie möglich stellen. Bei Problemen mit einem FP2800 meldet Euch einfach bei mir.

Sonstige Einstellungen

Schaltet man zum schnellen Flippen z.B. mehrere KRUEGER Dot-Module in Reihe, auf denen jeweils eine eigene wwFlip-Platine aufgesteckt ist, muss man im MODULCOUNT die entsprechende Anzahl Dot-Module eintragen. Dann kann auf jedem Dot-Modul gleichzeitig ein Dot flippen, was die Bild-Wiederholrate erheblich steigert.

Verwendet man hingegen z.B. 4 BROSE 28x16 Module, die über 60-polige Flachbandkabel mit nur einer wwFlip-Platine angesteuert werden, wählt man das Dot-Modul BROSE112x16 aus und der MODULCOUNT bleibt weiterhin auf 1. Durch die von der Firma BROSE vorgegebene Technik kann dann auf der 112x16 großen Fläche jeweils nur genau ein Dot flippen.

//====================================================== sonstige Einstellungen 
 // --- Anzahl verbauter Dot-Module
   #define MODULECOUNT 1        // 1 für ein Modul = Defaultwert.
                                // Dieser Parameter legt auch die Feldgröße der Dot-Matrix fest = Speicherverbrauch!
//------------------------------------------------------------------------------------------------------------------ 

Dot-Module können in beliebiger mechanischer Orientierung/Drehung verbaut werden. Um das Programmieren zu erleichtern, kann man das Benutzerkoordinatensystem so einstellen, dass das Dot x=1, y=1 immer in der oberen linken Ecke liegt. Die Umrechnung zum physikalischen Dot übernimmt die Library.

Die Grenzen für die Verwendung in den Dot-Funktionen werden entsprechend angepasst. Dreht man ein 28x16 Modul (28 Dots in x und 16 Dots in y ) um 90°, so verändert sich natürlich auch die maximale Auflösung zu 16 Dots in x und 28 Dots in y.

Die in der Config eingestellte Orientierung kann jederzeit im Programmablauf, auch mehrmals durch eine entsprechende Funktion geändert werden - siehe Punkt 3 Systemfunktionen und -parameter

//====================================================== sonstige Einstellungen 
                                  // Orientierung bei Krüger:
   #define DEFAULTORIENTATION 1 // 1 = Elektronik oben
   //#define DEFAULTORIENTATION 2 // 2 = Elektronik unten
   //#define DEFAULTORIENTATION 3 // 3 = Elektronik links - von vorne gesehen
   //#define DEFAULTORIENTATION 4 // 4 = Elektronik rechts - von vorne gesehen
                                  // Orientierung bei BROSE Modulen
                                  // Standard Orientierung = Modul mit Elektronik unten = 1
//=====================================================================================================================



Wem das alles zu kompliziert erscheint, dem helfe ich gerne per Mail weiter!

keine Verfolgung durch soziale Medien

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