ESP32 C3 Super Mini - Optocoupleur PC817 : Surveiller un Signal d'Entrée DC 12V/24V
L'ESP32 C3 Super Mini est assez petit pour se cacher dans un boîtier de projet, mais chacune de ses broches GPIO est limitée à 3,3V DC - une ligne 12V DC ou 24V DC provenant d'une voiture, d'une sonnette ou d'un panneau de machine détruirait donc la carte dès que vous la toucheriez avec une broche. Un module d'isolation à optocoupleur PC817 est la pièce toute prête et bon marché qui résout ce problème, et il est à peine plus grand que la carte elle-même.
La plupart du temps, la vraie question n'est pas « un signal est-il présent ? » mais « cet équipement fonctionne-t-il vraiment en ce moment ? » - la pompe tourne-t-elle, le carillon a-t-il reçu sa commande, le chauffage consomme-t-il toujours du courant. Un module PC817 branché aux bornes d'un appareil 12V ou 24V répond exactement à cette question, et l'ESP32 C3 Super Mini est assez petit pour rester dans l'équipement et y répondre en permanence.
Dans ce tutoriel, vous apprendrez :
- Ce qu'est un module optocoupleur PC817 et comment il isole votre ESP32 C3 Super Mini du 12V DC et du 24V DC
- Comment mesurer d'abord la ligne que vous voulez surveiller, puis acheter le module 3-5V, 12V ou 24V qui lui correspond
- Comment câbler les borniers à vis et le connecteur de sortie du module à l'ESP32 C3 Super Mini
- Comment brancher le module aux bornes d'un équipement déjà installé, pour surveiller s'il est allumé ou éteint
- Comment savoir si votre module fonctionne en actif-LOW ou en actif-HIGH, et l'inverser avec une seule constante dans le code
- Comment réaliser la même entrée à partir de la puce PC817 nue et de votre propre résistance, si vous préférez
- Pourquoi la masse du 12V/24V ne doit jamais toucher la GND de votre ESP32 C3 Super Mini

