recuper le print

bonjour
je cherche a recuperer le texte que j’ai envoyer en print pour l’exploiter derrière .
mon code est le suivant
d’avance merci a vous

 /**
 * Code de base pour l'utilisation de la shield Arduino LCD de DFRobots (LCD + boutons).
 */

/* Dépendances */
#include <LiquidCrystal.h>


/** Objet LiquidCrystal pour communication avec l'écran LCD */
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

/** decalvarion variable */
int place = 0 ;
char *tableau [] ={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","1","2","3","4","5","6","7","8","9","0","-"};
int lettre =0 ;
char car[16] ;
/** Énumération des boutons utilisables */
enum {
  BUTTON_NONE,  /*!< Pas de bouton appuyé */
  BUTTON_UP,    /*!< Bouton UP (haut) */
  BUTTON_DOWN,  /*!< Bouton DOWN (bas) */
  BUTTON_LEFT,  /*!< Bouton LEFT (gauche) */
  BUTTON_RIGHT, /*!< Bouton RIGHT (droite) */
  BUTTON_SELECT /*!< Bouton SELECT */
};


/** Fonction setup() */
void setup() {
  lcd.begin(16, 2);
  lcd.print("texte a graver");
    
  
}

/** Fonction loop() */
void loop() {



  /* Affiche le bouton appuyé */
  ;
  lcd.setCursor(0,1);

  switch (getPressedButton()) {
  //case BUTTON_NONE:
    //lcd.print(F("      "));
    //break;

  case BUTTON_UP:
   lcd.setCursor(place, 1);
   if (lettre <36 )
   lettre = lettre +1 ;
 
    break;

  case BUTTON_DOWN:
   lcd.setCursor(place, 1);
    if (lettre >0  )
    lettre = lettre -1 ;

    break;

  case BUTTON_LEFT:
  place = place-1;
    lcd.setCursor(place, 1);
//
 
    break;

  case BUTTON_RIGHT:
  place=place+1 ;
    lcd.setCursor(place, 1);
// 
    break;

  case BUTTON_SELECT:
 
    lcd.print("blue");
    break;
  }
   lcd.setCursor(place, 1);
   lcd.print(tableau [lettre]);
  
   
  /* Délai pour l'affichage */
  delay(100);
}


/** Retourne le bouton appuyé (si il y en a un) */
byte getPressedButton() {

  /* Lit l'état des boutons */
  int value = analogRead(A0);

  /* Calcul l'état des boutons */
  if (value < 50)
    return BUTTON_RIGHT;
  else if (value < 250)
    return BUTTON_UP;
  else if (value < 450)
    return BUTTON_DOWN;
  else if (value < 650)
    return BUTTON_LEFT;
  else if (value < 850)
    return BUTTON_SELECT;
  else
    return BUTTON_NONE;
}

Qu'entends-tu par exploiter ?

je me sers des bouton comme d'un clavier - je veux générer un programme qui gravera les texte écrit

Graver ? tu entends par là écrire les caractères sur le LCD ?

lcd.print()

Que dire de plus ?

non avec des moteur et un graveuse

Tu fais partie des demandeurs qui pensent que nous sommes connectés sur ton cerveau pour deviner tes désirs.
Quand tu auras des explications claires à fournir on pourra en reparler.

Mis à part code d’exemple pour saisir un texte sur un LCD à bouton, ton code ne fait pas grand chose.

De là à récupérer la chaîne de caractère ainsi saisie et graver le texte sur une surface quelconque, il y a encore du boulot.

pour la partie gravure javait prévu de récuperer le code qui permet de piloter des moteur pas a pas comme sur une CN

générai le "GCODE" n'est pas la partie compliquer il fonctionne déjà sur une autre machine . mais je sui obliger de rentre les valeur l'aide d'un PC a partir du clavier.
le but est comme je lai dit de recup ce que j’ai écrit dans une variable.

Salut,

simplement en faisant comme ca si le reste est bon ( je n’ ai rien verifier ) :

/**
 * Code de base pour l'utilisation de la shield Arduino LCD de DFRobots (LCD + boutons).
 */

/* Dépendances */
#include <LiquidCrystal.h>


/** Objet LiquidCrystal pour communication avec l'écran LCD */
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

/** decalvarion variable */
int place = 0 ;
char *tableau [] ={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","1","2","3","4","5","6","7","8","9","0","-"};
int lettre =0 ;
char car[16] ;
char * chaineAGraver = "";
/** Énumération des boutons utilisables */
enum {
  BUTTON_NONE,  /*!< Pas de bouton appuyé */
  BUTTON_UP,    /*!< Bouton UP (haut) */
  BUTTON_DOWN,  /*!< Bouton DOWN (bas) */
  BUTTON_LEFT,  /*!< Bouton LEFT (gauche) */
  BUTTON_RIGHT, /*!< Bouton RIGHT (droite) */
  BUTTON_SELECT /*!< Bouton SELECT */
};


/** Fonction setup() */
void setup() {
  lcd.begin(16, 2);
  lcd.print("texte a graver");
   
 
}

/** Fonction loop() */
void loop() {



  /* Affiche le bouton appuyé */
  ;
  lcd.setCursor(0,1);

  switch (getPressedButton()) {
  //case BUTTON_NONE:
    //lcd.print(F("      "));
    //break;

  case BUTTON_UP:
   lcd.setCursor(place, 1);
   if (lettre <36 )
   lettre = lettre +1 ;
 
    break;

  case BUTTON_DOWN:
   lcd.setCursor(place, 1);
    if (lettre >0  )
    lettre = lettre -1 ;

    break;

  case BUTTON_LEFT:
  place = place-1;
    lcd.setCursor(place, 1);
//
 
    break;

  case BUTTON_RIGHT:
  place=place+1 ;
    lcd.setCursor(place, 1);
//
    break;

  case BUTTON_SELECT:
 chaineAGraver += lettre;
    lcd.print("blue");
    break;
  }
   lcd.setCursor(place, 1);
   lcd.print(tableau [lettre]);
 
   
  /* Délai pour l'affichage */
  delay(100);
}


/** Retourne le bouton appuyé (si il y en a un) */
byte getPressedButton() {

  /* Lit l'état des boutons */
  int value = analogRead(A0);

  /* Calcul l'état des boutons */
  if (value < 50)
    return BUTTON_RIGHT;
  else if (value < 250)
    return BUTTON_UP;
  else if (value < 450)
    return BUTTON_DOWN;
  else if (value < 650)
    return BUTTON_LEFT;
  else if (value < 850)
    return BUTTON_SELECT;
  else
    return BUTTON_NONE;
}

bien entendu , une fois la chaineAGraver gravée , il faudra la remetrre a rien , avant de repartir pour un autre serie de caracteres : chaineAGraver = “”; dans la fonction qui reinitialisera le tout .

char * chaineAGraver = "";
// ...
chaineAGraver += lettre;

Tu te permets d'ajouter des caractères à une chaîne de caractères allouée avec zéro octets ...
C'est plutôt ballot.

Avec une C string tu oublies le += ...

Tu confonds String et tableau de char.

hbachetti:
Tu te permets d’ajouter des caractères à une chaîne de caractères allouée avec zéro octets …
C’est plutôt ballot.

Avec une C string tu oublies le += …

Tu confonds String et tableau de char.

Effectivement , autant pour moi !

voilà le code rectifier , et desolé pour cette reponse trop rapide !

 /**
 * Code de base pour l'utilisation de la shield Arduino LCD de DFRobots (LCD + boutons).
 */

/* Dépendances */
#include <LiquidCrystal.h>


/** Objet LiquidCrystal pour communication avec l'écran LCD */
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

/** decalvarion variable */
uint8_t place = 0 ;
const char *tableau [] ={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","1","2","3","4","5","6","7","8","9","0","-"};
uint8_t lettre =0 ;
char car[16] ;
const uint8_t nombreCaracteres = 16 ;
String chaineAGraver[nombreCaracteres] = {};
/** Énumération des boutons utilisables */
enum {
  BUTTON_NONE,  /*!< Pas de bouton appuyé */
  BUTTON_UP,    /*!< Bouton UP (haut) */
  BUTTON_DOWN,  /*!< Bouton DOWN (bas) */
  BUTTON_LEFT,  /*!< Bouton LEFT (gauche) */
  BUTTON_RIGHT, /*!< Bouton RIGHT (droite) */
  BUTTON_SELECT /*!< Bouton SELECT */
};


/** Fonction setup() */
void setup() {
  lcd.begin(16, 2);
  lcd.print("texte a graver");
   
 
}

/** Fonction loop() */
void loop() {



  /* Affiche le bouton appuyé */
  ;
  lcd.setCursor(0,1);

  switch (getPressedButton()) {
  //case BUTTON_NONE:
    //lcd.print(F("      "));
    //break;

  case BUTTON_UP:
   lcd.setCursor(place, 1);
   if (lettre <36 )
   lettre = lettre +1 ;
 
    break;

  case BUTTON_DOWN:
   lcd.setCursor(place, 1);
    if (lettre >0  )
    lettre = lettre -1 ;

    break;

  case BUTTON_LEFT:
  place = place-1;
    lcd.setCursor(place, 1);
//
 
    break;

  case BUTTON_RIGHT:
  place=place+1 ;
    lcd.setCursor(place, 1);
//
    break;

  case BUTTON_SELECT:
    chaineAGraver[place] = tableau[lettre];
    lcd.print("blue");
    break;
  }
   lcd.setCursor(place, 1);
   lcd.print(tableau [lettre]);
 
   
  /* Délai pour l'affichage */
  delay(100);
}


/** Retourne le bouton appuyé (si il y en a un) */
byte getPressedButton() {

  /* Lit l'état des boutons */
  int value = analogRead(A0);

  /* Calcul l'état des boutons */
  if (value < 50)
    return BUTTON_RIGHT;
  else if (value < 250)
    return BUTTON_UP;
  else if (value < 450)
    return BUTTON_DOWN;
  else if (value < 650)
    return BUTTON_LEFT;
  else if (value < 850)
    return BUTTON_SELECT;
  else
    return BUTTON_NONE;
}

nickel merci je testerai ça dans la semaine