Problema con scrollung Test con MD_Parola

Buongiorno a tutti, sono Claudio e sto cominciano a cimentarmi con Arduino e la programmazione C++.
Il mio progetto consiste nella lettura di un valore da un potenziometro e la visucalizzazione di un valore su una matricie di Led governata dalla Libreria MD_Parole.
Il codice funziona ma le parole che vengono visualizzate non fanno lo scrolling e non capisco perché.
Mi potete aiutare?

Il codice é molto corto:

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

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4

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

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

int winkel = 0;
int messwert = 0;
int prevMesswert = 0;
const int PotiPin = A0;
const int FromLow = 790;
const int FromHigh = 520;
const int ToLow = 0;
const int ToHigh = 90;
const int Totzone = 10;

unsigned long startTime = 0;
const int delayThreshold = 5000;
bool wordDisplayed = false;

void scrollMessage(const char* message) {
    P.displayClear();
    P.displayText(message, PA_CENTER, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
    while (P.displayAnimate()) {
        delay(50);
    }
    P.displayClear();
}

void setup(void) {
    pinMode(PotiPin, INPUT);
    Serial.begin(9600);
    P.begin();
}

void loop(void) {
    messwert = analogRead(PotiPin);

    if (prevMesswert + Totzone <= messwert || prevMesswert - Totzone >= messwert) {
        winkel = map(messwert, FromLow, FromHigh, ToLow, ToHigh);
        prevMesswert = messwert;

        startTime = millis();
        wordDisplayed = false;
    }

    Serial.print("messung = ");
    Serial.println(messwert);
    Serial.print("winkel = ");
    Serial.println(winkel);

    P.print(" " + String(winkel));

    if (!wordDisplayed && millis() - startTime >= delayThreshold) {
        P.displayClear();

        // Randomly select a word based on the pot value range
        const char* selectedWord;
        if (winkel < 30) {
            selectedWord = "MORE!";  // Example: Different message for low range
        } else if (winkel < 60) {
            selectedWord = "WOW!";   // Example: Different message for medium range
        } else {
            selectedWord = "TOUGH!"; // Example: Different message for high range
        }

        if (selectedWord[0] != '\0') { // Check if the selected word is not empty
            scrollMessage(selectedWord);
            wordDisplayed = true;
            P.print(String(winkel) + " ");
            delay(200);
        }
    }
}

Grazie

Buongiorno e benvenuto nella sezione Italiana del forum,

cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (... e, per evitare future possibili discussioni/incomprensioni, prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento (punto 16.7), fai la tua presentazione NELL'APPOSITA DISCUSSIONE spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto. :wink:

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