Pourquoi l'ESP32 C3 Super Mini a Besoin d'un PC817
- Logique 3,3V uniquement : Cette carte est conçue en 3,3V et ne tolère pas le 5V, donc un fil 12V DC ou 24V DC est bien au-delà de ce qu'une broche GPIO peut supporter
- Aucun câblage partagé : Le PC817 transmet le signal sous forme de lumière, donc aucun courant du circuit 12V/24V n'atteint jamais la carte
- Encombrement minime : Un module PC817 à un canal se place à côté de l'ESP32 C3 Super Mini dans un boîtier où une carte de taille normale ne rentrerait jamais
- Assez bon marché pour une installation a posteriori : Les deux composants coûtent si peu que vous pouvez en laisser un câblé en permanence dans un équipement 12V existant
- Une simple lecture numérique : Une fois le module en place, votre code appelle seulement digitalRead() - aucune bibliothèque, aucun calcul analogique
Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Remarque : achetez UN SEUL module - la variante qui correspond à la ligne que vous allez surveiller. La section suivante vous montre comment déterminer laquelle.
Comment Fonctionne un Module Optocoupleur PC817
Un module d'isolation à optocoupleur PC817 est une petite carte construite autour de la puce PC817 à 4 broches. À l'intérieur de cette puce, une LED infrarouge fait face à un phototransistor de l'autre côté d'un espace isolant : le courant qui traverse la LED produit de la lumière, la lumière rend le transistor passant, et c'est tout le principe. Comme le signal passe sous forme de lumière et non d'électricité, le côté 12V/24V et le côté ESP32 C3 Super Mini restent électriquement séparés.
Ce que le module ajoute autour de la puce vous épargne du travail : la résistance série de la LED d'entrée est déjà montée, l'entrée arrive sur des borniers à vis qui acceptent directement les fils de terrain, et une LED d'état côté entrée vous montre d'un coup d'œil quand la ligne est sous tension. Les modules existent en versions 1, 2, 4 et 8 canaux.
Caractéristiques principales du PC817 à l'intérieur du module :
- Tension d'isolation : 5000 Vrms pendant 1 minute entre le côté entrée et le côté sortie
- LED d'entrée : tension directe d'environ 1,2 V, 20 mA maximum en continu, avec 5-20 mA comme plage de fonctionnement normale
- Transistor de sortie : tension collecteur-émetteur maximale de 35 V, courant collecteur maximal de 50 mA, dissipation de 150 mW
- Rapport de Transfert de Courant (CTR) : 50% à 600% selon le rang marqué sur le composant (rang A 80-160%, B 130-260%, C 200-400%, D 300-600%)
- Vitesse : environ 4 us de temps de montée et 3 us de temps de descente, ce qui est instantané pour tout ce que fait un humain ou un voyant de machine
- Plage de température : -30 C à +100 C
Pourquoi c'est adapté aux débutants avec l'ESP32 C3 Super Mini :
- Rien à calculer - la résistance du module a été dimensionnée en usine pour sa tension d'entrée
- Rien à étalonner et rien à configurer
- Une erreur de câblage côté 12V/24V s'arrête au module au lieu d'atteindre votre carte
- Les borniers à vis vous permettent de raccorder les fils de terrain d'un équipement installé sans aucune breadboard à proximité
De Quel Module Optocoupleur Ai-je Besoin ? Mesurez d'Abord la Ligne
Presque tout sur cette page est une installation a posteriori - vous surveillez un carillon, une pompe ou un voyant de panneau installé par quelqu'un d'autre, donc la réponse honnête à « quel module ? » commence par « je ne sais pas encore, laissez-moi mesurer ». Faites-le avant de commander quoi que ce soit.
Mesurer la ligne, en trois étapes :
- Réglez un multimètre sur volts DC et placez la pointe noire sur la borne négative ou de retour de l'appareil que vous voulez surveiller
- Placez la pointe rouge sur la borne positive ou commutée, puis faites s'allumer l'appareil - appuyez sur le bouton de la sonnette, laissez le thermostat commander la pompe, peu importe ce qui le pilote normalement
- Lisez la tension pendant qu'il est allumé. C'est ce chiffre, et non l'étiquette du bloc d'alimentation, qui détermine le module à acheter
| Ce que le multimètre indique quand l'appareil est allumé | Achetez ce module | Sources typiques |
|---|---|---|
| Environ 12 V DC | module 12V | carillons de sonnette, contrôleurs de porte de garage, circuits de voiture, petites pompes et ventilateurs |
| Environ 24 V DC | module 24V | voyants de panneau de machine, bobines de contacteurs et d'électrovannes, sorties d'automate, commandes CVC |
| 3,3 V ou 5 V DC | module 3-5V | sorties logiques, cartes de capteurs, la carte de commande à l'intérieur d'un appareil |
Pourquoi la variante compte autant : la résistance série du module est montée sur la carte, et elle est dimensionnée pour cette seule tension d'entrée. Choisir la variante, c'est la version « module » du dimensionnement de la résistance - c'est la seule décision d'achat de cette page qui peut mal tourner.
WARNING
Ne confondez pas les variantes.
Alimentez un module 12V avec une ligne 24V et environ le double du courant prévu traverse sa LED interne, ce qui l'endommagera.
Alimentez un module 24V avec une ligne 12V et la LED est sous-alimentée, donc la sortie peut commuter en retard, commuter de façon peu fiable, ou ne jamais commuter du tout.
Si plus tard vous déplacez un projet ESP32 C3 Super Mini terminé d'une machine 12V vers une machine 24V, vous changez le module - le code ne change pas.
Un signal 3,3V ou 5V mérite quand même d'être isolé :
- Utilisez le module 3-5V chaque fois que les deux circuits fonctionnent avec des alimentations séparées, sont à plusieurs mètres l'un de l'autre, ou qu'une extrémité est électriquement bruyante - un long câble, un driver de moteur, ou la carte de commande basse tension enfouie dans un appareil alimenté sur secteur. L'isolation consiste à couper le chemin de masse, pas seulement à survivre à une haute tension
- L'entrée dépend du courant, pas de la tension : un rail 5V capable de fournir dix ampères n'est pas plus dur pour la LED du module qu'un rail qui ne peut fournir que dix milliampères, car la résistance intégrée fixe le courant de la LED dans les deux cas. Ce que change une alimentation puissante, c'est l'ampleur des dégâts qu'une erreur de câblage ailleurs peut causer - ce qui est un argument de plus pour l'isoler
- 3,3V est le minimum pratique. La LED interne à elle seule en absorbe environ 1,2 V, il reste donc très peu de marge en dessous
Schéma de Câblage
Nous allons lire le signal isolé sur D5. Cette broche est une GPIO ordinaire de l'ESP32 C3 Super Mini : ce n'est pas la broche de la LED intégrée (GPIO8), ni la broche BOOT (GPIO9), ni l'une des broches de données USB, ni l'une des broches utilisées par l'UART et l'I2C par défaut, donc l'utiliser n'interférera pas avec le téléversement, avec la LED intégrée ou avec le Moniteur Série.
WARNING
Ne reliez PAS la masse du circuit 12V/24V à la GND de l'ESP32 C3 Super Mini. Cette séparation est tout l'intérêt du PC817. Si vous reliez les deux masses, l'optocoupleur commute toujours et le code fonctionne toujours, mais l'isolation disparaît et un défaut côté 12V/24V peut désormais atteindre votre carte.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
| Borne/Broche du Module | Connecter À |
|---|---|
| IN+ (bornier à vis) | le fil de signal 12V/24V |
| IN- (bornier à vis) | la masse du circuit 12V/24V |
| VCC (broche du connecteur) | 3.3V de l'ESP32 C3 Super Mini |
| GND (broche du connecteur) | GND de l'ESP32 C3 Super Mini |
| OUT (broche du connecteur) | D5 |
- Alimentez le côté sortie en 3,3V, pas en 5V - l'ESP32 C3 Super Mini ne tolère pas le 5V, et la broche OUT du module monte jusqu'à la tension que vous appliquez sur VCC
- N'ajoutez aucune résistance de votre côté près de IN+. Le module en a déjà une, et en ajouter une seconde en série ne ferait que priver la LED de courant
- Le côté bornier à vis et le côté connecteur sont deux circuits séparés qui ne partagent rien d'autre que l'espace isolant à l'intérieur du PC817
- Le côté entrée est une LED et ne conduit que dans un sens : IN+ reçoit le fil positif ou commuté, IN- le retour
Optionnel - Réaliser la Même Entrée à Partir de la Puce PC817 Nue
Vous préférez souder vous-même ? Un PC817 nu est un boîtier DIP à 4 broches avec un point ou une encoche à côté de la broche 1, et une seule résistance le transforme en la même entrée isolée.

