Trick for 16-rows display using Parola :)

If you want to create 16-rows display using Parola library you can use my trick :slight_smile: This is how it works:

big_fonts_demo.zip (3.73 KB)

Looks good.

.

Hello,

nice work, can you help me i became the error message:

Arduino: 1.6.4 (Windows 8.1), Platine: "Arduino Duemilanove or Diecimila, ATmega328"

big_fonts_demo.ino: In function 'void loop()':
big_fonts_demo:41: error: 'class MD_Parola' has no member named 'synchZoneStart'
big_fonts_demo:46: error: 'class MD_Parola' has no member named 'synchZoneStart'
big_fonts_demo:63: error: 'class MD_Parola' has no member named 'synchZoneStart'
big_fonts_demo:70: error: 'class MD_Parola' has no member named 'synchZoneStart'
big_fonts_demo:75: error: 'class MD_Parola' has no member named 'synchZoneStart'
big_fonts_demo:80: error: 'class MD_Parola' has no member named 'synchZoneStart'
big_fonts_demo:85: error: 'class MD_Parola' has no member named 'synchZoneStart'
big_fonts_demo:90: error: 'class MD_Parola' has no member named 'synchZoneStart'
big_fonts_demo:95: error: 'class MD_Parola' has no member named 'synchZoneStart'
'class MD_Parola' has no member named 'synchZoneStart'

can you tell me why.

Thanks for your help.

Sorry for my bad english i came from germany.

Axel

You have to download latest source code of Parola library at http://parola.codeplex.com/SourceControl/latest

Thank for your fast replay, now it woks fine.

Axel

Nice Work... But when used Latest version MD_MAX72xx_v2.9 getting this error
Can u fix its...
But otherwise work fine with MD_MAX72xx_v2.8

Arduino: 1.6.5 (Windows XP), Board: "Arduino Nano, ATmega328"

C:\Documents and Settings\Baba\My Documents\Arduino\libraries\MD_MAX72xx\src\MD_MAX72xx.cpp:28:17: fatal error: SPI.h: No such file or directory
#include <SPI.h>
^
compilation terminated.
Error compiling.

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.

Have you a tip for this error!

/var/folders/l9/27pqv_zs4zd0xmpx_03blk_m0000gn/T/arduino_modified_sketch_350888/big_fonts_demo.ino: In function 'void loop()':
big_fonts_demo:39: error: 'CENTER' was not declared in this scope
P.displayZoneText(0, "Create 16-rows display using Parola library", CENTER, 30, 0, SCROLL_LEFT, SCROLL_LEFT);
^
big_fonts_demo:39: error: 'SCROLL_LEFT' was not declared in this scope
P.displayZoneText(0, "Create 16-rows display using Parola library", CENTER, 30, 0, SCROLL_LEFT, SCROLL_LEFT);
^
big_fonts_demo:54: error: 'PRINT' was not declared in this scope
P.displayZoneText(0, "BIG FONT", CENTER, 30, 0, PRINT, NO_EFFECT);
^
big_fonts_demo:54: error: 'NO_EFFECT' was not declared in this scope
P.displayZoneText(0, "BIG FONT", CENTER, 30, 0, PRINT, NO_EFFECT);
^
big_fonts_demo:61: error: 'SCROLL_DOWN' was not declared in this scope
P.displayZoneText(0, "BIG FONT", CENTER, 30, 2000, PRINT, SCROLL_DOWN);
^
big_fonts_demo:62: error: 'SCROLL_UP' was not declared in this scope
P.displayZoneText(1, "BIG FONT", CENTER, 30, 2000, PRINT, SCROLL_UP);
^
exit status 1
'CENTER' was not declared in this scope

OK i found it selve.

i put a PA_ to the effect.
PA_CENTER and so on.

Hi There

I would really appreciate if someone shows me how the displays are connected together and how are they powered.

Thanks in advance.

All this work is now incorporated into the Parola examples.

Please refer to the documentation for the Parola library (either on line or with the software download). Also look at this blog article for information on double height displays.

My display is 8 modules wide and 2 modules high.
The 16-rows demo works nice after adding PA_ to the constants and setting the hardware in MD_MAX72xx.h

Thank you!

Hardware: I use 4 of those:

https://www.aliexpress.com/item/MAX7219-Dot-Matrix-Module-For-Arduino-Microcontroller-4-In-One-Display-with-5P-Line/32620800331.html

marco_c:
All this work is now incorporated into the Parola examples.

I am trying to add simple animation (FADE or SLICE) to the following code in displaying time and date . I am trying to build a simple clock.

Anyone please ,give some ideas.

#include <Wire.h>
#include <MD_DS1307.h>
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include <RTClib.h>


#define MAX_DEVICES 4
#define CLK_PIN   13
#define DATA_PIN  11
#define CS_PIN    10

RTC_DS1307 rtc;

