Problema con scrolling text e MD_Parola

Buongiorno , mi chiamo Nicola, ho un problema con uno sketch, in breve vorrei aggiungere (e magari cambiarle) delle animazioni del testo, ovvero che scorra o effetti vari.
il mio problema e che riesco a farlo con un testo "fisso" ma non con uno variabile, in preatica voglio fare una message board con 8 moduli max7219 e un esp32 collegata a telegram, probabilmente mi sto perdendo in un bicchiere d'acqua ma non ne salto fuori :sweat_smile: allego lo sketch

#include "CTBot.h"
CTBot myBot;

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

// Uncomment according to your hardware type
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
//#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW

#define MAX_DEVICES 8
#define CS_PIN 5
MD_Parola Display = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);


String ssid  = "xxxxxxx";
String pass  = "xxxxxxxx";
String token = "xxxxxxxxxxx";
String s="";


void setup() {

  Display.begin();
  Display.setIntensity(5);
  Display.displayClear();

  Serial.begin(115200);
  Serial.println("Starting TelegramBot...");
  Serial.print("open Telegram");
  myBot.wifiConnect(ssid, pass);
  myBot.setTelegramToken(token);
  
  if (myBot.testConnection())
    Serial.println("\ntestConnection OK");
  else
    Serial.println("\ntestConnection NOT OK");
}

void loop() {
  
  TBMessage msg;
  if (CTBotMessageText == myBot.getNewMessage(msg))
  {
    s="";
    
    s=msg.text+"  !";
    myBot.sendMessage(msg.sender.id,"Check your message on display.");
    Serial.println(msg.text);
 
    Serial.print(s);
  } 
    
  if (Display.displayAnimate()) {
   Display.print (s);

   delay (2000);
   Display.displayClear();
   Display.displayReset();
  } 
 } 

Quando il codice è abbastanza corto, come nel tuo caso, si deve includerlo direttamente tra i tag CODE e non mettere un link per il download che è molto meno pratico per chi legge (specie da devices mobili). Grazie.

Per questa volta ho corretto io ... ricordalo in futuro. :wink:

Guglielmo

aa ok grazie! lo ricorderò

ok ho risolto cosi, ho un altro problema adesso, va tutto ma il limite e di 14 caratteri, se ne metto 15 comincia a fare simboli strani e devo perforza fare un reset hardware, allego lo scetch.
e un limite di MD_Parola o sbaglio io? Grazie

#include "CTBot.h"
CTBot myBot;

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

// Uncomment according to your hardware type
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
//#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW

#define MAX_DEVICES 12
#define CS_PIN 5
#define ClkPin 18
#define datiPni 23
MD_Parola Display = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

String ssid  = "hgffhg";
String pass  = "xxx";
String token = "xxx,ddd";
String s="";
const char *strS = s.c_str();

void setup() {
  
  
Display.begin();
  Display.setIntensity(10);
  Display.displayClear();
  
  Serial.begin(115200);
  Serial.println("Starting TelegramBot...");
  Serial.print("open Telegram");
  myBot.wifiConnect(ssid, pass);
  myBot.setTelegramToken(token);
  
  if (myBot.testConnection())
    Serial.println("\ntestConnection OK");
  else
    Serial.println("\ntestConnection NOT OK");
  Display.displayClear();
    
}

void loop() {
  
 
  TBMessage msg;
  if (CTBotMessageText == myBot.getNewMessage(msg))
  {
    s="";
    
    s=msg.text;
    myBot.sendMessage(msg.sender.id,"Check your message on display.");
    Serial.println(msg.text);
 
    Serial.print(s);
    Serial.print(strS);

    } 

    if (Display.displayAnimate()) {
   Display.displayScroll(strS, PA_RIGHT, PA_SCROLL_LEFT, 50);
    Display.displayReset();
    
  }


} 

Ma a che serve fare 'ste cose "strane"?
Fai cosi e non hai bisogno affatto della variabile strS

Display.displayScroll(s.c_str(), PA_RIGHT, PA_SCROLL_LEFT, 50);

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.