#include <LiquidCrystal_I2C.h>
#include <Servo.h>
// Définir les broches
int pirPin = 2; // Broche pour le capteur PIR
int servoPin = 9; // Broche pour le servomoteur
// Créer un objet pour le servomoteur
Servo myServo;
// Créer un objet pour l'écran LCD
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// Initialiser le capteur PIR
pinMode(pirPin, INPUT);
// Initialiser le servomoteur
myServo.attach(servoPin);
// Initialiser l'écran LCD
lcd.init();
lcd.backlight();
// Position initiale du servomoteur
myServo.write(0); // Positionne le servomoteur à 0° (position initiale)
// Afficher un message de bienvenue sur l'écran LCD
lcd.setCursor(0, 0);
lcd.print("Prêt à détecter");
lcd.setCursor(0, 1);
lcd.print("un mouvement");
delay(2000);
}
void loop() {
// Lire l'état du capteur PIR
int motionDetected = digitalRead(pirPin);
// Si un mouvement est détecté
if (motionDetected == HIGH) {
// Afficher un message de détection sur l'écran LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Mouvement détecté!");
// Faire tourner le servomoteur à 90°
myServo.write(90);
// Attendre quelques secondes
delay(2000);
// Revenir à la position initiale (0°)
myServo.write(0);
// Attendre un moment avant de recommencer à vérifier le mouvement
delay(3000);
} else {
// Si aucun mouvement n'est détecté, afficher "En attente"
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("En attente...");
// Ne rien faire avec le servomoteur, il reste à sa position initiale
}
}