attachinterrupt interference

Bonjour à tous,

Je rencontre un petit problème.
J’ai un arduino uno, installé à côté de mon tableau électrique.
L’arduino doit détecter le changement d’état d’un relais ( actionné par le bouton d’une sonnette ).
Pour cela le pin GND de l’arduino est relié sur un borne du relais et le pin 2 sur l’autre borne du relais.

J’utilise donc la fonction attachinterrupt sur le pin 2 pour détecter le changement d’état.

Le problème est que l’arduino détecte parfois des changement d’état sans que le relais ne sois actionné.
J’ai essayé de comprendre à quel moment cela se produit.
J’ai l’impression que cela se produit lorsque des télérupteurs sont actionné dans mon tableau électrique.

Auriez vous une idée pour filtrer ses mauvaises interruption.

Merci d’avance

Bonjour,

Il y a bien une resistance de pullup? De quelle valeur?
Tu peux essayer de réduire la résistance de pullup et/ou de mettre un petit condensateur sur l'entrée.

Bonjour,

Oui j'ai défini une résistance de pullup de cette façon.

#define PinId_btn 2
pinMode(PinId_btn, INPUT_PULLUP);
digitalWrite(PinId_btn, HIGH);

//interrupt for receiving the data, connect receiver to pin 2
attachInterrupt(0, check_btn, FALLING );

//interrupt for receiving the data, connect receiver to pin 2
attachInterrupt(0, check_btn, FALLING );

Un condensateur de quelle valeur ?
J'en ai déjà mis un entre le GND et pin 2 d'un valeur de 100µf

100µF, ça semble beaucoup! C'est plutot 100nF ou 1µF

La résistance de pullup interne est elevée (de l'ordre de 50k), essaies de mettre un pullup externe de 4.7K et tu peux descendre jusqu'a 1k.

non c'est bien un 100µf que j'ai mis.

4,7K en supprimant le pullup interne ?

non je parles de 100nF et non 100µF

Tu peux le laisser ou l'enlever, il est négligeable devant le 4.7k externe

ok.
preferable que je remplace mon 100µf par un ( 100nF / 1µf ) ?

oui.

Slt j'ai récemment un circuit à base de ESP12F pour commander un de mes volets roulants.

Montage en test sur mon bureau aucun soucis.

J'ai deux volets alimentés par le même câble provenant du tableau général.

Une fois installé dans le circuit de commande volet , lorsque j'actionnais le second volet manuellement, des actions se déclenchaient sur mon circuit (descente, monté).
Pour y palier je savais qu'un filtre secteur réglerai le pb mais par soucis de place, j'ai essayé:

Des varistors sur le circuit manuel, augmentation des capacités de mon montages ( les 100nf à proximités des circuits numériques n'ont pas bougés).

Circuits RC en parallèle des phases et neutres.

Aucune de ces techniques ne supprimaient les interférences.

Et finalement, j'ai résolu le problème en mettant un filtre secteur en amont de mon circuit.

Ci dessous des images exemple de filtre:


Bonsoir,

je viens d'installer une résistance de 4,7K entre le 5V et mon Pin et un condensateur de 1µf/50V.
Le problème persiste.

Le condensateur c'était aussi sur l'entrée (entre l'entrée et GND).

Oui c'est bien comme ça que c'est branché.
Je modifie mon post précédent
dsl.

Tu es sur que c'est vraiment l'entrée qui bascule et non un reset intempestif de la carte?

oui certains, la diode orange qui clignote lorsque la carte redémarre reste toujours allumée.

Si l'impulsion est de courte durée (par rapport au signal 'normal'), tu peux tenter un filtrage soft.

oui je vais essayer ça.
Sinon en augmentant la résistance ou le condensateur possible que ça résolve le problème ?

pour la résistance, il faut la diminuer.