visualizzare in tempo reale una variabile crescente /decrescente

Buonasera a tutti,
intanto vi ringrazio per gli spunti che mi date per risolvere i miei problemi di programmazione.
questa volta però non ne vengo fuori……
Avrei bisogno di visualizzare sulla linea 1 di un lcd un contatore che incrementa/decrementa con
i passi di uno stepper.
Non sò piu' davvero cosa provare, scommetto che alla fine sarà qualcosa di banale ma non ci arrivo.
Allego la parte di codice dove si trova la int STEPS che dovrebbe cambiare.
Grazie per eventuali spunti da cui partire.

void jogger()
                        {int jog_stop_flag = 0;         // First tell user what the buttons do
                           jog_speed =0;
                                               lcd.clear();
                                                           lcd.setCursor(0,0);
                                                                              lcd.print("L<< R>> U <  D >");
                                                           lcd.setCursor(0,1);
                                                                              lcd.print(STEPS ());
                                                                                                            delay(1000);
                                                         //now get key presses //
                        do
                        {which_button(key);
                                              switch (key)
                        {case 0://Slow
                                      jog_speed = -400;//- 3200;//400
                                      jog_motor(jog_speed);
                                      steps--;
                                                                               break;
                            case 3://Slow
                                         jog_speed = +400;//+ 3200;//400
                                         jog_motor(jog_speed);
                                          steps++;                              break;
                            case 1://Fast
                                         jog_speed = +850;//+ 15000;
                                         jog_motor(jog_speed);
                                         steps++;                               break;
                            case 2://Fast
                                             jog_speed = -850;//- 15000;
                                             jog_motor(jog_speed);
                                             steps--;                           break;
                            case 4: // stop jog
                                              jog_stop_flag = 1;
                                                                                break;
                        }}
                while (jog_stop_flag != 1 || digitalRead (ls_forw = HIGH));        // aggiunto a ciclo while condizione finecorsa forward
                        }

Com'era quella canzone della Giannini?

Bello e illeggibile?

Non riesco a capire il tuo codice però se nel tuo sketch esiste una variabile che rappresenta il numero che vuoi visualizzare sul display devi semplicemente inserire lcd write nel ciclo (ad esempio dopo la riga di comando dello stepper).

Riesci a utilizzare il display ? Che problemi hai ?

Prova a compilare un semplice esempio di LCD e vedi se funzione. Se si, prendi spunto da quello copiati tutto (configurazioni, backlight, I2C address) e poi scrivi , non può non funzionare.

Sembrerebbe semplice.

Facci sapere

Ciao
Michele

Grazie Michele,
provero' a seguire la tua idea.
Qualche progresso l'ho avuto ma non cose ecclatanti. :confused:

Allora, intanto come tihanno detto cerca di indentare per bene perché altrimenti non sei solo tu a non capirci più niente ma neanche noi che vorremmo aiutarti.
Ad esempio il tuo codice potrebbe essere così:

void jogger()
{
  int jog_stop_flag = 0;         // First tell user what the buttons do
  jog_speed =0;
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("L<< R>> U <  D >");
  lcd.setCursor(0,1);
  lcd.print(STEPS ());
  delay(1000);
  //now get key presses //
  do
  {
    which_button(key);
    switch (key)
    {
      case 0://Slow
        jog_speed = -400;//- 3200;//400
        jog_motor(jog_speed);
        steps--;
        break;
      case 3://Slow
        jog_speed = +400;//+ 3200;//400
        jog_motor(jog_speed);
        steps++;                              break;
      case 1://Fast
        jog_speed = +850;//+ 15000;
        jog_motor(jog_speed);
        steps++;                               break;
      case 2://Fast
        jog_speed = -850;//- 15000;
        jog_motor(jog_speed);
        steps--;                           break;
      case 4: // stop jog
        jog_stop_flag = 1;
        break;
    }
  }
  while (jog_stop_flag != 1 || digitalRead (ls_forw = HIGH));        // aggiunto a ciclo while condizione finecorsa forward
}

Detto questo, che diamine è " lcd.print(STEPS ());"??? Tu hai una variabile che si chiama "steps", in minuscolo, e dato che il codice è case-sensitive, "steps" e "STEPS" sono due cose diverse.
Inoltre se è una variabile non devi metterci le parentesi "()". Devi fare:
lcd.print(steps);
Per cui prova questa modifica, e se hai ancora problemi scrivi postando però l'intero codice altrimenti diventa difficile.

Grazie pee i consigli. Certamente vedro di essere più ordinato. Vi faccio sapere appena sistemo la cose. Saluti