Aller au contenu


theo-paul

Inscrit(e) (le) 04 juil. 2018
Déconnecté Dernière activité nov. 29 2021 09:16
-----

Messages que j'ai postés

Dans le sujet : console de controle robot

22 août 2018 - 04:52

 

void loop(){

             //on met un 0 dans customKey 
sens = customKeypad.getKey();
  while (sens != '#' && sens != '*') {  //tant qu'on a pas de réponse valable
     sens = customKeypad.getKey();    //on attends qu'elle arrive
  }
switch (sens)
// sens = 
{
  case '#':        //on défini sens_rotation
    sens_rotation = true;
    lcd.setCursor(6,0);
    lcd.print("+");
  break;
  case '*': 
    sens_rotation = false;
    lcd.setCursor(6,0);
    lcd.print("-");
  break;
}
// selon ce qui est selectionné, afficher le resultat en 6,0
//ensuite, passer à la selection de l'angle voulu 
customKey = customKeypad.getKey();
 while (customKey >= '0' && customKey <= '9') // This keeps collecting the Value until customKey is not a number
  {
    Value = Value * 10 + (customKey - '0'); // concatnate key presses into one value
    lcd.print(Value);
  }
  switch (customKey)
    {
      case 'C': // Change set speed
      Value = 0;
      lcd.clear();
        break;
 
      case 'D':
      lcd.print("demarrage");
      delay(2000);
      lcd.clear();
        break;     
       // Value = constrain(Value, 0, 200);
      //lcd.setCursor(7,0);
      //lcd.print(Value);
  }
//tout ceci compris entre 0 et 200 degrés
//methode a trouver
//X = constrain(X,INF,SUP);
}

voila ce que ca donne, et ca marche !!!! pour le +et le -. pour les numeros c'est pas encore ca. j'ai des traits qui se mettent a la place. j'avance doucement mais surement. Merci de votre aide  :yahoo:


Dans le sujet : console de controle robot

22 août 2018 - 09:14

 

void loop(){

             //on met un 0 dans customKey 
  char  customKey = customKeypad.getKey();
  while (customKey != '#' && customKey != '*') {  //tant qu'on a pas de réponse valable
  sens = customKeypad.getKey();    //on attends qu'elle arrive
  }
switch (sens)
// sens = 
{
  case '#':        //on défini sens_rotation
    sens_rotation = true;
    lcd.setCursor(6,0);
    lcd.print("+");
  break;
  case '*': 
    sens_rotation = false;
    lcd.setCursor(6,0);
    lcd.print("-");
  break;
}
// selon ce qui est selectionné, afficher le resultat en 6,0
//ensuite, passer à la selection de l'angle voulu 
if (customKey >= '0' && customKey <= '9') // This keeps collecting the Value until customKey is not a number
  {
      Value = Value * 10 + (customKey - '0'); // concatnate key presses into one value
      Value = constrain(Value, 0, 200);
      lcd.setCursor(7,0);
      lcd.print(Value);
  }
//tout ceci compris entre 0 et 200 degrés
//methode a trouver
//X = constrain(X,INF,SUP);
//  char customKey = '0';
  if (customKey =='D') {          //tant qu'on ne valide pas par 'D'
      lcd.print("demarrage");
      delay(2000);
    }
    if (customKey == 'C') {      //si on veux corriger
      Value = 0;              //on reinitialise Value
      lcd.print(Value);
      lcd.clear();
   }
  }
 

bon, maintenant, plus rien ne s'affiche, j'ai passé mon aprem a essayer des trucs, en vain  :Alvarin_07:  

c'est cette commande de debut qui foire tout. quand je l'enleve ca marche a peut pret


Dans le sujet : console de controle robot

20 août 2018 - 03:42

 

