Il est assez simple de créer un compteur de passage afin d’enregistrer le nombre de personnes qui entre dans une pièce.
Nous pouvons utiliser un capteur ultrason HC-SR04. Lorsqu’une personne passera devant le capteur, celui-ci prendra la mesure de la distance entre lui et cette personne. Si la distance est inférieure à 10 cm, nous considérons qu’une personne a franchi la porte, et nous incrémentons ainsi le compteur.
Un interrupteur est branché à l’Arduino. Celui-ci permet de réinitialiser le compteur à 0. La LED permet d’indiquer qu’une personne a été détecté devant la porte.

// définition des broches et variables utilisées
int trig = 3;
int echo = 2;
int interrupteur = 7;
int led = 8;
int lecture_echo;
int distance;
int compteur = 0;
int a;
void setup()
{
pinMode(trig, OUTPUT);
digitalWrite(trig, LOW);
pinMode(echo, INPUT);
pinMode(7, INPUT_PULLUP);
pinMode(8, OUTPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
lecture_echo = pulseIn(echo, HIGH);
// La doc constructeur dit que si pn veut une distance en cm, il faut diviser l'echo par 58
distance = lecture_echo / 58;
// Il est possible d'afficher la distance en cm. Décommenter les lignes du dessous.
// Serial.print("Distance en cm : ");
// Serial.println(distance);
// Si l'interrupteur est à 1, le compteur se remet à 0
if (interrupteur = HIGH) {
compteur = 0;
}
else {
if (distance > 10) {
a = 0;
}
if (distance < 10 && a == 0) {
compteur = compteur + 1;
a = 1;
Serial.print("Compteur : ");
Serial.println(compteur);
}
if (distance < 10) {
digitalWrite(led, HIGH);
delay(100);
digitalWrite(led, LOW);
delay(100);
}
}
}
Compteur - HC-RS04
5 comments