Capteur PIR arduino nano

Dernièrement je rencontre un autre problème c'est que lorsque je branche un simple cable sur le Pin de l'arduino qui reçoit les données du capteur celle ci déclenche le relai comme si le capteur était branché alors que ce n'est pas le cas.
Cela vous semble-t-il possible que je place une résistance de drainage afin de retirer les tension parasites dans ce câble??

Sans PIR sur l'entrée, celle-ci déclenche sur n'importe quel parasite.

Je propose un test : le PIR seul, avec en sortie une LED + résistance de 10K, sans ARDUINO. Placer le montage dans une zone de passage. La LED doit s'allumer à chaque passage d'une personne.
Attention : Il faut savoir également qu'après une détection, il faut attendre 3 secondes pour qu'une nouvelle détection soit possible.

Personnellement, je proposerais de remplacer

pinMode(inputPin, INPUT);

par

pinMode(inputPin, INPUT_PULLUP);

car il y a pas mal de détecteurs qui sortent en collecteur ouvert.

la carte a l'air oxydée

la carte est neuve je ne pense pas qu'elle soit oxydée je viens de la souder ce que vous voyez sont des soudures visibles au travers des trous du PCB et des restes de FLUX que j'ai utilisé pour faciliter la soudure et que je n'ai pas pu retirer des endroits exigus.
Je ne pense pas que la carte soit exposée tant que cela car je l'ai placée dans un boitier étanche que j'ai imprimé en 3D.

C'est à dire en collecteur ouvert.
Pouvez vous m'expliquer ce qui diffère entre

INPUT et INPUT_PULLUP

Si l'on savait de quel capteur il s'agit ? ? ?

Voiir là l'explication

INPUT_PULLUP fournit la résistance de tirage au + nécessaire lorsque le circuit externe possède une sortie en collecteur ouvert.

Remarque n: 1 : donner le nom "pin" à la pin qui commande le relais n'est vraiment pas ce qui se fait de mieux pour la lisibilité du programme.
Pourquoi ne pas l'avoir appelée "relai" ?

Remarque n : 2 : Commander directement un relai par une sortie Arduino n'est pas ce qui se fait de mieux. Avec un courant de 20 mA la tension disponible tombe de moins à 4,6 V. Les Rdson des transistors des circuits intégrés n'ont strictement rien à voir avec ceux des MosFet de puissance. Avec le micro Atmel le Rdson est de l'ordre de 30 ohms.
Un simple transistor bipolaire, comme un 2N2222, forme une interface de puissance tout à fait convenable. C'est d'ailleurs ce qui équipe tous les modules relai du commerce.

Remarque n: 3 : c'est un rappel de ce qui a déjà été écrit par beaucoup : Sans diode de roue libre (diode montée en inverse sur un bobinage) il y a de fortes chances que cela ne fonctionne plus parce que la sortie du micro a été détruite ou fortement endommagée.
Note : tous les modules relai du commerce ont aussi cette diode.

Remarque n: 4 : faire commuter un relai toutes les 50 ms ne me semble pas non plus une bonne idée. La mécanique "chinoise" d'entrée de gamme risque de ne pas apprécier longtemps. Un transistor MosFet me semble plus approprié et je ne suis pas vraiment certain qu'avec la persistance rétinienne l'œil arrive à suivre des cycles 50ms/50ms.

Note : Quand on fait de la mise au point, à la mise sous tension, on commence par relâcher les contraintes pour voir si tout fonctionne. Ce n'est qu'ensuite que l'on tente de se rapprocher de ses objectifs.

Et pour finir :
Remarque n: 5 : Il existe un excellant tuto, celui d'Eskimon, qui traite tous les aspects : matériel et logiciel.
https://eskimon.fr/
C'est un peu long, mais c'est très bien fait, AMHA il est préférable de prendre un peu de temps pour le lire.

On se demande où est le transistor de commande du relais ...
Ces relais réclament en général 70mA de courant de bobine :woozy_face:

Bonjour tout d'abord merci de vous être intéressé à mon problème sans fin.
Je tiens a préciser que tout cela ne s'est pas fait sur un coup de tête et que je n'ai évidemment pas imposé des contraintes si fortes a mon relai; j'ai d'abord en faisant juste allumer pendant 10 sec les LED par le relai avant de les éteindre et ce une seule fois par mouvement détecté.

Deuxièmement je suis bien conscient qu'un relai de cette qualité la ne devrai pas tenir très longtemps à cette cadence-ci mais pour des raison de simplicité je préfère quand même utiliser un relai même ci là n'est pas son usage. Car je sui incapable d'utiliser un mosfet et ce n'est pas faute d'avoir essayé...

