Bonjour,
Tout d'abord j'aimerais préciser que je suis nouveau dans la communauté Arduino (depuis 3 jours), donc si je m'y prends mal pour présenter mon problème, merci de me le signaler pour que je rende ce post plus clair.
J'essaye de modifier un clavier midi (Prodipe 25 C) pour en faire un instrument stand-alone avec mon arduino UNO:
L'objectif est de démonter le minimum de choses possibles pour garder le casing et les branchements.
(fainéantise quand tu nous tiens ^^)
Je suis conscient que ce n'est pas forcément la solution la plus optimale mais elle me parait la plus simple (cela dit vu comment je galère je me trompe peut-être...)
C'est un clavier avec 25 touches (avec 2 niveaux d'appuie) et le connecteur qui en sort a 20 broches
J'aimerais y brancher mon Arduino pour lire les 25 touches et faire sortir du son sur une enceinte (mon but et d'ensuite moduler les sons avec les autres boutons mais ça on verra plus tard :P)
Le clavier à 25 touches et "découpé" en 4 parties:
Sous chaque touches il y a deux contacteurs avec une diode associé (bouton poussoirs):
- un pour un appuie faible
- un pour un appuie fort
Voici le cablage simplifé avec seulement 4x2 touches (au lieux de 3x8+1 ...)
(je me suis servi du SSOP20 pour représenter la broche ...)
Prenons l'exemple des 4 premières touches.
En connectant la broche 20 à une input de l'Arduino et la broche 1 à la masse j'obtient bien un signal quand j'appuie sur le C.
En connectant la broche 19 à une input de l'Arduino et la broche 1 à la masse j'obtient bien un signal quand j'appuie sur le CS.
En connectant la broche 18 à une input de l'Arduino et la broche 1 à la masse j'obtient bien un signal quand j'appuie sur le D.
En connectant la broche 17 à une input de l'Arduino et la broche 1 à la masse j'obtient bien un signal quand j'appuie sur le DS.
(C=do, CS= do#,D=ré;...)
(dans ce cas il s'agit d'un appuie sensible, si je connectais la masse à la broche 2 il me faudrait un appuie fort)
(j'utilise INPUT_PULLUP)
Les autres touches ne fonctionne pas.
Maintenant si je connecte la masse à la broche 3 (pour appuie sensible, 4 pour appuie fort) j'ai 8 touches qui fonctionne, sur seulement 4 inputs (dans l'exemple du cablage présenté ci-dessus)
Ca donne ça si on continu cette logique:
Le problème c'est que j'ai 3 (ou 4 pour le 20) fois la même note sur le clavier et je n'arrive pas a les différencier ... Je vois bien qu'il y a un "codage" avec le broches 1, 2, 3, 4, 5, 6, 7 et 8 mais si je les branches à une input plutôt qu'à la masse je ne reçois plus de signal sur mes inputs
Je sens bien que c'est un truc "tout con" mais je n'arrive pas à mettre le doigt dessus...
Je sollicite donc vos esprit de bidouilleurs pour me donner des pistes d'investigations, car pour le moment je fonctionne en die'n'retry mais cette méthode montre déjà ses limites
- Comment récupérer l'information que c'est la première, deuxième, ... partie du clavier qui est joué?
- Comment bien brancher le clavier à l'Arduino ?
Merci d'avance pour vos idées