void loop(){

             //on met un 0 dans customKey 
  char  customKey = customKeypad.getKey();
  if (customKey == '#' || customKey == '*') {  //tant qu'on a pas de réponse valable
  sens = customKeypad.getKey();    //on attends qu'elle arrive
  }
switch (sens)
// sens = 
{
  case '#':        //on défini sens_rotation
    sens_rotation = true;
    lcd.setCursor(6,0);
    lcd.print("+");
  break;
  case '*': 
    sens_rotation = false;
    lcd.setCursor(6,0);
    lcd.print("-");
  break;
}
// selon ce qui est selectionné, afficher le resultat en 6,0
//ensuite, passer à la selection de l'angle voulu 
if (customKey >= '0' && customKey <= '9') // This keeps collecting the Value until customKey is not a number
  {
      Value = Value * 10 + (customKey - '0'); // concatnate key presses into one value
      lcd.setCursor(7,0);
      lcd.print(Value);
  }
//tout ceci compris entre 0 et 200 degrés
//methode a trouver
 
//  char customKey = '0';
  if (customKey =='D') {          //tant qu'on ne valide pas par 'D'
      lcd.print("demarrage");
      delay(2000);
    }
    if (customKey == 'C') {      //si on veux corriger
      Value = 0;              //on reinitialise Value
      lcd.print(Value);
      lcd.clear();
   }
  }
 

avec ca, la fonction effacer et demarrer fonctionnent. j'arrive toujours pas a mettre ma premiere condition. Je vais essayer avec une boucle while. 

Une idée de comment delimiter un affichage de caractere ? ( pas afficher plus que 200 ou alors prendre valider automatiquement quand 3 nombres sont rentrés)


Dans le sujet : console de controle robot

19 août 2018 - 06:47


void loop(){
             //on met un 0 dans customKey 

  char  customKey = customKeypad.getKey();

  while (customKey != '#' || customKey != '*') {  //tant qu'on a pas de réponse valable

  customKey = customKeypad.getKey();    //on attends qu'elle arrive

  }

// sens = 

  if (customKey == '#') {        //on défini sens_rotation
    sens_rotation = true;
    lcd.setCursor(6,0);

    lcd.print("+");

  }
  if (customKey == '*') {
    sens_rotation = false;

    lcd.setCursor(6,0);

    lcd.print("-");
  }
// selon ce qui est selectionné, afficher le resultat en 6,0
//ensuite, passer à la selection de l'angle voulu 

if (isDigit(customKey)) {       //on saisi un nombre (isdigit n'accepte que les caracteres de 0 à 9)

      Value = Value * 10 + (customKey - '0'); // concatnate key presses into one value

      lcd.print(Value);

//tout ceci compris entre 0 et 200 degrés

//methode a trouver



//  char customKey = '0';

  while (customKey !='D') {          //tant qu'on ne valide pas par 'D'

                customKey = customKeypad.getKey();
/*    if (isDigit(customKey)) {       //on saisi un nombre (isdigit n'accepte que les caracteres de 0 à 9)
      Value = Value * 10 + (customKey - '0'); // concatnate key presses into one value
      lcd.print(Value);*/

    }
    if (customKey == 'C') {      //si on veux corriger

      Value = 0;              //on reinitialise Value

      lcd.print(Value);
    }
  }

}

j'ai transféré tel quel, rien ne s'affiche. j'ai modifié, rien ne s'affiche, je m'en arrachhe les cheveux  :help:
l'ordre des selection est :
1 choisir le sens de rotation ( la valeur sens est donc crée pour ca)
2 afficher la valeur sens en 6, 0 
3seulement maintenant, lire le clavier et afficher la selection de valeur comprise entre 0 et 200 (j'ai pas encore trouvé mais ca ne tardera pas)
4 attendre que D soit appuyé
5 afficher le message de mouvement et envoyer la commande
6 ma rumba envoie un message a la uno disant "ok, c'est fait"
7 retour a 1
pour le choix de la veleur, je ne comprends pas trop, quand j'appuie sur 1 et 2 et 3 et 4 puis ensuite 5, 6, 7en simultané, ca n'affiche pas tout ca met un truc comme -7635 alors que j'ai bien saisi dans l'ordre.
j'ai l'impression que cette ligne pose probleme

Value = Value * 10 + (customKey - '0');


Dans le sujet : console de controle robot

19 août 2018 - 10:35

Voilà ce que ça fait quand je démarre, ça affiche bien ce que je veux. Quand jappuie sur des numéros, ça marche pas, il ny a que les deux premiers chiffres qui apparaissent dans les case 1 et 2 ligne 1. Ça efface pas lecran.
Jai essayé de décrire le mieux possible le comportement de mon programme sur papier histoire detre bien clair dans ma tete.