Bonjour à tous,
C'est la toute première fois que je post sur un forum d'électronique, excusez-moi par avance si j’ai mis celui-ci dans la mauvaise catégorie, je vous laisse me dire cela ou bouger ce post le cas échéant.
Me concernant, je débute en électronique et programmation depuis quelques mois mtn, j'ai quelques bases issues de la fac et école d’ingé (ça remonte à plus de 10 ans ), j'ai déjà réalisé des mini projets électronique et programmation à base d’Arduino pour la plupart mais j’ai jamais eu besoin de réaliser un PCB jusqu’à aujourd’hui.
Concernant le projet actuel, sur le quelle je bloque avec mes boutons, (je précise que c’est un projet perso) je veux juste récupérer l’état de 5 boutons (cad appuyé = 0 et relâché = 1 ou inversement ça m’est égal en fait). Easy non ?
Donc pour entrer dans le vif du sujet et introduire brièvement mon problème, je suis bloqué, sur un point que me parait extrêmement simple, je n’arrive pas à faire fonctionner 5 boutons poussoir montés sur un PCB fait maison a la cnc et relié à une carte Arduino, alors que j’arrive à faire fonctionner ces mêmes 5 boutons sur une breadboard relié de la même manière, à la même Arduino et avec le même code. (Breadboard OK PCB pas OK )
Concernant le montage : j'ai fait un montage on ne peut plus simple de cinq boutons poussoir sur une breadborad, le tout relié à une Arduino méga, ils sont branchés sur les pins digital allant de D6 a D10 d’un côté et sur un GND commun de l’autre. J’ai branché un condensateur de 10µF entre le + et le – de chaque bouton afin de limiter les rebonds lors de l’appuis et du relâchement du bouton. Voir image ci-dessous :
schema montage breadbord.jpg
Dans la partie code c'est aussi extra simple, j'appelle les pins en intput_pullup et je fais des digitalRead que je print pour voir l'état des boutons dans le port série. Sur la breadboard, ce montage fonctionne parfaitement, les boutons répondent bien et je vois bien le changement d’état (1 et 0) quand j'appuis et je relâche, il n’y a pas de latence ou de bug. (voir le code ci-dessous)
code.JPG
Du coup comme cela fonctionnait parfaitement sur la breadboard, j’ai décidé de faire un petit PCB ultra simple (voir photo ci-dessous) à la CNC, histoire de brancher tous mes boutons proprement et de les inclure plus proprement dans le futur casing. (Habituellement j’usine des pièces mécanique, c’est une première pour moi le PCB, ca me semblait être plus facile a faire qu’un pièce en alu ou autre matières, mais visiblement non… )
MEP PCB.png
PCB face arr.jpg
PCB face av.jpg
Sur les images ci-dessus, les fils et les condensateurs ne sont pas encore tous soudés, seulement les deux premiers boutons sont raccordés à leur pin digital et à la masse.
Malheureusement, vous l’aurez compris, c’est ici que mes problèmes (de débutants surement) ont commencés. Quand je branche mon PCB à l’Arduino, plus aucuns boutons ne fonctionnent, ou alors ils fonctionnent mais de manière extrêmement erratique et ou aléatoire, de plus l’Arduino m’affiche (la plupart du temps) qu’ils sont tous le temps appuyé (circuit fermé), alors que ce n’est pas le cas et quand j’appuis bien-sûr rien ne se passe. C’est comme si un courant parasite venait fermer le circuit alors que, je le répète, les boutons ne sont pas appuyés, donc le circuit est ouvert.
Concernant le PCB j’ai essayé plusieurs designs différents, le premier était de faire des pistes pour le GND et les pins digital. Ensuite j’ai essayé avec des plans de masse (a ce qu’il parait cela limite les parasites et ou couplage capacitif) Je l’ai aussi vérifié et revérifié afin de détecter tout faux contact et être joyeusetés mais rien, les pistes en cuivre sont bien isolées les unes des autres.
Pour tenter de remédier à ce problème j’ai essayé de monter une résistance de 4.7k a la masse histoire de tirer le courant vers la masse, j’ai aussi mis une diode/LED vers la masse histoire d’empêcher qu’un courant inverse remonte dans l’autre sens. Mais rien n’a fonctionné.
A vrai dire je ne sais plus quoi faire, ca dépasse mes compétences en électronique, pour moi c’est plus de l’ordre de la CEM.
Pourriez vous m’aider sur ce sujet SVP ? D’avance merci pour vos réponses.
Marc
-----