IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Casse: voie série


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 43
    Par défaut Casse: voie série
    Bonjour,
    J'ai commencé Arduino il n'y a pas longtemps et je suis actuellement sur le chapitre traitant la voie série. L'exercice consistant à saisir un caractère; S'il est minuscule il devient majuscule, s'il est majuscule il devient minuscule et si c'est un autre caractère par exemple un chiffre, un symbole il ne change pas; Voici mon programme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
     
     
    void setup() {
    Serial.begin(9600);
    }
     
    void loop() {
    char carlu;
    int cardispo = 0;
     
    cardispo = Serial.available();
     
    if(cardispo > 0)
    {
        carlu = Serial.read();
     
      if( carlu >='A' && carlu <='Z' )
      {
     
      carlu = carlu + 32;
      Serial.print(carlu);
      cardispo = Serial.available();
     
     
    }
     
    else if( carlu>='a' && carlu<='z' )
    {
      carlu = carlu - 32;
      Serial.print(carlu);
     cardispo = Serial.available();
     
    }
     
    else 
    {
      Serial.write(carlu);
     
    }
     
    }
     
    }
    Ca marche pour tous les caractères sauf ceux avec un accent comme à, é...
    Quel est le problème svp?


    Merci.

  2. #2
    Membre Expert
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 017
    Par défaut
    Bonjour Fvb02
    Citation Envoyé par Fvb02 Voir le message
    Tout ceci est géré par le code ASCII, chaque caractère ayant un indice dans cette table, ainsi A = 65 DEC ou 0x41 en HEX et a = 97 DEC ou 0x61 en HEX. Il y a une différence de 32 DEC ou 0x20 HEX d'où les

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     carlu = carlu + 32;
      carlu = carlu - 32;
    Convertir l’alphabet de A-Z et de a à z, fait partie de le code ASACII standard (7bits de 0-127), le décalage entre majuscules et minuscules et constant (32 ou 0x20).
    Les caractères accentués font partie du code ASCII étendus (8bits de 128-255)et nécessitent une autre paire de fonction de conversion.

    Cordialement
    jpbbricole

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 43
    Par défaut
    J'ai pris en compte cela en ajoyant ces lignes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    else if(carlu>= 192 && carlu<=255)
    {
      Serial.print(carlu);
    }
    Mais ca ne marche toujours pas. Est ce correct?

  4. #4
    Membre Expert
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 017
    Par défaut
    Bonjour Fvb02

    Comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
         else if( carlu >=192 && carlu <=223 )        // Ascii À-ß
         {
           carlu = carlu + 32;
           Serial.print(carlu);
           cardispo = Serial.available();
         }
     
         else if( carlu>=224 && carlu<=255 )     // Ascii à-ÿ
         {
           carlu = carlu - 32;
           Serial.print(carlu);
           cardispo = Serial.available();
         }
     
         else
         {
    /

    Mais le moniteur de l'IDE Arduino n'affiche pas ces caractères.

    Cordialement
    jpbbricole

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 43
    Par défaut
    Ah d'accord, je vois merci beaucoup!

Discussions similaires

  1. [Série] Accès au port série sous linux
    Par ghost dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 10/10/2007, 10h43
  2. Tri insensible à la casse [IB7]
    Par patquoi dans le forum Débuter
    Réponses: 4
    Dernier message: 02/06/2003, 08h56
  3. Créer une série dans un chart
    Par cyrose dans le forum C++Builder
    Réponses: 5
    Dernier message: 28/11/2002, 11h37
  4. Hors série PCTEAM sur Direct 3D
    Par Shakram dans le forum DirectX
    Réponses: 1
    Dernier message: 12/10/2002, 16h34
  5. Pas de casse dans les XML
    Par :GREG: dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo