Bonjour,
Je suis en train de réaliser un projet qui consiste à compter le nombre de personnes dans une pièce grâce à une barrière infrarouge.
Cette barrière est composée de deux diodes émettrices infrarouges (SFH4554) et de deux photodiodes (BPV10NF) sachant que chaque diode émettrice a sa photodiode de l'autre côté de l'entrée de la pièce.
Utilisant une photodiode et non un récepteur qui ne reçoit comme données que des 0 ou 1, mon moniteur série m'indique que la valeur captée se situe entre 1 et 10 environ pour chacune des deux photodiodes. Mais voilà : dans mon code, quand il se lance et quand je passe à travers la barrière, le nombre de personnes ne fait que d'augmenter et jamais la sortie n'est détectée. Voici mon code, j'espère que quelqu'un pourra m'aider. (PS : j'avais déjà fait ce projet en maquette et le code avait fonctionné)
En espérant que j'ai donné toutes les informations nécessaires pour résoudre mon problème.Code:int ndp = 0; void setup() { pinMode(A0, INPUT); // 1 ère Photodiode pinMode(A1, INPUT); // 2ème Photodiode Serial.begin(9600); } void loop() { if ((analogRead(A1)) <= 1) { delay(150); if ((analogRead(A0)) <= 7) { ndp = ndp - 1; Serial.println (ndp); delay(1000); } } if ((analogRead(A0)) <= 7) { delay(150); if ((analogRead(A1)) <= 1) { ndp = ndp + 1; Serial.println (ndp); delay(500); } } }
-----