Arduino - Capteur de mouvement - LED
Nous allons apprendre à utiliser un Arduino pour allumer/éteindre la LED en fonction de la détection de mouvement par le capteur de mouvement HC-SR501 :
- Si un mouvement est détecté, allumez la LED
- Si aucun mouvement n'est détecté, éteignez la LED
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.
À propos des LED et du capteur de mouvement.
Si vous ne connaissez pas les LED et les capteurs de mouvement (brochage, fonctionnement, programmation...), renseignez-vous dans les tutoriels suivants :
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Réglage initial
Time Delay Adjuster | Screw it in anti-clockwise direction fully. |
Detection Range Adjuster | Screw it in clockwise direction fully. |
Repeat Trigger Selector | Put jumper as shown on the image. |
Code Arduino
/*
* Ce code Arduino a été développé par newbiely.fr
* Ce code Arduino est mis à disposition du public sans aucune restriction.
* Pour des instructions complètes et des schémas de câblage, veuillez visiter:
* https://newbiely.fr/tutorials/arduino/arduino-motion-sensor-led
*/
const int MOTION_SENSOR_PIN = 7; // Arduino pin connected to the OUTPUT pin of motion sensor
const int LED_PIN = 3; // Arduino pin connected to LED's pin
int motionStateCurrent = LOW; // current state of motion sensor's pin
int motionStatePrevious = LOW; // previous state of motion sensor's pin
void setup() {
Serial.begin(9600); // initialize serial
pinMode(MOTION_SENSOR_PIN, INPUT); // set arduino pin to input mode
pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode
}
void loop() {
motionStatePrevious = motionStateCurrent; // store old state
motionStateCurrent = digitalRead(MOTION_SENSOR_PIN); // read new state
if (motionStatePrevious == LOW && motionStateCurrent == HIGH) { // pin state change: LOW -> HIGH
Serial.println("Motion detected!");
digitalWrite(LED_PIN, HIGH); // turn on
}
else
if (motionStatePrevious == HIGH && motionStateCurrent == LOW) { // pin state change: HIGH -> LOW
Serial.println("Motion stopped!");
digitalWrite(LED_PIN, LOW); // turn off
}
}
Étapes rapides
- Connectez l'Arduino au PC via le câble USB
- Ouvrez l’IDE Arduino, sélectionnez la bonne carte et le bon port
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
- Cliquez sur le bouton Upload de l'IDE Arduino pour charger le code sur l'Arduino
- Déplacez votre main devant le capteur
- Observez le changement d'état de la LED
Explication du code
Lisez l'explication ligne par ligne dans les lignes de commentaire du code source !