ESP32 C3 Super Mini - Capteur de vitesse optique à fente IR
Apprenez à utiliser le capteur de vitesse optique à fente IR avec l'ESP32 C3 Super Mini pour compter des objets et mesurer la vitesse d'un moteur en tr/min (RPM).

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À Propos du Capteur de Vitesse Optique à Fente IR
Ce module est une fourche optique en forme de U. Il indique à l'ESP32 C3 Super Mini quand quelque chose passe dans sa fente.
Faits rapides :
- Type de capteur : photoélectrique à fente (LED IR + phototransistor NPN)
- Largeur de la fente : 5,9 mm
- Tension de fonctionnement : 3,3V à 5V CC
- Sortie : numérique (TTL) - BAS quand bloqué, HAUT quand libre
- Conditionnement du signal : trigger de Schmitt intégré
- Fixation : trous de vis M3 aux deux extrémités
- Broches : 3 (VCC, GND, OUT)
Utile pour :
- La vitesse d'un moteur (tr/min) avec un disque codeur
- Un tachymètre simple
- Compter des objets ou des impulsions
- La distance à partir des tours de roue
- Le retour de vitesse des roues d'un robot
- La détection de fin de course ou de position
Brochage

- VCC — Alimentation (3,3V à 5V)
- GND — Masse (0V)
- OUT — Signal numérique vers une broche d'entrée de l'ESP32 C3
※ Note:
L'ordre des broches peut changer d'un lot à l'autre. Suivez toujours les étiquettes imprimées sur votre module.
Fonctionnement

- Deux côtés : une LED IR se trouve d'un côté de la fente. Un phototransistor lui fait face de l'autre côté.
- Fente vide : la lumière IR atteint le phototransistor → OUT est HAUT
- Fente bloquée : un objet opaque (une carte, une dent de disque) arrête la lumière → OUT est BAS
- Signal propre : le trigger de Schmitt donne un 0 ou un 1 stable. Pas de rebond, donc aucun anti-rebond logiciel n'est nécessaire.
- Plastique transparent : les objets transparents peuvent ne pas bien bloquer l'IR. Utilisez des objets opaques.
- Logique inversée : certains modules d'autres fabricants fonctionnent à l'inverse. Si le vôtre indique « bloqué » avec une fente vide, échangez LOW et HIGH dans le code.
Schéma de Câblage
Voici comment connecter le capteur de vitesse optique à fente IR à l'ESP32 C3 Super Mini :

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
| Broche du capteur de vitesse | Broche ESP32 C3 Super Mini |
|---|---|
| VCC | 3.3V |
| GND | GND |
| OUT | GPIO4 |
- Utilisez 3,3V, pas 5V : la broche OUT monte jusqu'à la tension VCC. L'ESP32 C3 est une carte 3,3V, alimentez donc le capteur en 3,3V.
- Aucune pièce supplémentaire : aucune résistance n'est nécessaire. Trois fils suffisent.
Comment Programmer pour le Capteur de Vitesse Optique à Fente IR
Voici le code pour lire le capteur à fente IR. Aucune bibliothèque n'est nécessaire.
- Configurer la broche en entrée :
- Lire l'état (LOW = bloqué, HIGH = libre) :
- Compter les impulsions rapides avec une interruption (un comptage par dent, sur le front FALLING) :
- Transformer les impulsions en tr/min (RPM) (impulsions comptées en 1 seconde) :
Code ESP32 C3 Super Mini - Détecter un Objet dans la Fente
Ce que fait ce code :
- Lit la broche OUT encore et encore avec digitalRead()
- Affiche un message seulement quand l'état change
- Ajoute 1 à un compteur à chaque fois que la fente est bloquée
Étapes Rapides
- Première fois avec cette carte ? Lisez ESP32 C3 Super Mini - Premiers pas pour configurer Arduino IDE.
- Câblez le capteur comme indiqué dans le tableau ci-dessus.
- Branchez l'ESP32 C3 Super Mini à votre PC avec le câble USB Type-C.
- Dans Arduino IDE, sélectionnez la carte ESP32 C3 Super Mini et le bon port COM.
- Copiez le code et collez-le dans Arduino IDE.
- Cliquez sur Téléverser. Si le téléversement échoue, maintenez le bouton BOOT, appuyez sur RESET, puis réessayez.
- Ouvrez le moniteur série et réglez-le sur 9600 bauds.
- Passez un morceau de carte ou votre doigt dans la fente plusieurs fois.
- Vérifiez le résultat dans le moniteur série.
Code ESP32 C3 Super Mini - Mesurer la Vitesse du Moteur (tr/min)
Ce que fait ce code :
- Utilise une interruption sur le front FALLING. Chaque dent du disque qui bloque la fente ajoute 1 impulsion.
- Toutes les 1 seconde, il lit le nombre d'impulsions et le remet à 0
- Calcule les tr/min (RPM) et affiche les impulsions et la vitesse
Pourquoi une interruption ?
- Les impulsions arrivent très vite. Vérifier la broche dans loop() pourrait en manquer.
- FALLING signifie un comptage par dent.
La formule des tr/min (RPM) :
- 1 tour = 20 impulsions (le disque courant des moteurs à réducteur TT a 20 fentes)
- Impulsions en 1 seconde × 60 = impulsions par minute
- Impulsions par minute ÷ 20 = tours par minute (tr/min)
- Votre disque a un nombre de fentes différent ? Changez SLOTS_PER_TURN dans le code.
Étapes Rapides
- Gardez le même câblage que pour le premier exemple.
- Fixez le disque codeur sur l'arbre du moteur ou sur la roue. Ses dents doivent passer dans la fente sans toucher le capteur.
- Téléversez le code de la même façon que précédemment.
- Ouvrez le moniteur série à 9600 bauds.
- Faites tourner le disque à la main, ou alimentez le moteur.
- Regardez les impulsions et les tr/min changer chaque seconde.
Exemple de sortie avec le moteur à environ 300 tr/min :
- Le code des tr/min compte un front par fente. Il fonctionne donc même si votre module a la logique inversée.
Connaissances Supplémentaires
Capteur à fente ou autres capteurs :
- Capteur de vitesse optique à fente IR : détecte un objet dans sa fente de 5,9 mm. Idéal pour la vitesse, les tr/min et le comptage.
- Capteur d'évitement d'obstacles IR : détecte un objet à distance devant lui, pas dans une fente.
- ESP32 C3 Super Mini - Encodeur Rotatif : un bouton pour la saisie manuelle. Il indique aussi le sens de rotation.
Choisir le nombre de fentes par tour :
- Plus de fentes = plus d'impulsions par tour = lecture de vitesse plus fine
Distance à partir des tours de roue :
- Tours = impulsions ÷ fentes par tour
- Distance = tours × circonférence de la roue (π × diamètre)