Petit alarme à bas d'un HC-SR501

Bonjour à tous.

Je viens de réaliser une petite alarme à base d'un HC-SR501 qui est un détecteur de mouvement.
Grand débutant c'est un bon exercice pour apprendre la programmation avec un sensor, une led et un buzzer.
J'ai utilisé pour cela : un Arduino Nano est un détecteur de mouvement Hc-SR501.

Voici son fonctionnement.

-Il émet 2 notes à la mise sous tension.
-Il émet 3 notes comme quoi tu dois quitter la zone à surveiller.
-Puis se place en mode détection.
-INTRUSION
-Il émet 4 notes on a 5 secondes pour couper l'alarme sinon la led s'allume.

Quand mon montage est branché sur mon ordi et que je visualise son fonctionnement dans l'IDE, il fonctionne à la perfection.

Mais, car il y a un mais.

Les problèmes sont les suivant.
Quand je l'alimente par VIN en 12V ou bien par la prise USB mini via un adaptateur 5V il émet les deux notes de mise sous tension puis 4 notes en mode j'ai détecté une intrusion.
Le second souci...pourquoi je ne trouve que 0.800 V en D4 au lieu de 5V quand il a détecté une intrusion ?

Ne soyez pas trop dur avec moi si j'ai fais une bêtise, je suis à la retraite respectez mes cheveux blancs et puis c'est la canicule vous deviez m'apporter des bières bien fraîches, il ne cesse de le recommander à la télé " hydratez les anciens".

En vous remerciant par avance de votre aide et de vos bières.

Cordialement.

int led = 4; // Led de visualisation d'intrusion connectée en D4.
int Detecteur = 2; // Sortie du détecteur IR Ref:  HC-SR501 connecté en D2.
int buzz = 7; // Buzzer connecté en D7.
int val ;


void setup() {

  Serial.begin(9600);
  
  pinMode (Detecteur,INPUT);
  pinMode (led, OUTPUT);

 Serial.println(" Alarme mise sous tension.");
 tone (buzz,500,50); //Alarme mise sous tension ( 2 notes).
 delay (100);
 tone (buzz,500,50);

 delay (1000);

 Serial.println(" Vous avez 5 secondes pour quiter la piece.");
 
 delay (5000); // Vous avez 5 secondes pour quiter la pièce.

 Serial.println(" Alarme placee en detection.");  
           
 tone (buzz,500,50);  // Alarme mise en détection ( 3 notes).
 delay (100);
 tone (buzz,500,50);
 delay (100);
 tone (buzz,500,50);
 delay (100);

 

}

void loop() {
  
 val= digitalRead (Detecteur);
 if (val==HIGH) 
{
Serial.println("mouvement detecte");

 tone (buzz,500,50); // Signal buzzer de détection ( 4 notes).
 delay (100);
 tone (buzz,500,50);
 delay (100);
 tone (buzz,500,50);
 delay (100);
 tone (buzz,500,50);
 
 delay(5000); // Vous avez 5 secondes pour couper l'alarme.
 
digitalWrite(led,HIGH); // Visualisation de l'intrusion par la led.

}

else
{
  Serial.println("pas de mouvement detecte");
  digitalWrite(led,LOW); // La led reste éteinte.
}
delay(200);
}

Salut

As-tu placé une résistance entre la sortie de la NANO et la LED ?

@+

Bonjour Full Member, la première chose à faire est de localiser le matériel qui pourrait poser problème, donc autant que possible isoler ton code, aussi j'ai essayé ton code en remplaçant le capteur par un bout de fil sur la borne 2. Tout fonctionne, bien sûr le fil c'est aléatoire rien que de le laisser en l'air sur la borne 2 il détecte quand on le touche avec ses doigts.
Ensuite enlève le fil et tu constates l'autre partie du code, chez moi ça fonctionne avec cette procédure donc je pense que c'est plutôt hardware (le matériel) ou des mauvais raccordements comme l'a déjà fait remarquer hbachetti. La résistance en série avec la led c'est +/- 300 Ohm.

Alors bien sur si le capteur est en face de toi c'est normal qu'il y a immédiatement détection permanente.

Bon courage

Bonjour à tous.

Je vous remercie infiniment didiersee et hbachetti de m'avoir aiguillé dans mes recherches.

Le code est effectivement correcte, merci didiersee de l'avoir vérifié et une grosse erreur de débutant avec une résistance trop forte finement supposé par hbachetti.

Une constatation concernant le détecteur HC-SR501, à la mise sous tension la sortie se place en HIGH durant la durée réglée puis passe en LOW puis fait son travail de détection. Ce que je ne savait pas et pas pris en compte dans mes mesures.

En vous remerciant de nouveau.

Cordialement.