« Arduino SR501 » : différence entre les versions
De The Linux Craftsman
Autres actions
| (2 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 4 : | Ligne 4 : | ||
[[Fichier:SR501.jpg|centré|150px]] | [[Fichier:SR501.jpg|centré|150px]] | ||
Ce composant possède une sortie numérique qui est à '' | Ce composant possède une sortie numérique qui est à ''0v'' en l'absence de mouvement et ''5v'' sinon. | ||
D'autres réglages sont possibles comme: | |||
*la sensibilité | |||
*le délais | |||
*le type de déclenchement (impulsion simple ou répétée) | |||
[[Fichier:SR501_config.png|centré|250px]] | [[Fichier:SR501_config.png|centré|250px]] | ||
| Ligne 14 : | Ligne 19 : | ||
== Récupérer la présence de mouvement == | == Récupérer la présence de mouvement == | ||
Un exemple de code qui permet de récupérer la présence de mouvement. Notez l'utilisation d'une résistance de ''pull-up'' sur le PIN 2 ! | Un exemple de code qui permet de récupérer la présence de mouvement. Notez l'utilisation d'une résistance de ''pull-up'' sur le PIN 2 ! | ||
< | <syntaxhighlight lang="c"> | ||
int pirPin = 2; | int pirPin = 2; | ||
int pirState = LOW; | int pirState = LOW; | ||
| Ligne 43 : | Ligne 48 : | ||
} | } | ||
} | } | ||
</ | </syntaxhighlight> | ||
== Résultat == | == Résultat == | ||
Voila le résultat : | Voila le résultat : | ||
[[Fichier:Arduino SR501 reading serial.png|centré|400px]] | [[Fichier:Arduino SR501 reading serial.png|centré|400px]] | ||
Dernière version du 20 décembre 2025 à 17:06
Partie électronique
Le composant
Le SR501 est généralement monté sur une platine.

Ce composant possède une sortie numérique qui est à 0v en l'absence de mouvement et 5v sinon.
D'autres réglages sont possibles comme:
- la sensibilité
- le délais
- le type de déclenchement (impulsion simple ou répétée)

Le montage
Le montage suivant prévoit un fil data qui nous permettra de lire le retour du SR501 sur le PIN 2 de l'Arduino.

Partie logicielle
Récupérer la présence de mouvement
Un exemple de code qui permet de récupérer la présence de mouvement. Notez l'utilisation d'une résistance de pull-up sur le PIN 2 !
int pirPin = 2;
int pirState = LOW;
void setup() {
// Met la broche 2 en entrée
pinMode(pirPin, INPUT);
// Utilisation d'une résistance de pull-up sur le PIN 2
digitalWrite(pirPin, HIGH);
// Active le port série
Serial.begin(9600);
}
void loop(){
// Vérification de l'état du capteur
if (digitalRead(pirPin ) == HIGH) {
if (pirState == LOW) {
// Mouvement !
Serial.println("Motion !");
pirState = HIGH;
}
} else {
if (pirState == HIGH){
// Pas de mouvement...
Serial.println("No motion...");
pirState = LOW;
}
}
}
Résultat
Voila le résultat :
