Résolu sur le forum : Borne Wallbox Pulsar Plus 7,4 kW sur abonnement 6 kVA : quel délestage avant accord copro (urgent)Ma panne diagnostiquée — réponse sous 48 h29 €

Capteur infrarouge Arduino : branchement et code de détection

Arduinomis à jour le 4 mars 2026

Les capteurs infrarouges transforment une simple carte Arduino en véritable système de détection capable de repérer un obstacle, un passage ou même une télécommande. Avec quelques branchements et quelques lignes de code bien pensés, un projet qui semble technique devient soudain très accessible.

Entre capteur IR analogique, numérique ou de type récepteur de télécommande, les différences restent parfois floues. Pourtant, chaque modèle répond à un besoin précis et offre des possibilités très concrètes pour automatiser, compter, détecter ou contrôler à distance.

Élément clé Synthèse
Fonction du capteur IR Détecte la présence d’un obstacle en envoyant un rayon infrarouge puis en analysant son retour.
Branchement Arduino Alimentation en 5V, masse commune, sortie du capteur reliée à une entrée numérique (ex: D2).
Comportement du signal Sortie passe à LOW lorsqu’un obstacle est détecté.
Code Arduino typique Lecture digitale simple et affichage sur le moniteur série pour confirmer la détection.

Capteur infrarouge Arduino : principes, usages et vocabulaire technique

Un capteur infrarouge pour Arduino mesure la présence ou le passage d’un objet grâce à une lumière invisible à l’œil nu. Il utilise un faisceau infrarouge émis puis réfléchi par un obstacle, ou directement reçu depuis une source comme une télécommande. La carte Arduino interprète ensuite ce signal et exécute une action : allumer une LED, déclencher un buzzer, compter un passage, envoyer une information à un autre module.

Dans l’écosystème Arduino, plusieurs types de capteurs infrarouges existent : modules de détection d’obstacle, barrières IR, récepteurs pour télécommandes, capteurs de ligne pour robot suiveur, détecteurs de proximité analogiques, etc. Chaque famille dispose d’une électronique interne spécifique, d’une portée différente et d’un mode de sortie adapté à certains scénarios.

ArduinoArduino et domotique : automatiser sa maison pour pas cher

Ce type de capteur se trouve dans de nombreux projets : robot mobile, borne de comptage, système anti-collision, automate de porte, domotique, ou encore interface de contrôle par télécommande IR. En combinant un capteur infrarouge avec d’autres modules, comme un capteur ultrason HC-SR04, on obtient une mesure de distance plus robuste et une meilleure fiabilité en environnement varié.

Différences entre capteur infrarouge, télécommande IR et barrière optique

Le terme « capteur infrarouge » recouvre plusieurs dispositifs proches mais aux usages distincts. Pour structurer ces différences, le tableau suivant met en regard les variantes les plus fréquentes dans les projets Arduino.

Type de capteur IR Fonction principale Sortie Usage typique
Module de détection d’obstacle IR Détecter un objet à courte distance (quelques cm) Numérique (0/1) via comparateur Anti-collision pour robot, détection d’approche
Récepteur IR pour télécommande Recevoir un code infrarouge modulé Signal numérique modulé (protocole NEC, etc.) Pilotage par télécommande, menu, changement de mode
Barrière infrarouge (émetteur + récepteur séparés) Détecter un passage en coupant un faisceau Numérique (faisceau OK / coupé) Comptage d’objets, contrôle d’accès, portique
Capteur IR analogique de proximité Mesurer une distance approximative Tension analogique proportionnelle Robot suiveur de mur, évitement d’obstacle avec gradation
Capteur de ligne IR (suiveur de ligne) Détecter la différence clair/foncé au sol Souvent numérique, parfois analogique Robot suiveur de ligne, guidage automatique

Un récepteur de télécommande IR ne se câble pas comme un simple détecteur d’obstacle. Le signal est modulé, suit un protocole (NEC, Sony, RC5…) et nécessite une librairie dédiée. Pour ce sujet, le focus reste sur les modules de détection d’obstacle IR et les récepteurs de base les plus utilisés avec Arduino. Pour un pilotage plus avancé avec télécommande, un approfondissement se trouve dans un tutoriel dédié comme télécommande infrarouge Arduino.

