Pages: [1]   Go Down
Author Topic: (Gelöst) Laufschrift mit Colorduino  (Read 937 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo an alle!
Ich bin neu hier und auch in der Programmierung der Arduinos und Konsorten ganz neu.
Ich habe bereits einige kleine Programme geschrieben um mich mit C++ und den Mikroprozessoren besser zurecht zu finden.

Jetzt habe ich mir einen Colorduino mit einer 8x8 RGB Matrix gekauft und wollte damit mal eine Laufschrift programmieren.
Ich bin momentan soweit das er mir die einzelnen Buchstaben des vorgegebenen Textes aufs Matrix-Display malt.
Jedoch schaffe ich es nicht den Text jetzt z.B. nach links zu schieben.
Gibt es beim Colorduino die Möglichkeit den angezeigten Status abzufragen, zu speichern, um eine Position nach links oder rechts zu schieben und wieder ins Display zu schreiben?
Könnt ihr mir bitte einen Tip geben wie man das realisieren kann?
Meinen zusammengetragenen und teilweise selbst geschriebenen Code hänge ich an.

Danke schon mal im vorraus
mfg Feger

Code:
#include <Colorduino.h>
byte bitmap[8][1]; // Change the 1 to however many matrices you want to use.
int numZones = sizeof(bitmap) / 8; // I will refer to each group of 8 columns (represented by one matrix) as a Zone.
int maxZoneIndex = numZones-1;
int numCols = numZones * 8;
byte alphabet[][5] = {
  {0,0,0,0,0},
  {31, 36, 68, 36, 31},
  {127, 73, 73, 73, 54},
  {62, 65, 65, 65, 34},
  {127, 65, 65, 34, 28},
  {127, 73, 73, 65, 65},
  {127, 72, 72, 72, 64},
  {62, 65, 65, 69, 38},
  {127, 8, 8, 8, 127},
  {0, 65, 127, 65, 0},
  {2, 1, 1, 1, 126},
  {127, 8, 20, 34, 65},
  {127, 1, 1, 1, 1},
  {127, 32, 16, 32, 127},
  {127, 32, 16, 8, 127},
  {62, 65, 65, 65, 62},
  {127, 72, 72, 72, 48},
  {62, 65, 69, 66, 61},
  {127, 72, 76, 74, 49},
  {50, 73, 73, 73, 38},
  {64, 64, 127, 64, 64},
  {126, 1, 1, 1, 126},
  {124, 2, 1, 2, 124},
  {126, 1, 6, 1, 126},
  {99, 20, 8, 20, 99},
  {96, 16, 15, 16, 96},
  {67, 69, 73, 81, 97},
};

void setup() {
  Serial.begin(9600);
  Colorduino.Init();
  unsigned char whiteBalVal[3] = {33,63,63};
  Colorduino.SetWhiteBal(whiteBalVal);
  Colorduino.ColorFill(0,0,0);
}

void loop(){
  char msg[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  
  for (int charIndex=0; charIndex < (sizeof(msg)-1); charIndex++){
    int alphabetIndex = msg[charIndex] - '@';
    if (alphabetIndex < 0) alphabetIndex=0;
    for (int col = 0; col < 8; col++){
      for (int row = 0; row < 8; row++){
        bool isOn = 0;
        unsigned char On = 0;
        if (col<5) isOn = bitRead(alphabet[alphabetIndex][col], 7-row ) == 1;
        if (isOn == 1){On = 255;}
        Serial.println(String(col) + " " + String(row) + " " + String(isOn));
        Colorduino.SetPixel(col, row, 0, 0, On);
        Colorduino.FlipPage();
        Colorduino.SetPixel(col, row, 0, 0, On);
      }
    }
  }
}
« Last Edit: November 17, 2012, 10:04:44 pm by feger » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo!

Habe mittlerweile das Problem gelöst.
Sollte jemand interesse am Code haben, dann lasst es mich wissen.

2 Möglichkeiten:
1) Arduino UNO sendet die Daten an 2 Colorduino = 16x8 Matrix oder
2) Master Colorduino sendet die Daten an den Slave Colorduino.
Logged

Pages: [1]   Go Up
Jump to: