Aller au contenu

GO Print

pit34

Membres
  • Compteur de contenus

    3
  • Inscrit(e) le

  • Dernière visite

Récompenses de pit34

Newbie

Newbie (1/14)

  • First Post
  • Conversation Starter
  • Week One Done
  • One Month Later
  • One Year In

Badges récents

0

Réputation sur la communauté

  1. Effectivement, c'est une bonne raison pour utiliser quasi-systématiquement un encodeur rotatif
  2. C'est sûr mais parmi tous les contrôleurs qui existent, ceux avec boutons sont vraiment rares. Je me demande donc si au delà du prix il n'y a pas une raison pratique..
  3. Bonjour, Sous Marlin 1.1.8, j'essaie de remplacer l'encodeur incrémental qui sert à contrôler les afficheur LCD par 2 boutons haut et bas. J'ai déjà ajouté un écran oled 128x64 en I2C. Je sais qu'un encodeur ne coûte pas grand chose mais je préfère essayer d'ajouter les boutons, pour améliorer mes connaissances en C++ et sur Marlin. J'utilise une carte Arduino Mega pour simuler la carte MKS Base 1.0 de ma Discoeasy200. Je me suis inspiré des contrôleurs "TinyBoy2 128x64 OLED / Encoder Panel" et "RIGIDBOT_PANEL" pour commencer. Voila ce que j'ai fais : Création d'un fichier pins_3_buttons_controller.h: Ce fichier est inspiré du fichier pin_RIGIDBOARD.h qui utilise des touches directionnelles. Il contiens les lignes de code ci-dessous, servant à définir les boutons UP, DWN et EN_C, et pour supprimer les entrées EN1 et EN2 de l'encodeur: #if ENABLED(OLED_PANEL_3_BUTTONS) // Direction buttons #define BTN_UP 37 #define BTN_DWN 35 // 'R' button #undef BTN_ENC #define BTN_ENC 31 // Disable encoder #undef BTN_EN1 #define BTN_EN1 -1 #undef BTN_EN2 #define BTN_EN2 -1 #endif Ajout des lignes suivantes au fichier Configuration.h, vers la ligne 1607, pour activer le contrôleur créé : // // I2C 128x64 OLED / 3 Buttons Panel // #define OLED_PANEL_3_BUTTONS Ajout des lignes suivantes dans le fichier Conditionals_LCD.h, proche de la ligne 97, pour activer U8GLIB_SSD1306 et l'ULTIPANEL, comme c'est le cas pour le "TinyBoy2 128x64 OLED / Encoder Panel": #elif ENABLED(OLED_PANEL_3_BUTTONS) #define U8GLIB_SSD1306 #define ULTIPANEL Ajout des lignes suivantes dans le fichier pin.h, proche de la ligne 255, pour inclure mon fichier pins_3_buttons_controller.h: #if ENABLED(OLED_PANEL_3_BUTTONS) #include "pins_3_buttons_controller.h" // Panel 3 buttons Côté hardware, l'entrée des 3 boutons est flottante, et reliée à la masse lors de l'appui sur le bouton. Comme pour l'utilisation du clic encodeur EN_C déjà existant. Le bouton EN_C fonctionne, mais pas les boutons UP et DWN. J'ai essayé de changer le type d'entrée des boutons de "SET_INPUT" à "SET_INPUT_PULLUP" pour UP et DWN dans le fichier ultradlcd.cpp, aux lignes 4497 et 4500, mais ça ne fonctionne pas non plus. Est-ce que vous pourriez m'indiquer à quel niveau je fais erreur et m'expliquer pourquoi ? C'est la même implémentation que pour les touches directionnelles du RIGIDBOT_PANEL dans le fichier pin_RIGIDBOARD.h, mais ça ne marche pas. Pourtant ce panel n'a pas d'encodeur. Et comme question plus générale, j'aimerai savoir pourquoi la quasi-totalité des contrôleurs LCD utilisent un encodeur incrémental au lieu de boutons ? Quel est l'avantage d'utiliser ce codeur ? Merci à vous et bonne journée.
×
×
  • Créer...