À garder en tête : la lumière du soleil, certains néons ou LED puissantes parasitent les capteurs IR. Les modules prévus pour télécommande disposent souvent d’un filtre et d’une modulation qui limitent fortement ces perturbations, contrairement aux modules d’obstacle très simples.

Les différents capteurs infrarouges pour Arduino et leurs caractéristiques

Pour bien choisir son capteur IR, quelques paramètres méritent une attention particulière : portée utile, type de sortie (analogique ou numérique), alimentation, sensibilité réglable, angle de détection, présence d’un filtre IR et d’une modulation. Cette section détaille les profils de modules rencontrés le plus souvent dans les kits Arduino.

Module de détection d’obstacle infrarouge classique

Ce module intègre un émetteur infrarouge (LED IR) et un phototransistor ou photodiode. Un petit circuit comparateur ajuste la sensibilité à l’aide d’un potentiomètre. Lorsque la quantité de lumière réfléchie par un obstacle dépasse un seuil, la sortie se met à l’état bas ou haut (suivant la carte).

Caractéristiques courantes :

  • Alimentation : 3,3 V ou 5 V, pratique pour Arduino Uno, Nano ou Mega.
  • Sortie numérique : niveau logique 0 ou 1 directement exploitable sur une entrée digitale.
  • Portée : environ 2 à 30 cm selon l’angle, la couleur et la nature de l’obstacle.
  • Réglage : potentiomètre pour ajuster la distance de déclenchement.

Le module possède souvent une LED témoin intégrée. Elle signale visuellement l’état de détection, ce qui simplifie un diagnostic rapide lors de la phase de test. Ce type de capteur se place en façade d’un robot, sur les côtés, ou devant un mécanisme pour ressentir une présence.

Récepteur infrarouge pour télécommande

Le récepteur IR pour télécommande est calibré pour recevoir un signal modulé autour de 38 kHz. Il inclut un amplificateur, un filtre et un démodulateur. Au repos, la sortie est généralement à l’état haut. Lorsqu’un code IR arrive, il génère une succession d’impulsions décodables par le microcontrôleur.

Ses avantages :

  • Grande immunité aux lumières parasites grâce au filtrage.
  • Portée souvent supérieure à 5 m avec une télécommande adaptée.
  • Compatibilité avec les bibliothèques Arduino existantes pour décoder les protocoles standards.

Ce composant se combine particulièrement bien avec d’autres capteurs de proximité. Par exemple, un robot peut utiliser la télécommande IR pour recevoir des ordres, un capteur ultrason HC-SR04 pour la distance et un module infrarouge d’obstacle pour la détection très rapprochée.

Barrières infrarouges et capteurs analogiques de distance

Une barrière infrarouge est composée d’un émetteur et d’un récepteur séparés physiquement. Le système crée un faisceau entre deux points. Lorsque ce faisceau se trouve interrompu, le récepteur change d’état et signale une coupure. Ce montage sert à compter des objets sur un convoyeur, contrôler le passage à un portique, ou déclencher un mécanisme lors d’une interruption volontaire.

Les capteurs IR analogiques de distance génèrent une tension proportionnelle, ou du moins corrélée, à la distance de l’obstacle. La carte Arduino lit la valeur via une entrée analogique et en déduit une distance approximative, souvent via une courbe de calibration ou une table. La précision dépend fortement du modèle et des conditions.

« Un capteur infrarouge analogique bien calibré fournit une information de distance suffisante pour piloter un robot mobile, surtout lorsqu’on combine ces données avec d’autres capteurs comme l’ultrason ou les contacteurs mécaniques. »

Conseil pratique : pour un projet Arduino de niveau débutant, un module de détection d’obstacle IR numérique reste plus simple à exploiter qu’un capteur de distance analogique. L’entrée digitale évite toute conversion complexe et permet un code très court. Un bon point de départ figure dans une série de projets faciles comme les projets Arduino pour débutant.

Branchement d’un capteur infrarouge d’obstacle sur Arduino

