Différences entre versions de « Arduino SR501 »
Aller à la navigation
Aller à la recherche
(Page créée avec « = Partie électronique = == Le composant == Le ''HC-SR501'' est généralement monté sur une platine. centré|150px Ce composant possède une so... ») |
|||
| (9 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
= Partie électronique = | = Partie électronique = | ||
== Le composant == | == Le composant == | ||
| − | Le '' | + | Le ''SR501'' est généralement monté sur une platine. |
| − | [[Fichier: | + | [[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]] | ||
== Le montage == | == Le montage == | ||
| − | Le montage suivant prévoit un fil ''data'' qui nous permettra de lire le retour du '' | + | Le montage suivant prévoit un fil ''data'' qui nous permettra de lire le retour du ''SR501'' sur le PIN 2 de ''l'Arduino''. |
| − | [[Fichier: | + | [[Fichier:SR501_diagram.png|centré|400px]] |
= Partie logicielle = | = Partie logicielle = | ||
== 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. | + | 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 ! |
<source lang="c"> | <source lang="c"> | ||
int pirPin = 2; | int pirPin = 2; | ||
| Ligne 18 : | Ligne 24 : | ||
void setup() { | void setup() { | ||
| − | pinMode(pirPin, INPUT); | + | // 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(){ | void loop(){ | ||
| − | if (digitalRead(pirPin ) == HIGH) { | + | // Vérification de l'état du capteur |
| + | if (digitalRead(pirPin ) == HIGH) { | ||
if (pirState == LOW) { | if (pirState == LOW) { | ||
// Mouvement ! | // Mouvement ! | ||
| Ligne 38 : | Ligne 49 : | ||
} | } | ||
</source> | </source> | ||
| + | |||
| + | == Résultat == | ||
| + | Voila le résultat : | ||
| + | [[Fichier:Arduino SR501 reading serial.png|centré|400px]] | ||
Version actuelle datée du 9 novembre 2016 à 19:27
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 :