Bonjour,
J'aimerai que quand mon détecteur infrarouge détecte quelque chose, il met a 10 degré le servo-moteur qui est a 100 degré dans son état initiale le seule problème c'est que la led qui est sur l'Arduino elle fait exactement ce que je veux mais pas le servo moteur alors je ne comprend pas trop pourquoi.
Ce qui ce passe si on fait passer le capteur a l'état de détection, un bruit de moteur mais aucun mouvement a la fin du temps d'attente, juste après que la led du arduino passe a l'état 0.
Voici mon code :
#include <Servo.h>
Servo myservo; // création de l'objet myservo
int val_M; // Variable contenant la valeur courante du potentiomètre
int servo_pin = 3; // Pin auquel le servo est relié
//le temps que nous donnons au capteur pour calibrer (10-60 secondes selon la fiche technique)
int calibrationTime = 10;
int ledPin = 13; // LED arduino pin 13
int inputPin = 2; // Pin détecteur en OUT / PS: Vcc sur pin 5V et GND sur GND
int pirState = LOW; // nous commençons, en supposant qu'aucun mouvement n'a été détecté
int val = 0; // variable pour lire l'état des broches
void setup() {
myservo.attach(servo_pin);
pinMode(ledPin, OUTPUT); // déclarer la LED comme sortie
pinMode(inputPin, INPUT); // déclarer le capteur comme entrée
Serial.begin(9600);
val_M = 100; //position ouverte
Serial.print("Calibrage du détecteur ");
for(int i = 0; i < calibrationTime; i++){
Serial.print(".");
delay(1000);
}
Serial.print("\n");
}
void loop(){
myservo.write(val_M); //attribution l'angle du servo-moteur
val = digitalRead(inputPin); // lire la valeur d'entrée
//Serial.println(val);
if (val == HIGH) { // vérifier si l'entrée est haute
digitalWrite(ledPin, LOW); // éteindre la LED
val_M = 100; //position ouverte
delay(150);
if (pirState == LOW) {
Serial.println("Aucune détection");
//enregistrement de l'état
pirState = HIGH;
}
} else {
digitalWrite(ledPin, HIGH); // turn LED ON
val_M = 10; //position fermer
Serial.println("Alerte !!!");
if (pirState == HIGH){ //remise a zero de l'état
pirState = LOW;
}
delay(5000);
}
}
Merci d'avance de votre réponse.