Ich schon wieder : ...
Ich möchte/soll/muss einen Lauftext mit FastLED->LEDMatrix->LEDText Über 4 Matrizen Laufen lassen das Problem dabei ist das jede Matrix einen eigenen Pin Hat das ganze läuft mit auf einem Tennsy3.2 der steckt auf einem Teensy 3.2 OctoWS2811 Adaptor an diesem sind über die RJ-45 Buchsen 5 Adafruit NeoPixel NeoMatrix 8x8 - 64 RGB LED Pixel Matrix Angeschlossen, die Matrizen sind zu einem Würfel (unten Offen, steht da auf einem Gehäuse) angeordnet über die 4 Seitlichen soll der Text laufen.
Ich habe mit LEDMatrix schon ein paar Sketches für diesen Aufbau geschrieben da konnte ich die Einzelnen Matrizen auch problemlos einzeln ansprechen aber mit LEDText geht das scheinbar nicht so einfach.
Bis morgen sollte das mit dem Lauftext funktionieren stehe daher etwas unter Zeitdruck und bin echt Ratlos..
Hier mal ein Paar Code Fetzen:
#define MATRIX_OBEN 20
#define MATRIX_VORNE 8
#define MATRIX_RECHTS 7
#define MATRIX_HINTEN 21
#define MATRIX_LINKS 6
Der text soll Vorne starten und nach Links laufen einmal rum sodass er rechts endet.
#include <FastLED.h>
#include <LEDMatrix.h>
#include <LEDText.h>
#include <FontMatrise.h>
#define MATRIX_VORNE 8
#define FARB_REIHENFOLGE GRB
#define LEDTYP WS2812
#define MATRIX_WIDTH 8
#define MATRIX_HEIGHT 8
#define MATRIX_TYPE VERTICAL_MATRIX
#define ANZAHL_LEDS 320
cLEDMatrix<MATRIX_WIDTH, MATRIX_HEIGHT, MATRIX_TYPE> leds;
cLEDText ScrollingMsg;
const unsigned char TxtDemo[] = { EFFECT_CHAR_LEFT EFFECT_SCROLL_DOWN " EXAmpl"};
void setup()
{
FastLED.addLeds<LEDTYP, MATRIX_VORNE, FARB_REIHENFOLGE>(leds[0], leds.Size());
FastLED.setBrightness(30);
ScrollingMsg.SetFont(MatriseFontData);
ScrollingMsg.Init(&leds, leds.Width(), ScrollingMsg.FontHeight() + 1, 0, 0);
ScrollingMsg.SetText((unsigned char *)TxtDemo, sizeof(TxtDemo) - 1);
ScrollingMsg.SetTextColrOptions(COLR_RGB | COLR_SINGLE, 0x00, 0x00, 0xff);
FastLED.clear(true);
}
void loop()
{
if (ScrollingMsg.UpdateText() == -1)
ScrollingMsg.SetText((unsigned char *)TxtDemo, sizeof(TxtDemo) - 1);
else
FastLED.show();
delay(80);
}
Das ist mein Code bis jetzt das Funktioniert auch der Text läuft von rechts nach links über die vordere Matrix sobald ich aber versuche noch weitere Matrizen einzubinden funktioniert nichts mehr.
#include <FastLED.h>
#include <LEDMatrix.h>
#include <LEDText.h>
#define MATRIX_OBEN 20
#define MATRIX_VORNE 8
#define MATRIX_RECHTS 7
#define MATRIX_HINTEN 21
#define MATRIX_LINKS 6
#define FARB_REIHENFOLGE GRB
#define LEDTYP WS2812
#define MATRIX_WIDTH 8
#define MATRIX_HEIGHT 8
#define MATRIX_TYPE VERTICAL_MATRIX
#define ANZAHL_LEDS 320
#define t 50
#define t2 80
#define t3 100
#define t4 80
#define t5 100
#define t6 5
#define t7 500
cLEDMatrix<MATRIX_WIDTH, MATRIX_HEIGHT, MATRIX_TYPE> leds;
CRGB ledso[ANZAHL_LEDS/5];
CRGB ledsv[ANZAHL_LEDS/5];
CRGB ledsr[ANZAHL_LEDS/5];
CRGB ledsh[ANZAHL_LEDS/5];
CRGB ledsl[ANZAHL_LEDS/5];
void setup() {
FastLED.addLeds<LEDTYP, MATRIX_OBEN, FARB_REIHENFOLGE>(ledso, ANZAHL_LEDS/5);
FastLED.addLeds<LEDTYP, MATRIX_VORNE, FARB_REIHENFOLGE>(ledsv, ANZAHL_LEDS/5);
FastLED.addLeds<LEDTYP, MATRIX_RECHTS, FARB_REIHENFOLGE>(ledsr, ANZAHL_LEDS/5);
FastLED.addLeds<LEDTYP, MATRIX_HINTEN, FARB_REIHENFOLGE>(ledsh, ANZAHL_LEDS/5);
FastLED.addLeds<LEDTYP, MATRIX_LINKS, FARB_REIHENFOLGE>(ledsl, ANZAHL_LEDS/5);
FastLED.setBrightness(15);
FastLED.clear(true);
delay(500);
FastLED.showColor(CRGB::Red);
delay(1000);
FastLED.showColor(CRGB::Green);
delay(1000);
FastLED.showColor(CRGB::Blue);
delay(1000);
FastLED.showColor(CRGB::White);
delay(1000);
FastLED.clear(true);
}
void loop(){
ledso[56] = CRGB::Red;
ledsv[57] = CRGB::Blue;
ledsr[48] = CRGB::White;
ledsh[58] = CRGB::Yellow;
ledsl[49] = CRGB::Green;
FastLED.show();
(...)
}
so konnte ich bis her immer alle einzeln ansteuern das hat immer gut funktioniert
ScrollingMsg.Init(&leds, leds.Width(), ScrollingMsg.FontHeight() + 1, 0, 0);
in der Zeile müsste ich mich doch eigentlich auf eine andere Matrix beziehen können ?! wenn ich hier aber etwas ändere also wie oben
#include <FastLED.h>
#include <LEDMatrix.h>
#include <LEDText.h>
#define MATRIX_OBEN 20
#define MATRIX_VORNE 8
#define MATRIX_RECHTS 7
#define MATRIX_HINTEN 21
#define MATRIX_LINKS 6
#define FARB_REIHENFOLGE GRB
#define LEDTYP WS2812
#define MATRIX_WIDTH 8
#define MATRIX_HEIGHT 8
#define MATRIX_TYPE VERTICAL_MATRIX
#define ANZAHL_LEDS 320
#define t 50
#define t2 80
#define t3 100
#define t4 80
#define t5 100
#define t6 5
#define t7 500
cLEDMatrix<MATRIX_WIDTH, MATRIX_HEIGHT, MATRIX_TYPE> leds;
CRGB ledso[ANZAHL_LEDS/5];
CRGB ledsv[ANZAHL_LEDS/5];
CRGB ledsr[ANZAHL_LEDS/5];
CRGB ledsh[ANZAHL_LEDS/5];
CRGB ledsl[ANZAHL_LEDS/5];
void setup() {
FastLED.addLeds<LEDTYP, MATRIX_OBEN, FARB_REIHENFOLGE>(ledso, ANZAHL_LEDS/5);
FastLED.addLeds<LEDTYP, MATRIX_VORNE, FARB_REIHENFOLGE>(ledsv, ANZAHL_LEDS/5);
FastLED.addLeds<LEDTYP, MATRIX_RECHTS, FARB_REIHENFOLGE>(ledsr, ANZAHL_LEDS/5);
FastLED.addLeds<LEDTYP, MATRIX_HINTEN, FARB_REIHENFOLGE>(ledsh, ANZAHL_LEDS/5);
FastLED.addLeds<LEDTYP, MATRIX_LINKS, FARB_REIHENFOLGE>(ledsl, ANZAHL_LEDS/5);
FastLED.setBrightness(15);
FastLED.clear(true);
so meine Matrizen alle einzeln definiere und dann in der Zeile
ScrollingMsg.Init(&ledsv, leds.Width(), ScrollingMsg.FontHeight() + 1, 0, 0);
//Oder
ScrollingMsg.Init(&leds, ledsv.Width(), ScrollingMsg.FontHeight() + 1, 0, 0);
schreibe kommt beim oberen : "exit status 1
no matching function for call to 'cLEDText::Init(CRGB (*)[64], int, int, int, int)'"
und beim unteren : "exit status 1
request for member 'Width' in 'ledsv', which is of non-class type 'CRGB [64]'"
Bräuchte echt Hilfe ....
Falls sich jemand wundert der den Beitrag schon gelesen hatte ja, ich hab alles nochmal neu geschrieben.
Gruß Flo