Les modules d’obstacle infrarouge standard possèdent trois broches : VCC, GND et OUT (ou D0). Certains modèles proposent aussi une sortie analogique A0, pratique pour lire un niveau de signal avant comparaison. Le câblage reste simple et rapide, à condition de respecter la polarité et le niveau logique de la sortie.

Schéma de câblage classique sur Arduino Uno

Pour un module IR d’obstacle à sortie numérique, un câblage typique s’effectue ainsi :

  • VCC du module → +5 V de l’Arduino (ou 3,3 V selon la carte et le module).
  • GND du module → GND (masse) de l’Arduino.
  • OUT du module → une entrée digitale Arduino, par exemple la broche 2.

Ce branchement assure une référence commune entre le capteur et la carte. Sans masse partagée, le signal logique n’a plus de signification, même si les tensions semblent correctes.

Dans de nombreux modules, la sortie est active à l’état bas lorsqu’un obstacle est détecté. La LED témoin du capteur s’allume alors, tandis que la sortie passe à 0 V. Cette inversion perturbe parfois au début, d’où l’intérêt de vérifier le datasheet ou de faire un test rapide avec un programme minimaliste.

Alimentation, polarité et compatibilité des niveaux logiques

La majorité des modules infrarouges de kits Arduino fonctionne en 5 V. Certains capteurs plus récents acceptent une plage plus large, de 3,3 V à 5 V, ce qui les rend compatibles avec des cartes comme l’ESP32 ou certains modèles ARM. Un rapide contrôle des inscriptions sur le PCB ou de la fiche produit évite une erreur d’alimentation.

Points de vigilance :

  • Ne jamais inverser VCC et GND : la diode IR supporte mal ce type d’erreur.
  • Respecter la tension maximale admissible : au-delà, le régulateur interne ou le comparateur risque une dégradation.
  • Vérifier si la sortie est en logique directe ou inversée (LOW = obstacle ou HIGH = obstacle).

Pour un système modulaire, certains passionnés ajoutent une résistance en série sur l’alimentation ou un fusible réarmable pour protéger les modules IR. Cette approche limite les conséquences en cas de court-circuit ou de branchement hasardeux sur une maquette très dense.

Point de vigilance : certains modules IR partagent exactement le même format que d’autres capteurs (par exemple des capteurs à effet Hall ou des capteurs de flamme). Avant de connecter le module, un contrôle du marquage des broches évite de confondre deux composants visuellement proches.

Utilisation de la sortie analogique (A0) lorsque disponible

Sur certains modules, la sortie A0 fournit directement la valeur analogique lue par le photorécepteur. La carte Arduino peut donc mesurer le niveau de lumière infrarouge reçu, puis appliquer un seuil logiciel ou un algorithme plus sophistiqué.

Avantages de cette approche :

  • Réglage du seuil par code et non plus uniquement par potentiomètre.
  • Possibilité de compenser progressivement une variation de lumière ambiante.
  • Préparation à un filtrage logiciel ou à une moyenne glissante des mesures.

Dans ce cas, A0 du capteur se relie à une entrée analogique de l’Arduino, par exemple A0 de la carte. Le code lit régulièrement la valeur via analogRead() et compare le résultat à une valeur de référence choisie en fonction des tests.

Code Arduino de base pour la détection infrarouge (sortie numérique)

Une fois le capteur branché, la carte Arduino doit analyser l’état de la broche OUT. Ce premier exemple lit une sortie numérique de capteur IR d’obstacle et allume une LED sur la carte lorsque l’obstacle est détecté. Une écriture sur le moniteur série fournit en parallèle un retour textuel.

Exemple de code minimal pour capteur infrarouge d’obstacle

Le code suivant illustre une structure simple, claire, orientée vers l’apprentissage :

const int pinCapteurIR = 2;     // Broche de sortie du capteur IR (OUT) connectée à D2
const int pinLed       = 13;    // LED intégrée à la carte Arduino

void setup() {
  pinMode(pinCapteurIR, INPUT);   // Broche du capteur en entrée
  pinMode(pinLed, OUTPUT);        // LED en sortie

  Serial.begin(9600);             // Ouverture du port série
  Serial.println("Initialisation capteur infrarouge...");
}

