Partage
  • Partager sur Facebook
  • Partager sur Twitter

LCD KeyPad

vérifier valeurs

    5 septembre 2018 à 22:30:31

    Bonsoir

    J'ai récupéré un code me permettant de gérer un écran LCD KeyPad

    je ne comprends pas le nota "on ajoute environ 50 à ces valeurs et on vérifie si on est proche"

    cette question car je dois appuyer plusieurs fois sur le bouton select pour afficher le texte prévu

    je vous copierai bien tout mon code mais il est long

    Montage: Arduino Méga sur usb (pour le moment) sur laquelle j'ai clipsé un LCD KeyPad + branchement RTC DS1302 + DHT22

    merci d'avance

    // Lecture des  boutons (tous regroupés sur le Pin Analog A0)
    int read_LCD_buttons()
    {
     adc_key_in = analogRead(0);      // Lit la valeur depuis le sensor sur A0
     // centré sur ces valeurs : 0, 144, 329, 504, 741
     // on ajoute environ 50 à ces valeurs et on vérifie si on est proche
     if (adc_key_in > 1000) return btnNONE; // On définit ça en première option pour raison de rapidité car option la plus probable
    
     if (adc_key_in < 50)   return btnRIGHT; 
     if (adc_key_in < 195)  return btnUP;
     if (adc_key_in < 380)  return btnDOWN;
     if (adc_key_in < 555)  return btnLEFT;
     if (adc_key_in < 790)  return btnSELECT;   
     return btnNONE;  // Sinon, on n'a aucun bouton de sélectionné (par défaut)
    }



    -
    Edité par OcinBzh 5 septembre 2018 à 22:32:33

    • Partager sur Facebook
    • Partager sur Twitter
      6 septembre 2018 à 16:24:32

      Pourquoi 50... bonne question, ce n'est pas logique.

      Les boutons de ton LCD sont des connexions de résistances qui sont apparemment censé donner 0, 144, 329, 504 ou 741.

      Donc 2 solutions possibles :

      Soit on utilise des limites en plein mieux de chaque valeur (milieu de 0/144=72, milieu de 144/329=236, milieu de 504/329=416...)

      Soit on utilise un bornage de +/- 50 ou autre (borne de 0 = -50à+50, borne de 144=94à194, borne de 329=279à379...)

      Mais je ne vois pas pourquoi on ferais +50 dans un sens et rien d'en l'autre...

      Donc je ne peux que te conseiller de recalculer tes bornes.

      Mais avant cela, il faudrait d'abord vérifier les valeurs que tu as réellement ;)

      En effet, même si les valeurs théorique sont 0, 144, 329, 504, 741, ce n'est peut-être pas exactement le cas.

      Donc commence par vérifier ces valeurs en les affichant.

      int read_LCD_buttons()
      {
        adc_key_in = analogRead(0);      // Lit la valeur depuis le sensor sur A0
        Serial.print("adc_key_in = ");
        Serial.println(adc_key_in);
      }



      • Partager sur Facebook
      • Partager sur Twitter

      LCD KeyPad

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown