Sensibilité barrière IR

Bonjour,

Je cherche à détecter le passage d'une étiquette en papier (et je ne suis pas vraiment calé en électronique :confused: )

Pour cela j'ai acheté une barrière IR : Fiche produit : Transceivers infrarouge, Optek, OPB100Z

J'ai câblé les capteurs suivant le schéma suivant : Cropped - Light Break Sensor Wiring Diagram for Ammo Count… | Flickr

Mon problème :

  • lorsque les capteurs sont à environ 10mm en face l'un de l'autre, la détection de l'étiquette ne se fait pas. Pour qu'il y ait détection, il faut mettre 2 cartes de visite l'une sur l'autre pour que la barrière soit suffisamment opaque.
  • lorsque les capteurs sont à environ 50mm l'un de l'autre, pour qu'il y ait détection, il faut l'épaisseur de 2 étiquettes minimum (c'est déjà mieux).

J'imagine donc qu'en les écartant encore ça devrait fonctionner, mais ça ne m'arrange pas trop vis à vis de l'utilisation finale.

D'où ma question : est-il possible de régler la sensibilité de ces capteurs IR (par exemple en jouant sur les résistances ?) afin de détecter le passage d'une seule étiquette lorsqu'ils sont à environ 10mm l'un de l'autre ?

Sinon, quel type de capteur recommanderiez vous pour cette application ?

Merci !

Eric

Le code utilisé, allumant la led 13 lorsque la barrière IR est rompue :

int pin_barriere = 12;

void setup() {
pinMode(pin_barriere, INPUT); //Activation de la pin pin_barriere en type entrée
pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
digitalWrite(LED_BUILTIN, LOW);   // turn the LED off
if (digitalRead(pin_barriere) ==0) //Si il y a une étiquette
  {
digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
delay(100); 
}
}

Bonjour
Je dirais que ça dépend de la configuration des étiquettes. Elles semblent un peu transparentes. Quelles sont les dimensions (en gros) ? Arrivent-elles toutes de la même manière ? A quelle vitesse ? Faut-il les compter ou juste détecter leur passage ? Si plusieurs arrivent en même temps, un peu superposées, le comptage sera plus difficile.

Peut-être qu'un capteur de distance HC-SR04 pourrait convenir :
Il pourrait discriminer deux étiquettes qui arrivent en même temps mais à des distances différentes.

Il existe aussi des barrières laser, le capteur de couleur (TCS3200) et les capteurs IR utilisés pour suivre les lignes sur les robots (par exemple le TCRT5000).
Tu peux aussi utiliser plusieurs capteurs pour renforcer la détection (fusion de capteurs).

Côté code, tu pourrais mettre un while plutôt qu'un if :

int pin_barriere = 12;

void setup() {
  pinMode(pin_barriere, INPUT); //Activation de la pin pin_barriere en type entrée
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, LOW);   // turn the LED off
  while (digitalRead(pin_barriere) == 0) //Si il y a une étiquette
  {
    digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  }
}

Comme ça la LED restera allumée tant que l'étiquette est détectée.

Si le fonctionnement est 'moins mauvais' avec un écartement de 50mm essayez d'augmenter la valeur de la résistance en série avec la LED Ir (150 Ohms, 220 Ohms, 330 Ohms, 470 Ohms...) (Il est également possible de réduire progressivement la résistance de collecteur du phototransistor)

Vous trouverez peut être une plage de valeurs ou le passage d'une seule épaisseur d'étiquette est détecté pour l'écartement souhaité.

C'est un problème de saturation du récepteur avec un niveau d'émission trop important pour ton application.
Si tu ne peux pas jouer sur la valeur du courant tu peux mettre des filtres atténuateurs.

Je pense aux pochettes plastique de couleur pour ranger des feuilles de papiers. Tu en choisi une rouge de préférence et tu fixes une ou plusieurs épaisseur de plastique avec du scotch sur le récepteur.
Tu pourrai faire de même avec l'émetteur mais dans ce cas je crains de la dispersion de faisceau lumineux -> récepteur en premier et si cela ne suffit pas émetteur ensuite.

J'ai mis une résistance de 4700 Ohms, et ça fonctionne !
même dans le cas où les 2 diodes sont très proches (10mm), ça m'arrange :wink: .

Merci à tous pour vos réponses