void loop() {
  int etatCapteur = digitalRead(pinCapteurIR); // Lecture de l'état du capteur

  // Selon les modules, etatCapteur vaut 0 ou 1 lorsqu'un obstacle est détecté
  if (etatCapteur == LOW) {  // LOW = obstacle détecté (cas fréquent)
    digitalWrite(pinLed, HIGH);
    Serial.println("Obstacle detecte");
  } else {
    digitalWrite(pinLed, LOW);
    Serial.println("Aucun obstacle");
  }

  delay(100); // Petite pause pour limiter le flux sur le moniteur serie
}

Ce programme suppose un capteur actif à l’état bas. Si le module utilisé fonctionne à l’inverse, il suffit d’ajuster la condition dans le if et le comportement de la LED s’aligne immédiatement.

Lors des premiers essais, une approche consiste à passer la main devant le capteur à différentes distances, dans plusieurs directions, pour observer la variation de l’état sur le moniteur série. Cette méthode permet d’estimer rapidement la portée utile dans le montage réel.

Ajout d’un filtrage logiciel pour réduire les faux déclenchements

Les sources lumineuses parasites ou un montage mécanique un peu souple génèrent parfois des détections erratiques. Pour stabiliser le comportement du capteur IR, une solution simple consiste à appliquer un petit filtrage logiciel par validation de plusieurs lectures consécutives avant de déclarer la présence d’un obstacle.

const int pinCapteurIR = 2;
const int pinLed       = 13;

bool obstacleDetecte = false;

void setup() {
  pinMode(pinCapteurIR, INPUT);
  pinMode(pinLed, OUTPUT);
  Serial.begin(9600);
}

bool lectureFiltreeCapteur(int nbLectures, int delaiEntreLectures) {
  int compteurObstacle = 0;

  for (int i = 0; i < nbLectures; i++) {
    if (digitalRead(pinCapteurIR) == LOW) { // LOW = obstacle sur ce module
      compteurObstacle++;
    }
    delay(delaiEntreLectures);
  }

  // On valide la détection si une majorité des lectures indiquent un obstacle
  return (compteurObstacle > nbLectures / 2);
}

void loop() {
  obstacleDetecte = lectureFiltreeCapteur(5, 10); // 5 lectures espacées de 10 ms

  if (obstacleDetecte) {
    digitalWrite(pinLed, HIGH);
    Serial.println("Obstacle confirme");
  } else {
    digitalWrite(pinLed, LOW);
    Serial.println("Zone libre");
  }
}

Ce type de filtrage ne remplace pas un positionnement correct du capteur, ni un réglage soigné du potentiomètre, mais il améliore sensiblement la stabilité de la détection sur des projets mobiles ou soumis à des vibrations.

Astuce : pour un robot mobile, un filtrage logiciel couplé à une lecture de plusieurs capteurs IR positionnés autour du châssis offre une vision plus cohérente de l’environnement. La détection simultanée sur plusieurs modules donne une meilleure certitude de la présence d’un obstacle réel.

Lecture d’un capteur infrarouge en analogique et seuil logiciel

Lorsqu’un module fournit une sortie analogique, la carte Arduino mesure une valeur comprise entre 0 et 1023 via analogRead(). La lumière infrarouge reçue augmente souvent cette valeur, mais la relation exacte dépend du montage interne.

Code Arduino pour lecture analogique

Le code suivant illustre la lecture de la broche analogique A0 du capteur et l’application d’un seuil logiciel :

const int pinCapteurIRAnalogique = A0;
const int pinLed                 = 13;

int seuilDetection = 500; // Valeur de référence à ajuster après essais

void setup() {
  pinMode(pinLed, OUTPUT);
  Serial.begin(9600);
  Serial.println("Lecture analogique capteur IR...");
}

void loop() {
  int valeurBrute = analogRead(pinCapteurIRAnalogique);
  Serial.print("Valeur capteur : ");
  Serial.println(valeurBrute);

  if (valeurBrute > seuilDetection) {
    digitalWrite(pinLed, HIGH);
    Serial.println("Obstacle ou presence detecte(e)");
  } else {
    digitalWrite(pinLed, LOW);
    Serial.println("Niveau IR faible");
  }

  delay(100);
}

