#include ///////////////zeit test byte minute =12; byte hour=14; byte dayOfMonth=28; byte month=10; /////////////// zeit test ende // (pin-start nr der reihen/spalten) const int start_rows = 9; const int start_cols = 1; // anzahl der reihen/spalten const int num_rows = 8; const int num_cols = 8; // text-"fließ"-geschwindigkeit const int num_prts = 80; // versuch mit cast const char text[] = {(char)minute}; // textarray // dies ist die funktionierende Spalte: const char text[] = {"hier gebe ich den anzuzeigenden text ein"}; // bitmaske für den vergleich const char bitmask = B000001; void setup() { // reihen setzen for(int i = 0; i < num_rows; i++) { pinMode(start_rows + (i), OUTPUT); digitalWrite(start_rows + (i), LOW); } // zeilen setzen for(int i = 0; i < num_cols; i++) { pinMode(start_cols + (i), OUTPUT); digitalWrite(start_cols + (i), LOW); } } void loop() { // textlauf-zählerschleife for(int s = 0; s < sizeof(text)*num_cols; s++) { // schleifen widerholung für stabiles bild for(int t = 0; t < num_prts; t++) { // reihenzähler for(int r = 0; r < num_rows; r++) { digitalWrite(start_rows + (r), HIGH); // iterate cols for(int c = 0; c < num_cols; c++) { // c+s muss innerhalb der anzahl an spalten im textarray sein if(c+s < sizeof(text)*num_cols) { // display mit daten aus libary füllen if((font8x8_basic[text[(c+s)/num_cols]][r] >> (c+s)%num_cols) & bitmask) digitalWrite(start_cols + (c), HIGH); else digitalWrite(start_cols + (c), LOW); } // leeres display nach textdurchlauf else { // zeilen ausschalten bis display leer ist digitalWrite(start_cols + (c), LOW); } } for(int c = 0; c < num_cols; c++) { // digitalWrite(start_cols + (c), LOW); } digitalWrite(start_rows + (r), LOW); } } } }