Le PC817 est un optocoupleur : un composant qui transmet une information entre deux circuits électriquement séparés, en passant par la lumière. Une LED infrarouge éclaire un phototransistor placé juste en face, dans le même boîtier noir, et rien d’autre ne relie les deux côtés. Une entrée et une sortie, aucun fil commun.
Concrètement, cela résout deux problèmes que les montages électroniques rencontrent tous les jours : faire dialoguer deux appareils qui n’ont pas la même masse, et protéger une carte Arduino d’une tension qui pourrait la détruire. Le PC817 est le modèle le plus utilisé pour cela, dans un boîtier DIP-4 à quatre broches.
À quoi sert un optocoupleur ?
Un optocoupleur fait deux choses à la fois, et c’est pour cela qu’on le trouve partout :
- Il isole — les deux côtés du composant ne partagent ni masse ni alimentation. Un défaut d’un côté ne peut pas se propager de l’autre, et une différence de potentiel entre deux appareils ne fait pas circuler de courant entre eux.
- Il adapte les niveaux — le côté entrée accepte ce que vous voulez (la LED se contente d’un courant, elle ignore la tension réelle), et le côté sortie se raccorde directement à une entrée logique en 5 V ou 3,3 V.
On le trouve dans les entrées d’automates industriels, les alimentations à découpage (où il renvoie l’information de tension sans relier le secteur à la commande), les variateurs de vitesse, les interfaces MIDI, les bornes de comptage d’énergie, et dans la plupart des modules d’entrée 12 V et 24 V vendus pour les cartes Arduino.
Caractéristiques techniques
| Référence | PC817 — photocoupleur à phototransistor, 1 canal |
|---|---|
| Boîtier | DIP-4 traversant, pas des broches 2,54 mm (environ 6,5 × 4,6 mm) |
| Tension d’isolement | 5 000 V efficaces entre l’entrée et la sortie |
| Courant direct de la LED | 5 mA pour les spécifications garanties, 50 mA en maximum absolu |
| Tension directe de la LED | 1,2 V typique (1,4 V maximum) — à retenir pour calculer la résistance d’entrée |
| Tension collecteur-émetteur | 35 V maximum sur le côté sortie |
| Courant de sortie | 50 mA maximum dans le phototransistor |
| Rapport de transfert (CTR) | 50 % minimum à 5 mA d’entrée et 5 V en sortie — la sortie ne récupère jamais plus de la moitié du courant d’entrée dans le pire des cas |
| Temps de commutation | Montée 4 µs, descente 3 µs (valeurs typiques, sortie sous 5 V avec 100 Ω de charge) |
| Dissipation totale | 200 mW |
| Température de service | −30 °C à +100 °C |
Le CTR est la donnée qu’on oublie et qui explique la plupart des montages qui « ne marchent pas » : le courant disponible en sortie dépend directement du courant envoyé dans l’entrée, et seulement d’environ la moitié de celui-ci au minimum. Un montage qui ne pousse qu’un dixième de milliampère dans la LED d’entrée ne pilotera rien du tout en sortie.
Brochage : quatre broches, dans cet ordre
DIP-4 classique. Le repère (point ou encoche circulaire) marque le côté de la broche 1, qui se compte dans le sens inverse des aiguilles d’une montre :
Broche 1 — ANODE | Entrée. À alimenter en positif à travers une résistance de limitation. |
|---|---|
Broche 2 — CATHODE | Entrée. À relier au pôle négatif du signal d’entrée. |
Broche 3 — EMETTEUR | Sortie. L’émetteur du phototransistor, à relier à la masse du côté récepteur. |
Broche 4 — COLLECTEUR | Sortie. Le collecteur du phototransistor, à relier à l’entrée logique, avec une résistance de tirage vers l’alimentation. |
Un repère mnémotechnique utile : les deux broches du côté du point sont l’entrée, celles d’en face sont la sortie. Aucun risque de confusion une fois le point repéré — le sens de la LED est le seul élément qui compte côté entrée.
Choisir la résistance d’entrée
La résistance en série avec la broche 1 fixe le courant dans la LED. Le calcul est simple : on retire la tension de la LED (environ 1,2 V) de la tension d’entrée, et on divise par le courant souhaité. Viser 5 à 10 mA laisse toujours une marge confortable.
| Signal d’entrée 5 V | Une résistance de 1 kΩ donne environ 3,8 mA — utilisable, mais 470 Ω ou 220 Ω donnent un signal de sortie bien plus franc |
|---|---|
| Signal d’entrée 12 V | 1 kΩ donne environ 10,8 mA, 2,2 kΩ environ 4,9 mA — les deux fonctionnent, la seconde chauffe moins la LED |
| Signal d’entrée 24 V | 2,2 kΩ donne environ 10,4 mA, 4,7 kΩ environ 4,8 mA |
Sur les entrées alternatives (secteur), on interpose une diode en série pour ne laisser passer qu’une alternance : la LED ne supporte que 6 V en tension inverse, elle serait détruite par la demi-alternance négative sinon. Pour ces montages, c’est un modèle prévu pour le secteur qu’il faut utiliser, comme le MOC3041 DIP6 OPTO TRIAC, qui intègre en plus la détection de passage par zéro.
Mini-projet : surveiller une ligne 12 V sans partager la masse
Le montage de référence de l’optocoupleur, à faire en dix minutes. On veut savoir si une tension de 12 V est présente quelque part, alors que cet appareil et l’Arduino n’ont aucune masse commune — juste deux fils d’entrée. La sortie allume une LED et affiche l’état sur le moniteur série, sans que les deux circuits se touchent jamais électriquement.
Ce qu’il faut
| L’isolation | Le PC817 — celui de cette page |
|---|---|
| Le cerveau | Uno R3 + câble USB |
| La limitation d’entrée | Résistance 1/4w 1 kΩ |
| Le tirage de sortie | Résistance 1/4w 10 kΩ |
| Le voyant | Une LED (par exemple LED 5mm Blanche) avec sa résistance 220 Ω |
| Le support | Une plaque d’essai et des fils de prototypage |
Le câblage
| Ligne 12 V (+) | → résistance 1 kΩ → PC817 broche 1 (ANODE) |
|---|---|
| Ligne 12 V (−) | → PC817 broche 2 (CATHODE) |
PC817 broche 3 (EMETTEUR) | → GND de l’Arduino |
PC817 broche 4 (COLLECTEUR) | → D2 de l’Arduino, et → résistance 10 kΩ → 5V de l’Arduino |
| LED, patte longue | → D8 de l’Arduino, en passant par la résistance 220 Ω |
| LED, patte courte | → GND de l’Arduino |
Les deux fils de la ligne 12 V sont la seule liaison avec l’autre appareil : aucun fil de masse ne relie les deux montages, c’est tout l’intérêt du composant.
Le programme
À copier dans l’IDE Arduino, puis à téléverser sur la carte :
/*
* Surveillance d'une ligne 12 V isolee - optocoupleur PC817
* Carte : Arduino Uno R3
* Entree : 12 V via une resistance de 1 kohm sur la broche 1
* Sortie : collecteur sur D2, tirage de 10 kohm vers 5 V
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
const byte PIN_OPTO = 2; // collecteur du PC817, tirage de 10 kohm vers 5 V
const byte PIN_LED = 8; // voyant, via une resistance de 220 ohms
bool dernierEtat = false;
void setup() {
pinMode(PIN_OPTO, INPUT);
pinMode(PIN_LED, OUTPUT);
Serial.begin(9600);
Serial.println("Surveillance de la ligne 12 V");
}
void loop() {
// Quand la LED d'entree du PC817 est alimentee, le phototransistor conduit
// et tire la broche D2 vers la masse : la lecture est donc inversee.
int lecture = digitalRead(PIN_OPTO);
bool presence = false;
if (lecture == LOW) {
presence = true;
}
if (presence != dernierEtat) {
if (presence) {
digitalWrite(PIN_LED, HIGH);
Serial.println("Tension 12 V presente");
} else {
digitalWrite(PIN_LED, LOW);
Serial.println("Tension 12 V absente");
}
dernierEtat = presence;
}
delay(20);
}Comment ça marche
- L’inversion est normale. Le phototransistor se comporte comme un interrupteur entre la broche 4 et la broche 3. Quand le courant circule dans la LED d’entrée, il ferme cet interrupteur et relie
D2à la masse : l’Arduino litLOWalors que la tension 12 V est bien présente. C’est le piège numéro un de tous les montages à optocoupleur. - Le tirage de 10 kΩ est obligatoire. Sans lui,
D2ne serait relié à rien quand le phototransistor est bloqué, et la lecture flotterait au hasard. La résistance donne un niveau haut net au repos. - Le programme ne garde que les changements. Comparer
presenceàdernierEtatévite d’inonder le moniteur série : le message n’apparaît qu’au basculement, pas à chaque tour de boucle. - Le courant d’entrée compte plus que la tension. Une résistance de 1 kΩ sous 12 V envoie environ 10 mA dans la LED, largement au-dessus des 5 mA où le CTR minimum est garanti : la saturation du phototransistor est franche et le niveau bas est bien net.
Pour aller plus loin
- Compter des impulsions — ajoutez un compteur incrémenté à chaque basculement vers
LOWpour compter les passages sur un convoyeur ou les tours d’un capteur. - Protéger l’entrée d’un automate — le même montage se place entre un capteur industriel et une carte, pour qu’une surtension ne remonte jamais jusqu’à la logique.
Variante : sortie en 3,3 V
Avec un ESP32 ou un ESP8266, rien ne change côté entrée : la résistance de 1 kΩ et les deux fils du signal 12 V restent identiques. Ce qui change, c’est le tirage de sortie, à raccorder au 3,3 V du module et non au 5 V, et la masse de référence, qui devient celle du module. La broche 4 du PC817 est un collecteur de phototransistor : elle s’adapte à n’importe quelle logique tant que la tension du tirage reste sous 35 V.
Questions fréquentes
Peut-on l’utiliser directement sur le secteur 230 V ?
Pour détecter la présence du secteur, oui, à condition d’une résistance calculée pour un courant de quelques milliampères et d’une diode en série — mais cela reste une manipulation sous tension, à ne faire qu’avec les précautions correspondantes. Pour commander une charge sur le secteur, non : il faut un relais ou un optotriac doté d’une détection de passage par zéro, comme le MOC3041. Un PC817 ne peut pas conduire 230 V.
Pourquoi la sortie est-elle toujours au niveau haut ?
Le courant d’entrée est trop faible : la LED n’émet pas assez de lumière pour saturer le phototransistor. Vérifiez la résistance d’entrée, le sens de la LED (broche 1 au positif, broche 2 au négatif) et la présence réelle de la tension en amont.
Quelle différence avec un transistor classique comme le 2N2222 ?
Le 2N2222 est un transistor à jonction : sa commande et sa charge partagent la même masse, donc il n’isole rien. Le PC817 coupe cette liaison. On emploie souvent les deux ensemble — le PC817 pour isoler, le transistor pour fournir le courant dont la charge a besoin.
Peut-il transmettre un signal rapide ?
Pas très rapide : quelques microsecondes de temps de commutation, soit un signal digital utilisable jusqu’à quelques dizaines de kilohertz, pas davantage. Pour des signaux plus rapides, il existe d’autres familles d’optocoupleurs prévues pour cela.
Faut-il une résistance côté sortie en plus du tirage ?
Pour attaquer une entrée logique d’Arduino, la résistance de tirage de 10 kΩ suffit : le courant d’entrée d’une broche est négligeable. Si vous voulez allumer une LED avec cette sortie, la résistance de limitation de la LED reste nécessaire, comme dans le mini-projet.
À combiner avec
Pour aller au bout du mini-projet sans rien chercher, le KIT Starter apporte la carte Uno R3, la plaque d’essai, les fils et les résistances. Du côté de la commande, le Module 1 relais 5v prend le relais du PC817 dès qu’il faut commuter une vraie charge, et le MOC3041 DIP6 OPTO TRIAC est la version optocouplée prévue pour le secteur. Pour un montage qui réagit à la lumière ambiante, la photo résistance LDR se combine naturellement avec une entrée isolée.








Avis
Il n’y a pas encore d’avis.