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
#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);
}
}
}
}