Auteur Sujet: Clavier analogique multiple  (Lu 11551 fois)

Tony04

  • Hero Member
  • *****
  • Messages: 569
    • Voir le profil
Clavier analogique multiple
« le: août 22, 2020, 01:43:25 pm »
Bonjour à tous,

dans mon projet de TCO "en dur" j'utilise pas mal de touches et les ai câblé en analogique selon les conseils de Thierry: https://modelleisenbahn.triskell.org/spip.php?article59

J'ai 5 entrées analogiques avec 8 boutons chacune mais je n'arrive pas à adapter le sketch de Thierry pour faire fonctionner ces 5 ensembles. Comme je suis nul en pointeurs et en programmation objet je n'arrive pas à trouver la faille.

Dans le sketch ci-joint il n'y a que 2 canaux analogiques testés et seul le A8 fonctionne. Si quelqu'un peut m'orienter vers la bonne voie cela me serait d'un grand secours.

Merci par avance.
Cordialement
Antoine

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 810
    • Voir le profil
Re : Clavier analogique multiple
« Réponse #1 le: août 22, 2020, 04:13:49 pm »
Rendons à César ce qui est à Jules, le site cité est celui de Jean-Luc...

simontpellier

  • Full Member
  • ***
  • Messages: 115
    • Voir le profil
Re : Clavier analogique multiple
« Réponse #2 le: août 22, 2020, 04:25:44 pm »
Bonjour Antoine,
n'étant pas (pas encore je veux dire) un champion du C++ le problème, je le vois pas comme ça... d'autant qu'il faudrait faire le montage pour tester !

Mais une façon de régler ça serait probablement de sauter le pas vers un code "orienté objet" avec une classe très simple, par exemple "Poussoirs", dont tu lancerais 5 objets/instances "huit",
Poussoirs huit[5] la classe contenant deux méthodes :
int Poussoirs::lirePoussoirs()
  {...
      return nouvelEtatPoussoir ;
  }

byte Poussoirs::lireEvenement(int *numPoussoir)
  {...
     return evenement ;
  }

Si ça te branche on peut en parler.
cordialement
Philippe

Tony04

  • Hero Member
  • *****
  • Messages: 569
    • Voir le profil
Re : Re : Clavier analogique multiple
« Réponse #3 le: août 22, 2020, 04:38:52 pm »
Rendons à César ce qui est à Jules, le site cité est celui de Jean-Luc...

Désolé Thierry, je suis un peu saturé en ce moment et me mélange parfois les "Césars". J'ai le même problème avec mes petits-enfants d'ailleurs.

Citer
Si ça te branche on peut en parler.
cordialement
Philippe

Merci à toi Philippe, mais comme je l'ai dis à maintes reprises, je suis un ancien de la programmation en assembleur et n'ai jamais réussi à intégrer le monde des objets pourtant si bien décrit sur Locoduino.
Je ne me permettrai pas de te demander un produit clé en main car je suppose que tu as autre chose à faire.
Pourquoi ne peut-on pas partir du projet de "César" Dominique ?

Cordialement
Antoine


Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3038
  • 100% Arduino et N
    • Voir le profil
Re : Clavier analogique multiple
« Réponse #4 le: août 22, 2020, 10:14:34 pm »
Hello Antoine,

si c'est pour interfacer un clavier, j'ai pas mal d'exemples, mais je n'aime pas les claviers analogiques : que souhaiterais-tu ?
Cordialement,
Dominique

Tony04

  • Hero Member
  • *****
  • Messages: 569
    • Voir le profil
Re : Clavier analogique multiple
« Réponse #5 le: août 22, 2020, 11:09:39 pm »
Bonsoir Dominique,

je trouve ton message juste avant de fermer mon PC.

C'est tout simple; j'ai 32 boutons à gérer + d'autres E/S mais c'est surtout pour une facilité de câblage que j'ai opté pour des boutons analogiques.
J'ai essayé de partir sur ton exemple mais sans succès. J'y arrive avec la méthode de base bien connue et qui, pour l'instant ne m'a pas renvoyé de fausses infos.

Du coup Philippe (simontpellier) vient de m'envoyer un sketch à tester que je ne ferai que lundi car j'ai du monde demain. J'y ai jeté un coup d’œil et si cela fonctionne il faudra bien que j'essaye de comprendre la "bête".
Je vous tiendrai tous les 2 au courant.

Bonne nuit à tous.
Amicalement
Antoine

simontpellier

  • Full Member
  • ***
  • Messages: 115
    • Voir le profil
Re : Clavier analogique multiple
« Réponse #6 le: août 23, 2020, 06:03:29 pm »
Hello Antoine,
ah ben je suis heureux que ça marche ! Un peu surpris car sans bien savoir ce que ça fait ça me semble miraculeux... mais finalement pas surpris car je n'avais en fait pas besoin de le savoir !
Car c'est TON code et rien que ton code, je n'ai rien fait d'autre que l'organiser différemment.

Avec deux N.B. :
- dans le zip joint j'ai ajouté, juste pour la bonne forme, un "destructeur" car utiliser "NEW" implique de l'allocation dynamique de mémoire, qu'il faut absolument libérer si nécessaire sinon à force d'allouer sans libérer on crée de la "fuite de mémoire". Ça n'est pas le cas dans le présent sketch, on alloue une fois dans le setup et tout se libère automatiquement avec la fermeture du programme. Mais je ne sais pas si tu ne vas pas intégrer ce bout de sketch dans un autre, ni alors, comment, d'où l'avertissement en commentaire.
- et à cause de cette allocation dynamique qui implique des pointeurs pour la localiser, la fonction "switch" de ton code d'origine ne peut pas être utilisée (je saurai peut-être un jour expliquer pourquoi !), voilà pourquoi elle est remplacée par trois "ifs"

C'était vraiment un cas d'école ! Idéal pour te permettre de voir très vite comment passer de ta version à celle-ci car encore une fois, c'est ton code dans les deux cas.
Amicalement
Philippe

Tony04

  • Hero Member
  • *****
  • Messages: 569
    • Voir le profil
Re : Clavier analogique multiple
« Réponse #7 le: août 23, 2020, 07:27:37 pm »
Citer
Car c'est TON code et rien que ton code, je n'ai rien fait d'autre que l'organiser différemment.

Précision importante, ce n'est pas mon code mais celui de Jean-Luc qui vient de son site: https://modelleisenbahn.triskell.org/spip.php?article59

10 ans de moins me feraient du bien pour intégrer la programmation objet, mais je vais une fois de plus tenter le coup.

En tous cas un grand merci à toi Philippe et Jean-Luc, même si tu n'aimes plus les claviers analogiques  ;)

Bon dimanche soir à vous.
Amicalement
Antoine
« Modifié: août 23, 2020, 09:13:40 pm par Dominique »