Voilà, je vous expose un problème que j'ai eu récemment et qui me mine un peu. Je vous explique. Je suis débutant en arduino, j'avais construit un escape game "portatif" et je m'installe prochainement dans mes locaux (premier client fin novembre) et je bloque avec un problème électronique.
Mon projet c'est quoi ?
Un pupitre (en bois) dans lequel il y a un arduino relié à un LCD 12char tout simple.
5 boutons répartis dans la pièce et l'équipe doit faire des combinaisons de boutons.
En fonction de ces combinaisons dictées par le chef d'orchestre au pupitre, des lettres ou élements s'affichent sur l'écran.
Tout se passait bien dans ma version nomade (fils de 2-3m). Et depuis que je suis en fixe, les câbles passent dans le faux plafond, les placo, j'ai pris du 1.5mm². BREF, en fait je n'avais que trop peu de connaissances en électronique, et ce projet m'a un peu dépassé.
Le problème est le suivant (vous le voyez venir ?). Quand j'appuie sur les boutons ils fonctionnent parfaitement. MAIS, parfois, quand rien est appuyé, un signal est reçu et l'arduino affiche quelquechose alors qu'il ne devrait pas.
Mon montage se base sur 5 boutons poussoirs sur des Analog 6 7 8 9 et 10, en INPUT PULLUP.
Mes fils sont du 1.5mm².
Aucune résistance rajoutée.
Mes questions :
y'a t-il un choix plus cohérent de fil (je sens que celui la me pose souci mais c'est juste mon instinct)
y'a t-il intérêt a rajouter une résistance à chaque bouton poussoir ? ou un condensateur ?
Dois-je mettre un DELAY plus long ? (30 actuellement).
Voilà,
Je suis en galère et j'ai besoin d'aide alors on ne sait jamais.
Et si dans tout vos avis, je peux avoir celui de @68tjs (qui m'a l'air extrêmement calé en la matière), je serais ravi
Pour de longues distances, les pullup internes sont trop hautes, il faut en mettre des externes pour chaque bouton, au plus près de la patte de l'Arduino, l'autre côté à +5V. Tu peux essayer avec des 4.7k, ce n'est pas critique.
Il n'y a quasiment aucun courant dans les inter donc la section du fil est indifférente.
Oui, pour les deux.
Les pullups intégrés au processeur sont très élevés et donc les entrées sont relativement sensibles aux perturbations électromagnétiques?
Utiliser des pullups externes près de l'Arduino de l'ordre de 1kΩ
placer un petit condensateur entre 1 à 10nF sur les entrées de l'Arduino, pour atténuer les perturbations.
Comme on ne sait pas de quel delay() tu parles, difficile de se prononcer.
Tu pourrais aussi blinder le câble des inters. Le blindage à la masse coté Arduino.
Dans ton cas, ça n'aura pas grande influence, le câble torsadé comme le câble téléphone (U72 par ex.) sert, surtout, au cas où il y a des fréquences transportées sur ce câble, ça diminua l'affaiblissement.
Écoute je vais commencer par ca deja ... ca m'évite de tout redemonter.... jai passe une journee pour traverser le placo
Bref
Tu penses que juste le fait de mettre cette resistance peut fonctionner ?
Je serais dingue de joie ! Invitation pour mon escape game offerte avec plaisir
Hmmm je dirais 8m grand max (cest dailleurs celui qui deconne le plus... je capte des trucs dun autre monde)
Par contre je dois maintenant passer par le +5v pour chaque bouton et je suis en train dessayer de comprendre car tu me dis qu on peut cumuler le input_pullup et la resistance externe
Mais je pensais qu en utilisant l interne on utilisait le 5v deja ... pas clair dans mon esprit xD
Sinon jai deja tout prepare pour tester
Si ca deconne j'ajouterai condensateur sur les boutons poussoirs
En fait, tes PULLUP externes sont en parallèle sur les PULLUP internes vu que les tiennes sont aussi, d'un côté au +5V et de l'autre sur la pin de l'Arduino. Regardes ici.
Sans tout casser, s’il n’est pas déjà trop tard, je ferais :
Resistance de tirage externe au Vcc ( poule up) = 10k
condensateur de 100 nF en parallèle sur l’interupteur .
résistance série de 100 ohms sur le fil en sortie d’interupteur.
Je crains , cela reste a vérifier, que ce soient les longueurs de fil qui apportent de l’inductance. Cette inductance forme un circuit résonnant avec les capacités parasites tout le long des liaisons.
Comme le fil forme antenne, cette antenne capte les bruits dans sa bande passante.
La resistance de 100 ohms est là pour amortir le circuit et ”casser” l’antenne..
Cables blindés :
Du cable cat 7 c’est du luxe. Des simples cables blindés devraient suffire.
Attention a leur câblages :
Si ce que l’on appelle blindage n’est relié que d’un côté, généralement côté microcontroleur, c’est un vrai blindage.
S’il est relié aux deux extrémités c’est une liaison de type coaxial qui DOIT être adaptée sur son impedance caractéristique sous peine de créer des circulations de courants de bruit, ce qui serait pire que tout.
Autre solution : adapter le cable côté micro.
Quel que soit la cable il a une impedance caractéristique, telephonique = 600 ohms, ethernet 100 ohms.
Juste un reseau R+ C serie entre l’entrée du micro et la masse devrait ameliorer.
R= 100 ou 600 ohms
C = 100 nF.
Toujours le même principe : amortir le reseau R L C.
Ah trop content d'avoir votre avis, d'autant plus qu'il est dans la même direction que les autres.
Mon marteau était prêt mais j'ai pas encore eu le temps de dégainer
Alors j'ai été conseillé par la POULE (COCORICO) UP avec 3 valeurs différentes : 1k 4k7 et 10k du coup je suis un peu perdu...
Pour le condensateur j'ai compris
Pour la résistance en sortie, c'est aussi ok je vais le faire.
JE fais cela dans un premier temps avant tout changement de cablage ?
CABLAGE : auriez vous un lien vers du "simple cable blindé" et relié que d'un côté ? Je suis incapable de faire la différence entre les 2 décrits... Sinon j'avais vu du fil téléphone blindé ?
Ce qui est dingue c'est que mon projet qui a des cables de 3mètres fonctionne parfaitement SANS AUCUNE résistance pull up NI condensateur depuis 5 ans mais je n'ai pas utilisé le même cable.
Cable de l'ancien circuit : Câble électrique 2 X 0.75 mm² h03vvh2
Cable du nouveau : Fil électrique 1.5 mm² h07vu