Servo moteur commandé par HC SR04
Bonjour,
Je viens de faire un montage avec une carte uno et un moteur sg90 commandé par un module ultra sons hc sr04, une idée de passage à niveau, la barrière se baisse reste 5 secondes en bas puis se reléve s'il n'y a pas de détection ( train )
Mon code est bien compilé mais voila que la barriére se baisse bien mais reste en bas
Si vous avez une idée
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| #include <Servo.h>
#include <Ultrasonic.h>
const int Trig = 5; // pin trigger HC-SR04
const int Echo = 6; // pin echo HC-SR04
Servo servoBarriere;
long cm; // variable de stockage de distance de l'objet en cm
Ultrasonic HCSR04 (Trig, Echo);
void setup()
{
servoBarriere.attach(3); // servo leve barriere
}
void loop()
{
if(cm >0 && cm < 20) // un train passe
{
servoBarriere.write (0); // La barrière est baissée (ajustez la valeur en fonction de la calibration de votre servo pour avoir la barrière à l'horizontale)
delay(5000); // Temps de traitement du baisser de barrière en millisecondes (15000 millisecondes = 15 secondes). Changez cette valeur si vous voulez rallonger ou raccourcir la durée.
}
else if(cm >= 20) // Il n'y a pas de présence du train. Ici la valeur du rayonnement des ultrasons est d'environ 20 cms.
{
servoBarriere.write(90); // Lève la barrière à 90² (ajustez la valeur en fonction de la calibration de votre servo pour avoir la barrière à la verticale)
}
} |
Cordialement
Stéphanie