Pour ajuster le seuil, une méthode efficace consiste à afficher la valeur mesurée à vide, puis en présence d’un obstacle à la distance cible, et choisir une valeur intermédiaire. Une marge de sécurité de quelques dizaines de points limite les faux positifs lorsque la lumière ambiante fluctue.

Calibration et adaptation à l’environnement lumineux

Le comportement d’un capteur IR analogique dépend fortement de l’éclairage environnant, de la couleur des surfaces, de leur brillance, ainsi que de l’angle d’incidence. Un simple changement de support (mur blanc, carton noir, surface brillante) modifie drastiquement la tension de sortie pour une même distance.

ArduinoPiloter un relais 230 V avec Arduino en sécurité : 5 erreurs à éviter

Stratégies pour une calibration plus robuste :

  • Mesurer plusieurs fois la valeur à vide et faire une moyenne.
  • Enregistrer les valeurs pour différentes distances et tracer une courbe.
  • Utiliser un seuil adapté à chaque type de fond si l’environnement varie fortement.
  • Limiter la portée de détection au domaine où la courbe reste la plus stable.

« La calibration d’un capteur infrarouge reste contextuelle : une configuration de laboratoire ne se transpose pas toujours directement sur une machine réelle. Un court temps de réglage sur site améliore nettement la fiabilité du système. »

Note : lorsqu’un projet exige une mesure de distance plus linéaire et moins sensible à la couleur, l’association avec un capteur ultrasonique comme le HC‑SR04 apporte une information complémentaire précieuse. L’article dédié au capteur ultrason HC‑SR04 détaille cette approche.

Capteur infrarouge et télécommande Arduino : principe de détection des codes

Un récepteur infrarouge de télécommande ne transmet pas un simple niveau haut ou bas constant. Il reçoit une suite d’impulsions codées, qui représentent des trames numériques. Chaque trame correspond à une touche différente. L’Arduino lit cette suite et la traduit avec une bibliothèque spécialisée.

Organisation générale d’un projet télécommande IR

Le schéma de principe reste proche de celui d’un capteur d’obstacle en ce qui concerne l’alimentation :

  • VCC du récepteur IR → 5 V de l’Arduino.
  • GND → masse commune.
  • OUT du récepteur → entrée digitale avec interruption possible, par exemple D2 ou D3.

Le code se base ensuite sur une librairie dédiée, comme IRremote, qui gère la temporisation des impulsions et le décodage des protocoles. Le programme attend une trame, lit le code, puis déclenche une action : allumage d’un relais, changement de mode de fonctionnement, ajustement d’une consigne, etc.

Pour un approfondissement détaillé des protocoles, de l’installation de la librairie et des cas pratiques (contrôler un ruban LED, un robot, un menu sur écran LCD), une ressource spécifique orientée télécommande améliorera la compréhension, par exemple le guide accessible via la page Arduino télécommande infrarouge.

Exemple de logique de détection d’un code IR

Le code exact dépend de la bibliothèque choisie, mais le principe général suit une structure similaire à ce pseudo-code :

// Pseudo-code simplifie sans inclure l'ensemble de la librairie IRremote

#include <IRremote.h>

const int pinRecepteurIR = 2;   // Broche d'entrée du recepteur IR
IRrecv irrecv(pinRecepteurIR);
decode_results results;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn(); // Démarrage du recepteur
}

void loop() {
  if (irrecv.decode(&results)) {
    unsigned long code = results.value; // Code recu
    Serial.print("Code IR : ");
    Serial.println(code, HEX);         // Affichage en hexadecimal

    // Exemple de reaction en fonction de la touche
    if (code == 0xFF30CF) {
      Serial.println("Touche 1");
    } else if (code == 0xFF18E7) {
      Serial.println("Touche 2");
    }

    irrecv.resume(); // Pret pour la prochaine valeur
  }
}

Le cœur de la détection repose sur irrecv.decode(), qui signale la réception d’une trame complète, puis stocke le résultat dans une structure. L’interprétation du code (en hexadécimal dans cet exemple) permet d’associer chaque touche à une action bien précise.