- Broche 1 - Anode (A) : côté entrée - le signal 12V/24V, via votre résistance série
- Broche 2 - Cathode (K) : côté entrée - la masse du circuit 12V/24V, jamais la masse de la carte
- Broche 3 - Émetteur (E) : côté sortie - GND de l'ESP32 C3 Super Mini
- Broche 4 - Collecteur (C) : côté sortie - D5
Dimensionner cette résistance est exactement le travail que la variante du module faisait pour vous. Visez 10 mA à travers la LED interne : R = (Vin - 1.2) / 0.01.
| Tension d'entrée | Résistance à monter | Remarque |
|---|---|---|
| 3,3V | 220 ohm | environ 9,5 mA, 1/4 W |
| 5V | 390 ohm | environ 9,7 mA, 1/4 W - 470 ohm convient très bien en remplacement |
| 12V | 1 kohm | environ 10,8 mA, 1/4 W |
| 24V | 2,2 kohm | environ 10,4 mA - utilisez ici une résistance de 1/2 W |
Changez la résistance chaque fois que la tension d'entrée change : laissez 1 kohm en place et appliquez-lui 24 volts, et environ 22,8 mA circulent, au-delà de la limite de 20 mA de la LED.
Câbler le Module en Parallèle avec un Appareil Déjà Installé
Le meilleur usage d'une carte aussi bon marché et aussi petite est l'installation a posteriori : un carillon de sonnette 12V DC, un appareil ou une pompe déjà fixé au mur et câblé, que vous voulez maintenant surveiller sans rien démonter. Cela fonctionne parce que l'entrée du module se branche aux bornes de l'appareil - en parallèle avec lui. Rien dans le circuit existant n'est coupé, débranché ou redirigé ; vous raccordez deux fils sur des bornes déjà présentes et laissez tout le reste tel quel.
WARNING
Ne mettez jamais le module en série avec l'appareil. En série, tout le courant de charge du carillon, de la lampe ou de la pompe traverse la LED interne de l'optocoupleur, prévue pour 20 mA - le composant est détruit à l'instant où l'appareil s'allume. Le branchement se fait aux bornes de l'appareil, pas en ligne avec lui.
| Appareil 12V/24V Existant | Borne du Module |
|---|---|
| Borne positive / commutée | IN+ |
| Borne négative / de retour | IN- |
- Aucune résistance série n'est nécessaire pour un branchement avec module : deux fils vont directement des bornes de l'appareil sur IN+ et IN-, car la résistance qui fixe le courant de la LED est déjà sur le module - c'est aussi pourquoi la variante doit correspondre à la tension que vous avez mesurée sur cet appareil
- Le branchement consomme environ 10 mA, ce qui n'est rien à côté de ce que consomme une bobine de carillon, une lampe, une vanne ou un moteur, donc l'appareil continue à se comporter exactement comme avant. C'est une mesure en lecture seule
- La polarité compte : le côté entrée est une LED et ne conduit que dans un sens. Inversez IN+ et IN- et elle ne s'allumera tout simplement jamais, donc vérifiez avec un multimètre quelle borne du branchement est positive avant de serrer quoi que ce soit
- La lecture suit l'état réel de l'appareil : comme le branchement se trouve aux bornes de l'appareil et non aux bornes de votre propre interrupteur, il est vrai chaque fois que l'équipement est sous tension - y compris lorsque c'est le bouton-poussoir, la minuterie ou le thermostat de quelqu'un d'autre qui l'allume, et y compris lorsqu'il ne s'allume pas du tout. C'est ce qui rend possibles l'enregistrement des heures de fonctionnement, le comptage des temps d'arrêt et les alertes « a-t-il vraiment démarré ? »
- Une limite honnête : cela vous indique que l'appareil est sous tension, pas qu'il fonctionne - une pompe bloquée ou un carillon avec une bobine grillée consomme toujours du courant et sera toujours lu comme ON
- DC uniquement : l'entrée du PC817 est une seule LED, elle ne réagit donc qu'à une polarité. Si cette sonnette fonctionne avec un transformateur AC plutôt qu'avec une alimentation 12V DC, ce n'est pas le bon composant - la détection de l'AC nécessite un optocoupleur dont l'étage d'entrée comporte deux LED tête-bêche
WARNING
Une bobine de carillon, un relais, une électrovanne, un contacteur ou un moteur renvoie un grand pic de tension inverse dans les fils lorsqu'il s'éteint, et la LED d'entrée du PC817 ne supporte que 6 V en inverse. Montez une diode ordinaire en antiparallèle directement aux bornes d'entrée du module - cathode vers IN+, anode vers IN- (sur une puce nue, de la même manière entre les broches 1 et 2). En fonctionnement normal, cette diode est polarisée en inverse et ne fait absolument rien ; lors d'un pic, elle conduit et limite la tension inverse à bien moins d'un volt. Une 1N4148 suffit pour un petit branchement, une 1N4007 pour un plus important.
Votre Module Optocoupleur est-il Actif Haut ou Actif Bas ?
Commencez par la puce nue, car cette partie relève de la physique établie. Le côté sortie du PC817 ne produit pas de tension - son phototransistor relie simplement la broche numérique à GND lorsqu'il est passant, donc la broche a besoin d'une résistance de pull-up pour avoir une tension quelconque lorsque le transistor est bloqué. L'ESP32 C3 Super Mini dispose d'une résistance de pull-up interne sur chaque GPIO, et c'est exactement ce que nous utilisons ici.
| Signal externe 12V/24V | LED du PC817 | Phototransistor | La broche de l'ESP32 C3 Super Mini lit |
|---|---|---|---|
| Présent | allumée | passant | LOW |
| Absent | éteinte | bloqué | HIGH |
Donc sur une puce nue, signal présent se lit LOW - toujours. C'est avec un module que cela devient intéressant : la plupart des fabricants câblent la puce exactement comme dans le tableau ci-dessus et leur broche OUT est aussi actif-LOW, mais certains ajoutent un étage inverseur sur la carte, de sorte que OUT suit l'entrée et passe à HIGH lorsque la ligne est sous tension. Les deux types sont vendus sous le même nom de « module d'isolation PC817 », donc vérifiez le vôtre au lieu de supposer.
Le test de polarité en une minute :
- Câblez le module comme dans le tableau de câblage ci-dessus et téléversez le sketch ESP32 C3 Super Mini plus bas sur cette page
- Ouvrez le Moniteur Série à 115200, laissez IN+ et IN- non connectés, et notez ce que le sketch affiche - c'est votre état de repos
- Mettez maintenant le côté entrée sous tension. La LED d'état du module doit s'allumer : cette LED est le témoin fiable ici, car elle se trouve du côté entrée isolé et ne peut pas être trompée par ce qui se passe dans votre code
- Ce que le sketch affiche pendant que cette LED d'état est allumée est l'état actif
- Si la LED d'état est allumée et que le sketch indique toujours que la ligne est au repos, votre module est du type actif-HIGH
La correction est une seule modification, pas une réécriture : le sketch contient une seule constante MODULE_ACTIVE_LOW près du début, réglée sur true par défaut. Changez-la en false, téléversez à nouveau, et chaque message s'affiche dans le bon sens. Rien d'autre dans le code n'a besoin de changer.
※ Note:
Une résistance externe de 10 kohm entre la broche numérique et le 3,3V fonctionne tout aussi bien que la résistance de pull-up interne, mais sur une carte avec aussi peu de broches libres et aussi peu de place que l'ESP32 C3 Super Mini, utiliser INPUT_PULLUP vous économise un composant et une rangée de breadboard.
Comment Programmer le PC817 sur l'ESP32 C3 Super Mini
Aucune bibliothèque n'est nécessaire. Il s'agit d'une simple lecture d'entrée numérique, en deux étapes.
Étape 1 - Configurer la broche en entrée avec la résistance de pull-up interne :
Étape 2 - Transformer la lecture brute en une réponse vrai/faux, selon la polarité de votre module :
Code ESP32 C3 Super Mini - Surveiller si un Appareil 24V est Allumé ou Éteint
Ce que fait le code :
- Configure D5 en entrée avec la résistance de pull-up interne de l'ESP32 C3 Super Mini activée
- Lit la broche OUT du module et la convertit via la constante MODULE_ACTIVE_LOW, pour qu'une seule modification couvre les deux polarités
- N'affiche une ligne que lorsque la ligne externe change d'état, pour que le Moniteur Série reste lisible
- Numérote chaque activation de la ligne externe 12V/24V
- Indique combien de secondes la ligne est restée sous tension chaque fois qu'elle s'éteint
Étapes Rapides
- Vérifiez la variante du module avant toute chose : elle doit correspondre à la tension que vous avez mesurée sur la ligne - c'est l'étape qui endommage des composants si on la saute
- Nouveau avec cette carte ? Suivez d'abord ESP32 C3 Super Mini - Premiers pas
- Câblez le côté sortie : GND du module vers GND, VCC vers 3,3V, OUT vers D5
- Câblez le côté entrée séparément : IN+ et IN- sur l'appareil, et gardez la masse du 12V/24V complètement à l'écart de la carte
- Connectez la carte : branchez l'ESP32 C3 Super Mini à votre ordinateur avec le câble USB Type-C
- Sélectionnez la carte et le port : choisissez ESP32C3 Dev Module dans Outils > Carte, puis sélectionnez le port COM
- Téléversez : copiez le code ci-dessus dans Arduino IDE et cliquez sur Téléverser
- Ouvrez le Moniteur Série et réglez le débit en bauds sur 115200
- Allumez et éteignez la ligne externe et regardez les messages apparaître
- Faites le test de polarité une fois : si les messages sont inversés, réglez MODULE_ACTIVE_LOW sur false et téléversez à nouveau
- Astuce de Pro : si le Moniteur Série indique que la ligne est sous tension avant que vous n'allumiez quoi que ce soit, soit vos deux masses sont reliées, soit votre module est du type actif-HIGH
Sortie du Moniteur Série
Remarque : avec MODULE_ACTIVE_LOW laissé à true, la broche elle-même lit LOW sur chaque ligne qui indique LIVE. Le code l'a déjà converti pour vous.
Explication du Code Ligne par Ligne
Le code ESP32 C3 Super Mini ci-dessus contient des explications ligne par ligne dans ses commentaires. Veuillez lire les commentaires dans le code !
Applications et Idées de Projets
L'ESP32 C3 Super Mini est bon marché et physiquement minuscule, ce qui en fait la carte idéale à laisser en permanence dans un équipement qui fonctionne déjà en 12V ou 24V.
- Équiper après coup un contrôleur de porte de garage 12V : branchez-vous sur la sortie 12V du contrôleur via un module 12V et faites envoyer par la carte une notification WiFi chaque fois que la porte est actionnée, sans modifier le contrôleur lui-même
- Compter les heures de fonctionnement d'une pompe ou d'un ventilateur 12V : branchez-vous aux bornes de l'appareil lui-même, numérotez chaque mise sous tension et totalisez sa durée de fonctionnement, pour savoir d'un coup d'œil s'il a démarré aujourd'hui
- Savoir quand un carillon de sonnette existant a vraiment sonné : le carillon 12V DC reste câblé exactement comme l'installateur l'a laissé, et le branchement en parallèle transforme chaque sonnerie en message envoyé par la carte
- Surveiller un voyant de défaut de machine 24V : câblez un module 24V aux bornes de la ligne du voyant de défaut dans une armoire de commande et enregistrez chaque défaut de la machine, grâce aux horodatages que le code collecte déjà
- Loger une entrée isolée dans un boîtier étanche : un module à un canal et cette carte tiennent dans un petit boîtier IP où une carte de développement de taille normale ne rentrerait pas, ce qui convient aux installations extérieures de portails et de pompes en 12V
- Vérifier si un circuit de véhicule 12V est sous tension : surveillez le contact, les phares ou un contacteur de porte depuis l'intérieur d'une voiture sans exposer la carte au système électrique du véhicule
- Détecter la mise sous tension d'une bobine d'électrovanne ou de contacteur 24V : confirmez par logiciel que la bobine a réellement reçu sa commande, et pas seulement que vous l'avez envoyée
- Ajouter un canal à un projet déjà construit : associez l'entrée isolée à un ESP32 C3 Super Mini - Relais pour qu'un signal de terrain 24V commute une charge séparée
- Prolonger un interrupteur sur une longue distance : sur des câbles assez longs pour qu'une simple entrée ESP32 C3 Super Mini - Bouton capte du bruit, faites fonctionner la boucle en 24V et lisez-la plutôt via un module
Tutoriel Vidéo
Regardez la vidéo ci-dessous pour une présentation visuelle de ce projet.
Mettez-vous au Défi
Poussez un peu plus loin votre montage ESP32 C3 Super Mini avec optocoupleur PC817 grâce à ces défis.
- Facile : Réécrivez les libellés affichés pour votre propre équipement - « contact », « pompe en marche », « ouverture du portail » - au lieu du texte générique 24V
- Facile : Reproduisez l'entrée isolée sur la LED intégrée sur GPIO8, pour voir l'état sans Moniteur Série
- Facile : Passez volontairement MODULE_ACTIVE_LOW à false, regardez chaque message s'afficher à l'envers, puis remettez-le - vous reconnaîtrez instantanément le symptôme si vous rencontrez un jour un module câblé dans l'autre sens
- Moyen : Tenez un total cumulé du temps pendant lequel la ligne externe a été sous tension depuis la mise en marche, et affichez-le une fois par minute
- Moyen : Déclenchez une alerte lorsque la ligne 24V reste sous tension plus longtemps qu'une limite que vous choisissez - un contacteur collé ou un portail bloqué ressemble exactement à cela
- Moyen : Passez le même sketch d'un module 24V à un module 12V sur un autre équipement, et confirmez que le code n'a besoin d'aucune modification
- Avancé : Ajoutez un anti-rebond logiciel pour qu'un contact de relais 12V qui rebondit ne soit pas enregistré comme des dizaines d'activations
- Avancé : Passez à un module à 4 canaux et surveillez quatre signaux de machine 24V distincts en même temps, en rapportant l'état des quatre via WiFi
Dépannage
Chaque lecture est exactement inversée (il indique LIVE alors que le carillon est silencieux, et au repos pendant que le carillon sonne) :
- Votre module est du type actif-HIGH - certains fabricants inversent la sortie sur la carte. Faites le test de polarité en une minute ci-dessus et comparez la LED d'état du module avec ce qu'affiche le Moniteur Série
- Réglez MODULE_ACTIVE_LOW sur false en haut du sketch et téléversez à nouveau. Cette seule constante est toute la correction
La broche lit toujours LOW (le code indique toujours LIVE) :
- Les deux masses sont reliées quelque part - séparez-les
- Sur la puce nue, le PC817 est inséré à l'envers ; repérez le point ou l'encoche qui marque la broche 1
La broche lit toujours HIGH (rien n'est jamais détecté) :
- Vous alimentez un module 24V avec une ligne 12V, donc sa LED est sous-alimentée - montez la variante qui correspond à la tension que vous avez mesurée
- IN+ et IN- sont inversés, donc la LED interne est polarisée en inverse et ne s'allume jamais
- Le signal externe 12V/24V n'est pas réellement présent - vérifiez-le d'abord avec un multimètre
La lecture ne revient jamais à l'état inactif (il indique LIVE même avec l'appareil éteint) :
- La source est une sortie statique - une sortie transistor d'automate, une sortie triac ou un driver de lampe LED - et celles-ci laissent fuir un faible courant même à l'arrêt, ce qui suffit à allumer partiellement la LED du module
- Montez une résistance de fuite d'environ 4,7 kohm à 10 kohm en parallèle avec les bornes d'entrée du module, pour que le courant de fuite passe par la résistance plutôt que par la LED
- Si la source est un simple contact mécanique, cherchez plutôt si les deux masses sont reliées
La lecture est instable :
- INPUT_PULLUP manque dans pinMode(), ce qui laisse la broche flottante
- Le contact externe est mécanique et rebondit - ajoutez un anti-rebond