Pour ce qui est de la persistance rétinienne quand le circuit fonctionnait bien qu'avec les intervalles de 50ms la lumière restait parfaitement visible. en fait le but premier de ce clignotement est d'être le plus désagréable et le moins naturel possible afin d'effrayer des animaux plus particulièrement des chevreuils qui s'attaquent aux pieds de roses de mon grand-père.

Et enfin le relai ce déclenche parfaitement lorsque je démarre l'arduino ou que j'appuie sur le bouton "reset" et d'ailleurs si je branche les LED celle-ci clignotent parfaitement mais le problème est que l'arduino soit ne déclenche pas du tout le relai soit fait tourner en boucle la séquence de clignotement.
Le problème je pense ne vient donc pas du relai mais de l'arduino ou du capteur PIR mais quel est ce problème je ne le sait pas...

Jusque la le relai ne m'a pas posé de problème car il ferme et rouvre parfaitement le circuit à chaque séquence. Mais le problème est que l'arduino ne lui envoie soit pas l'ordre de fermer le circuit du tout soit la séquence se répète indéfiniment même lorsque je recouvre le capteur PIR.

C'est un capteur HC-SR501 PIR

Il est absolument impossible de commander un relais de ce type avec un ARDUINO, sans transistor de commande. Lorsque l'on tire 40mA sur une sortie, celle-ci chute à 4V. Si cela marche, cela s'appelle un coup de bol, et cela risque de marcher peu de temps.

Le HC-SR501 est capable de fournir une dizaine de mA (BISS0001), que ce soit en positif ou en négatif. Donc ce n'est pas une sortie en collecteur ouvert.
Donc pinMode(inputPin, INPUT); est tout à fait OK. C'est d'ailleurs ce que j'utilise toujours. Aucun besoin de pullup.

Bonjour quentindemullenheim

Il semblerai que ton PIR n'est plus "vu" depuis l'Arduino, essaies d'initialiser son port avec un INPUT et mets une résistance de quelques Kohms contre GND, si le phénomène "soit ne déclenche pas du tout le relai soit fait tourner en boucle la séquence de clignotement" cesse, regardes du côté de la connexion du PIR.

As-tu un lien du côté de la ou LED utilisées afin de voire que mettre à la place de ton relais?

Cordialement
jpbbricole

Sans vouloir insister lourdement, la datasheet du SRD-05VDC-SL-C précise que ce relais à besoin de 75% de la tension 5V pour être activé.
5V * 0.75 = 3.75V. Avec une bobine de 70Ω le courant sera de 53mA, courant qu'une sortie ARDUINO est incapable de fournir sans danger.

Bonsoir quentindemullenheim

D'après ton programme, ce serait plutôt INPUT vu que, quand il y a détection de mouvement, il y a HIGH sur inputPin.

	val = digitalRead(inputPin);
	if (val == HIGH)

Donc, si ton PIR est déconneté, il faudrait une résistance de PULL_DOWN pour éviter que ton système "parte dans tout les sens".
Si ton PIR est bien connecté, au démarrage du programme ou après un reset, il ne doit rien se passer vu que digitalRead(inputPin == LOW.

J'ai testé ton programme, il fonctionne très bien.
Je t'en ai fait une version un peu plus "compacte" (en exemple) et plus simple à gérer en vue d'éventuelles modifications comme les temporisations.

int pin = 12;
int inputPin = 2;
int pirState = LOW;
int val = 0;

void setup() {
	
	pinMode(inputPin, INPUT);
	pinMode(pin, OUTPUT);

	/**/
	
	
}

void loop()
{
	val = digitalRead(inputPin);
	if (val == HIGH)
	{
		if (pirState == LOW)
		{
			for (byte loopFlash = 0; loopFlash < 2; loopFlash ++)
			{
				for (byte flash = 0; flash < 6; flash ++)
				{
					digitalWrite(pin, HIGH);
					delay(50);
					digitalWrite(pin, LOW);
					delay(50);
				}
				delay(700);
			}
			pirState = HIGH;
		}
	}
	else
	{
		if (pirState == HIGH)
		{
			pirState = LOW;
		}
	}
}

Bien sûre, on pourrais faire plus, mais pour commencer...

A+
Cordialement
jpbbricole

Merci beaucoup je vais me renseigner pour sécuriser le circuit de ce coté là.

Je n'ai pas de lien de la LED c'est un sorte de barre de LED complètement rigide qui comprend une quarantaine de LED que mon père m'a ramené un jour. Mais je n'ai aucune idée de sa provenance ni de son utilisation preemière.