MD_Parola P = MD_Parola(DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
//MD_Parola P = MD_Parola(CS_PIN, MAX_DEVICES);

void setup () 
{

  Wire.begin();
  Serial.begin(57600);
  P.begin();
  

  
 if(! rtc.begin()) 
  {
    Serial.println("Couldn't find RTC");
    while (1);
  }

 if(! rtc.isrunning()) 
  {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
     rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    
  }

}
void loop () 

{

 

DateTime now = rtc.now();
     
char timeStamp[15];
char dateStamp[15];



if(now.hour() > 12)

{
  
  int h = now.hour() - 12 ;
  

sprintf(timeStamp, "%3.2d:%02d", h ,now.minute());



Serial.println(timeStamp);

    
sprintf(dateStamp, "%3.2d/%02d",  now.day(),now.month());   
  
Serial.println(dateStamp);

 
P.print(timeStamp);

if (now.second() == 25 | now.second() == 35)

{
  
P.print(dateStamp);

delay(5000);

}

delay(1000);

}

}

You will need to get rid of all the delay() calls. These will not work if you want good animations.

Look at the examples in the Parola library, especially those using a clock.

marco_c:
Look at the examples in the Parola library, especially those using a clock.

My issue is that I am able to print the output "TIME" which is stored in the char timeStamp to the LED display.

Whereas in Parola library the examples are pointing towards a string like "HELLO" and the animation is called. How can i convert my output into a string or a word so that in the library i can replace it.

I am sorry I am unable to understand the complete Animation catalog since I am a beginner. I just need a simple animation to work and if I am able to understand it I can go further .

vijithcv:
My issue is that I am able to print the output "TIME" which is stored in the char timeStamp to the LED display.

#define SPEED_TIME 25
#define PAUSE_TIME 2000


P.displayText(timeStamp, CENTER, SPEED_TIME, PAUSE_TIME, SCROLL_LEFT, SCROLL_RIGHT);
P.displayAnimate();

OR

P.displayText(timeStamp, SPEED_TIME,PAUSE_TIME,PA_SLICE);
P.displayAnimate();

Since i am typing from my mobile I am unable to add these and see the endresult. So i am asking the Gurus if I can get any animation using the above lines?

Or am i missing anything here.

I just want to add animation to the time displayed in the matrix display.

So i am asking the Gurus if I can get any animation using the above lines?

The answer is yes to both (assuming the string is correct). You will need to call displayAnimate() from inside the loop() function every time through the loop or it will not animate properly. This is how it is done in the examples, so look at them for reference.

marco_c:
The answer is yes to both (assuming the string is correct). You will need to call displayAnimate() from inside the loop() function every time through the loop or it will not animate properly. This is how it is done in the examples, so look at them for reference.

I am at dead end !

Getting error as " no matching function for call to 'MD_Parola::displayText(char [15], textPosition_t, int, int)'"

Sorry I am not getting the idea to move forward !

#include <Wire.h>
#include <MD_DS1307.h>
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include <RTClib.h>


#define MAX_DEVICES 4
#define CLK_PIN   13
#define DATA_PIN  11
#define CS_PIN    10

#define SPEED_TIME  100
#define PAUSE_TIME  10



RTC_DS1307 rtc;

MD_Parola P = MD_Parola(DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
//MD_Parola P = MD_Parola(CS_PIN, MAX_DEVICES);

void setup () 
{

  Wire.begin();
  Serial.begin(57600);
  P.begin();
   

  
 if(! rtc.begin()) 
  {
    Serial.println("Couldn't find RTC");
    while (1);
  }

 if(! rtc.isrunning()) 
  {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
     rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    
  }

}
void loop () 

{

 

DateTime now = rtc.now();
     


char timeStamp[15];
char dateStamp[15];

  

sprintf(timeStamp, "%3.2d:%02d", now.hour() ,now.minute());



Serial.println(timeStamp);

    
sprintf(dateStamp, "%3.2d/%02d",  now.day(),now.month());   
  
Serial.println(dateStamp);

 
P.print(timeStamp);



 P.displayText(timeStamp, PA_CENTER, SPEED_TIME, PAUSE_TIME);

   
    P.displayAnimate();

}

Here is the manual entry from the documentation, which I am pretty sure you may not have read. It is located in the docs subfolder of the library and is also online where you got the library from)

void 	displayText (char *pText, textPosition_t align, uint16_t speed, uint16_t pause, textEffect_t effectIn, textEffect_t effectOut=PA_NO_EFFECT)

Here is your function call

P.displayText(timeStamp, PA_CENTER, SPEED_TIME, PAUSE_TIME);

Where is the effectIn parameter in your call?

I realise this is probably new to you and English may not be your first language, but if you don't know what you are doing it is ALWAYS best to start from a working example (and there are many for this library), and make gradual changes so that you know the last change was the one that caused whatever error you are getting.

As I also said before, look at the structure of the loop() in the examples. It is nothing like you have written and I am sure that yours will not work as it is.

marco_c:
I realise this is probably new to you and English may not be your first language, but if you don't know what you are doing it is ALWAYS best to start from a working example

I am sorry I am an Electrical Engineer by profession and I am new to programming. I am trying to understand this ocean with bits and pieces which I have studied in college . This is more like a hobby learning to me in my free time. So please excuse my questions and ignorance in this field.

Now my main difficulty in understanding is how can I get to print my result which is stored in char timeStamp[].

sprintf(timeStamp, "%3.2d:%02d", now.hour() ,now.minute());



Serial.println(timeStamp);

    
sprintf(dateStamp, "%3.2d/%02d",  now.day(),now.month());   
  
Serial.println(dateStamp);

 
P.print(timeStamp);

I would make myself clear with the below extract code from your example code in "Parola Ambulance"

char *msg[] =
{
  "Ambulance",
  "Emergency",
};

The animation starts from the below code I guess

  P.displayText(msg[cycle], PA_CENTER, SCROLL_SPEED, PAUSE_TIME, PA_PRINT, PA_NO_EFFECT);

"msg" means the char "Ambulance Emergency"

Whereas in my program the word to be animated is timeStamp which itself is an array having some data in it.

So how can I display the text inside timeStamp array like you have done by printing out the msg[] , ie, "Ambulance Emergency" which is a word and not a data like TIME.

:confused:

Parola does not care what is in the message. It just prints characters. You just need to specify what you want to display by passing the character buffer to the library. In the examples it is mostly static text as this is the easiest for demo purposes. You have a more dynamic message. No difference.