Problème de sortie de veille avec capteur PIR.

Bonjour,

J'ai inclus le code pour le détecteur Pir dans l'exemple de sortie de veille : "powerDownWakeExternalInterrupt", le réveil se fait quand il y a un mouvement, mais ça reste bloquer que je ne sais pas faire afficher dans le moniteur : "mouvement détecté".

// **** COMPREND *****
#define IR_output 2
#include "LowPower.h"

// Utiliser la broche 2 comme broche de réveil
const int wakeUpPin = 2; 



void wakeUp()
{
    // Juste un gestionnaire pour l'interruption de broche.
}

void setup(){

    // Configurez la broche de réveil comme entrée.
    // Cela consommera quelques uA de courant.
    pinMode(wakeUpPin, INPUT);   

}

void loop() 
{
    // Autorise la broche de réveil à déclencher une interruption sur faible.
    attachInterrupt(0, wakeUp, LOW);
    
    // Entrez dans l'état de mise hors tension avec les modules ADC et BOD désactivés.
    // Réveillez-vous lorsque la broche de réveil est faible.
 
    LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF); 
    
    // Désactive l'interruption de la broche externe sur la broche de réveil.
    detachInterrupt(0); 
    
    // Faites quelque chose ici
    // Exemple : lecture du capteur, enregistrement des données, transmission des données.
    // Importe Pir
   
    pinMode(IR_output,INPUT);

    Serial.begin(9600);

 if(digitalRead(IR_output)==LOW){
   Serial.println("pas de mouvement detecte");
  }
  
 if(digitalRead(IR_output)==HIGH){
   Serial.println("mouvement detecte");
  }

delay(200);
}

Mettez l’interruption sur FALLING (si c’est ce que donne votre PIR) plutôt que LOW.

Mettez le Serial.begin() dans le setup.

En général la sortie d'un PIR (HC-SR501 ou MH-SR602) monte lors d'une détection.
Donc plutôt RISING que FALLING.

Oui c’est pour ça que je disais

Encore un demandeur qui ne donne pas les informations nécessaires :woozy_face:

Et qui a sans doute posté la même question sur d’autre forum (hors site arduino) sans le dire ici à mon avis…

Bref, je zappe la suite sera sans moi.

Le bout de code pour le PIR fonctionne, je l'avais vérifié avant de l'ajouter, ici j'ai donc interruption du message"pas de mouvement détecté", donc il détecte le mouvement mais n'affiche pas"mouvement détecté".
J'ai changé comme vous m'aviez dit avec FALLING, ensuite avec RISING, c'est toujours du pareil au même.
Pour le déplacement de code dans setup, il n'affiche plus en continu"pas de mouvement detecte", ça ne s'affiche qu'une fois, et plus rien après même si mouvement !

J'ai été bloqué sur ce Forum car c'était mon premier message, j'ignorais quand ce serais débloqué.

J'ai trouvé votre post sur un autre forum.
C'est pas respectueux. donc bonne chance mais ce sera sans moi

Juste pour savoir, j'ai abordé le sujet au début sur Ritonduino de hbachetti, il 'avait conseillé le code powerDownWakeExternalInterrupt,est ce aussi irrespectueux que j'ai continué ensuite sur Forum ?
Ici j'était bloqué pour une période indéterminée, et si j'avais réponse ailleurs je l'aurais dit et aurais montré la correction, d'ailleurs si tu sais que je suis sur un autre Forum c'est que toi aussi tu es de 2 côtés a la fois.

Non je n'y suis pas inscrit, ça me suffit ici. Mais ce n'est pas le problème. Ce qui n'est pas respectueux c'est de poster la même question à plusieurs endroits, sans le dire.

Des bénévoles vont perdre leur temps à essayer de vous aider alors que la même réponse a peut-être été donnée sur l'autre forum --> vous vous fichez donc du fait que des gens perdent leur temps pour vous aider.

bref - je profite de la fonction sympa du forum qui permet d'ignorer les membres, vous rejoignez donc ma liste.
bonne chance.

Je n'ai pas eu le temps de le dire, j'étais bloqué et n'ai pas vu qu'on m'avait débloqué, je suis sur l'autre pour la programmation en Python et Julia, ce n'est qu'un concours de circonstance ou tu me juges malgré que je l'ai expliqué que j'étais bloqué ici.

Etant nouveau j'ignore comment fermé la discution, je continue de l'autre côté, mais même que je signalerais dès le départ je doute que ça plaise que je suis depuis toujours sur un Forum de programmation pas dédié qu'a l'Arduino comme ici, ce n'étais concours de circonstance.

Pourquoi wakeUpPin ET IR_output alors que c'est la même broche ?
Pourquoi pinMode(IR_output,INPUT); dans loop() alors que pinMode(wakeUpPin, INPUT); est déjà dans le setup ?

Merci pour ta réponse, j'arrête ici pour ce sujet, seulement ce sujet, je ferais attention la prochaine fois de poser la question sur un seul forum, j'ai recopié 2 codes fonctionnels l'un a la suite de l'autre tout simplement, et j'ai pas l'habitude de déclaration de variable en C++.

Vos réponses était correcte mais je croyais que RISING c'était dans la condition IF.

:thinking: :thinking: :thinking: