Bonjour à tous et toutes !
C'est mon premier post ici après avoir passé quelques temps à lurker pour chercher (et trouver !) des réponses à diverses questions. Mais cette fois je crois que je vais avoir besoin d'un peu d'aide car je n'arrive pas à trouver la source de mon problème même après des recherches diverses un peu partout.
Je suis en train de bricoler un clavier MIDI avec un Arduino Mega (un clone Elegoo ATMEGA2560 R3) et je rencontre des difficultés avec les pins analogiques.
Pour le contexte, j'ai connecté sur les pins numériques les nappes du clavier (une matrice 8x8 avec 8 lignes en INPUT_PULLUP et 8 colonnes en OUTPUT), 4 boutons poussoirs simples, une LED d'état, un afficheur 4x7 digits connecté via un registre à décalages 74HC565N et un port MIDI 5 pins branché sur le port série TX1. Le tout fonctionne très bien, j'arrive à envoyer des notes, changer des paramètres via les boutons et afficher des caractères sur l'afficheur à digits, rien à signaler.
J'ai mis le code à disposition sur github ici mais pas encore réalisé le schéma. J'ai une photo ici pour donner une idée mais je suis conscient que ce n'est pas idéal.
Pour en venir au sujet principal du topic, j'ai deux molettes (pitch et modulation) qui sont des potentiomètres 10k classiques et que j'ai branché aux pins analogiques A0 et A1. J'ai géré le code qui permet de lire et de mapper les valeurs correctement en évitant de lire trop souvent et en lissant les valeurs lues. Ça fonctionne bien également, j'arrive à envoyer les signaux attendus via le port MIDI.
Je rencontre par contre un problème lorsque je manipule le clavier ou les boutons et/ou que l'afficheur s'allume, des valeurs parasites sont détectées sur les pins analogiques alors que les potentiomètres ne sont pas touchés. J'ai essayé plusieurs choses côté code sans succès (dans les méthodes checkValue de Modulation.cpp et PitchWheel.cpp) et surtout je me suis rendu compte que ça se produisait même si je débranchais les potentiomètres complètement et que rien n'était branché sur les pins A0 et A1. De ce que j'ai pu observer, le problème se produit depuis que j'ai ajouté l'afficheur à digits. Est-ce que ça peut être lié à l'utilisation des diodes PN2222A pour l'alimentation de l'afficheur ? (ici le lien du schéma que j'ai utilisé pour cette partie). Ou au fait que l'alimentation soit faite par USB ?
J'ai un niveau plutôt correct en programmation mais pas tellement en électronique et j'ai du mal à comprendre ce qui peut créer ce phénomène et comment l'éviter...
Est-ce que quelqu'un aurait une idée de ce que j'ai pu mal faire et de comment corriger ça ? Ou est-ce que ça peut être lié à une carte défectueuse ? Je n'en ai malheureusement pas d'autre à disposition tout de suite pour tester ![]()
Merci d'avance pour votre aide ![]()