Le module TCRT5000 réunit sur une petite carte un capteur optique à réflexion et son électronique de mise en forme : le capteur lui-même (une LED infrarouge face à un phototransistor), un comparateur LM393, un potentiomètre de réglage et deux LED témoins. On l’alimente, on le place à quelques millimètres d’une surface, et il indique si cette surface réfléchit la lumière infrarouge. C’est le capteur de base du robot suiveur de ligne, du compteur de pièces et du détecteur de bord de table.
Caractéristiques techniques
| Élément | Valeur |
|---|---|
| Capteur embarqué | TCRT5000 (LED infrarouge et phototransistor) |
| Comparateur | LM393 |
| Alimentation (VCC) | 3,3 V à 5 V continu |
| Sortie numérique (D0) | Niveau logique, seuil réglé par le potentiomètre |
| Sortie analogique (A0) | Tension proportionnelle à la lumière réfléchie |
| Réglage | Potentiomètre multitours (repère 103, soit 10 kOhm) |
| Voyants | LED d’alimentation et LED de déclenchement |
| Broches | 4 broches mâles : VCC, GND, D0, A0 |
| Distance de travail | Quelques millimètres jusqu’à environ 15 mm, selon la surface |
| Sortie analogique | Exploitable par une entrée analogique de microcontrôleur |
Comprendre les deux sorties du module
Le module expose deux signaux, et il est utile de savoir lequel choisir.
- A0 donne une tension qui varie avec la quantité de lumière infrarouge renvoyée par la surface. Sur du blanc elle est haute, sur du noir elle est basse. C’est la sortie à utiliser quand on veut mesurer un contraste plutôt que détecter un seuil : suivi de ligne fin, comptage de bandes, lecture de marques.
- D0 est la sortie d’un comparateur : elle bascule d’un état à l’autre dès que A0 franchit le seuil fixé par le potentiomètre. C’est la sortie à utiliser quand on veut seulement savoir si un objet est présent, ce qui libère le microcontrôleur de tout calcul.
Au repos, la sortie D0 est au niveau haut ; la LED témoin s’allume et la sortie passe au niveau bas lorsque la surface renvoie assez d’infrarouge pour dépasser le seuil réglé. Ce niveau dépend du réglage du potentiomètre et de la distance de montage : le premier réflexe, sur un montage neuf, est d’afficher la valeur lue dans le moniteur série avant d’écrire la logique du programme.
Applications courantes
- Robot suiveur de ligne : deux ou trois modules placés sous le châssis, à quelques millimètres du sol, comparent le blanc de la piste et le noir du support.
- Comptage d’objets sur un convoyeur ou un distributeur, avec la sortie numérique.
- Détection de fin de course et de bord de table, sans contact mécanique.
- Détection de marque sur une bande de papier, ou de rotation d’une roue percée.
- Tri automatique par couleur de surface, en lisant la sortie analogique.
Mini-projet : compteur d’objets avec la sortie numérique
Un objet passe devant le capteur, le module bascule, le compteur augmente de un. Le programme n’utilise aucune bibliothèque.
Matériel nécessaire
- Une carte Arduino Uno et son câble USB.
- Le module TCRT5000.
- Quatre fils de liaison, ou une plaque d’essai et des fils souples.
- Une petite plaque de carton blanc et quelques objets sombres pour les essais.
Câblage
| Broche du module | Connexion sur la carte |
|---|---|
| VCC | 5V |
| GND | GND |
| D0 | Broche numérique 2 |
| A0 | Entrée analogique A0 |
Le montage reste sur la même alimentation que la carte : aucune alimentation séparée n’est nécessaire. Le module porte déjà ses résistances de limitation et son comparateur, il n’y a rien à ajouter entre le capteur et la carte.
Programme
/*
* Compteur d'objets avec le module TCRT5000
* La sortie D0 est comptee une seule fois par objet ; la sortie A0
* est relue a chaque detection pour visualiser la marge de reflexion.
* Composants, brochage et fiche complete : www.marocproduits.com
*/
const int BROCHE_D0 = 2; // sortie numerique du module
const int BROCHE_A0 = A0; // sortie analogique du module
int compteur = 0;
boolean arme = true; // vrai quand le capteur ne voit aucun objet
void setup() {
Serial.begin(9600);
pinMode(BROCHE_D0, INPUT);
Serial.println("Compteur pret : passez un objet devant le capteur");
}
void loop() {
int etat = digitalRead(BROCHE_D0);
// Le capteur ne voit rien : on rearme pour le prochain objet
if (etat == HIGH) {
arme = true;
}
// Le capteur voit un objet : on compte une seule fois le passage
if (etat == LOW) {
if (arme) {
arme = false; // un seul comptage par objet
compteur = compteur + 1;
int reflexion = analogRead(BROCHE_A0);
Serial.print("Objet ");
Serial.print(compteur);
Serial.print(" - reflexion mesuree : ");
Serial.println(reflexion);
}
}
delay(10); // filtre les rebonds du signal
}
Ce que fait le programme
- Il arme une détection dès que le capteur ne voit plus rien, puis compte une seule fois le passage : le drapeau arme remplace un anti-rebond par temporisation.
- Il affiche à chaque détection la valeur analogique relevée. Sur un carton blanc cette valeur est haute, sur une surface sombre elle est basse : c’est la marge qui indique si le seuil est bien réglé.
- Le delay de 10 millisecondes limite le nombre de lectures sans retarder la détection d’un objet qui défile.
Réglages et points d’attention
- Distance de montage. Le capteur travaille au plus près : quelques millimètres pour une piste, jusqu’à environ 15 mm pour un objet bien réfléchissant. Trop loin, la quantité de lumière renvoyée s’effondre et la détection devient instable ; écarter le module ou augmenter la sensibilité ne suffit alors plus.
- Le potentiomètre ne se règle pas au hasard. Poser le montage à sa distance de travail, placer la surface à détecter, puis tourner le potentiomètre jusqu’au basculement de la LED témoin. Vérifier ensuite qu’une surface sombre ne déclenche pas le même basculement.
- La surface du capteur doit être propre. Un grain de poussière ou une trace de doigt devant la lentille fausse la mesure, et le symptôme ressemble à un mauvais réglage.
- La lumière ambiante influe. Un éclairage direct, surtout un soleil rasant, ajoute de l’infrarouge au signal utile : le module se comporte mieux à l’ombre ou sous une surface mate.
- Alimentation stable. Un module alimenté par un fil trop long, ou par une source bruitée, donne des comptages fantômes : garder les fils courts et l’alimentation propre.
- Le module détecte une réflexion, pas un obstacle distant. Un objet noir mat peut ne renvoyer pratiquement rien : pour de la détection d’obstacle à distance moyenne, c’est un autre capteur qu’il faut choisir.
Questions fréquentes
Faut-il une résistance ou un module supplémentaire pour le brancher ?
Non. La carte porte déjà les résistances de limitation de la LED infrarouge, la résistance de charge du phototransistor et le comparateur. Le capteur nu, lui, n’aurait pas cette électronique : c’est précisément l’intérêt du module.
Le module fonctionne-t-il sous 3,3 V ?
Oui, l’ensemble accepte de 3,3 V à 5 V. Sous 3,3 V comme sous 5 V le seuil se règle avec le potentiomètre ; sur une carte fonctionnant en 3,3 V, vérifier simplement que le niveau haut de D0 est bien lu comme tel.
Pourquoi mon compteur compte-t-il plusieurs fois le même objet ?
Le programme compte sur un front, mais un signal bruité produit plusieurs fronts. Augmenter la valeur du delay, réduire la longueur des fils entre le module et la carte, et vérifier le réglage du seuil : un seuil trop juste fait osciller la sortie à chaque vibration.
Peut-on brancher plusieurs modules sur une même carte ?
Oui. Chaque module prend une entrée numérique et éventuellement une entrée analogique. Pour un suiveur de ligne, trois modules reliés à trois broches numériques suffisent à donner la position du robot par rapport à la ligne.
Le module a-t-il besoin d’un temps de chauffe ?
Non, il n’y a ni lampe ni filament. Le premier réflexe utile est plutôt d’éloigner le capteur d’une source de lumière directe et de contrôler la propreté de la lentille avant de chercher une panne dans le programme.
À combiner avec
- Carte Arduino Uno R3 : la carte qui lit les sorties du module et exécute le programme de comptage ou de suivi de ligne.
- Moteur DC avec roue : pour animer un robot suiveur dont le module TCRT5000 est le capteur de ligne.
- Module L298N : la commande des deux moteurs d’un suiveur de ligne, entre la carte et les moteurs.
- Plaque d’essai 830 : pour câbler le module, la carte et les moteurs sans soudure pendant la mise au point.
- Capteur d’obstacle infrarouge : complémentaire du TCRT5000, il détecte un obstacle à distance moyenne là où le module à réflexion travaille au plus près.