Conseil : lors de la phase de découverte d’une télécommande inconnue, un programme qui affiche simplement tous les codes reçus sur le moniteur série facilite énormément le repérage des touches utiles. Une fois cette étape réalisée, l’intégration dans un projet plus large devient plus fluide.

Bonnes pratiques pour une détection infrarouge fiable avec Arduino

Un montage infrarouge réagit fortement à son environnement. Une installation stable ne repose pas uniquement sur le code et le câblage, mais aussi sur l’optique, la mécanique, la température, et l’ergonomie de l’ensemble. Un projet abouti combine donc précision électronique et bon sens pratique.

Positionnement mécanique et angle de détection

La plupart des modules d’obstacle possèdent un angle de détection relativement large. Une installation trop proche d’une surface réfléchissante parasite la mesure, tandis qu’un support instable produit des variations de distance. Une mise en place robuste limite ces effets.

Recommandations fondamentales :

  • Fixer le capteur sur un support rigide pour réduire les vibrations.
  • Orienter l’émetteur et le récepteur vers la zone à surveiller, sans obstacle fixe dans le champ direct.
  • Éviter les surfaces trop brillantes à proximité immédiate, qui renvoient fortement le faisceau infrarouge.
  • Prévoir un léger retrait par rapport à la façade du boîtier pour protéger la LED IR des chocs.

Pour un robot, placer plusieurs modules autour du châssis améliore le champ de détection. Le code peut ensuite combiner les informations (capteur avant gauche, avant droit, côté droit, etc.) pour décider d’une trajectoire alternative.

Gestion logicielle des états et intégration dans un projet complet

Dans un projet plus avancé, un capteur infrarouge ne se contente pas d’allumer une LED. Il alimente la logique décisionnelle d’un système : arrêt d’un moteur, inversion du sens de rotation, navigation autonome, log d’événements, etc. Structurer le code autour d’états clairs simplifie grandement l’évolution du programme.

Exemples d’intégration :

  • Robot mobile : si obstacle détecté devant, arrêter l’avance, reculer légèrement puis tourner.
  • Convoyeur : si passage détecté par une barrière IR, incrémenter un compteur et afficher la valeur.
  • Domotique : si présence devant une borne, allumer un écran d’information ou déclencher un son.

Une architecture à base de machine à états (état « en déplacement », « évitement d’obstacle », « en attente », etc.) rend le système plus lisible et plus simple à maintenir. Le capteur infrarouge devient alors une entrée parmi d’autres dans cette machine à états.

« Un montage infrarouge fiable repose sur un trio cohérent : fixation mécanique soignée, câblage propre et code structuré. Négliger l’un de ces volets conduit presque toujours à des comportements imprévisibles. »

Astuce pour progresser : partir d’un projet simple de détection IR, puis ajouter progressivement une action (moteur, servo, buzzer, affichage) à chaque étape, constitue une méthode efficace pour monter en compétence. Une série de projets guidés, comme ceux proposés dans les ressources de projets Arduino débutant, fournit une base structurée pour cette montée en puissance.

Donnez votre avis

Soyez le 1er à noter cet article


Partagez cet article maintenant !


Ça ne règle pas votre cas ?

Décrivez la panne sur le forum, avec une photo si vous pouvez : les membres qui ont eu la même répondent, et le sujet reste pour les suivants.

Avatar photoAvatar photoAvatar photoAvatar photoAvatar photoRejoindre les 54 membres — gratuit, 44 pannes résolues

Dans le même tiroir

Scène réaliste d’un établi électronique avec un Arduino Uno, une LED clignotante et une main ajustant les fils dans un environnement de bricolage naturel et détaillé.
Arduino

Arduino LED blink : premier programme

Programmer un Arduino avec un simple clignotement de LED ouvre très vite la porte à l’électronique et aux systèmes embarqués.…

Portrait de Inès DameronInès Dameron · 13 Fév 2026
La lettre du club

Une lettre par mois, accrochée au panneau

Les sujets du forum résolus dans le mois, un guide, un chiffre qu’on peut vérifier chez soi. Rien d’autre, jamais plus souvent — et on se désabonne d’un clic.

Ce qu’il y a dedans

Votre adresse

Une lettre par mois. Désabonnement en un clic.