Composants · 20 min de lecture

NE555 : brochage, montage astable et monostable, formules

Comment fonctionne le NE555 ? Brochage, montage astable et monostable, formules f = 1,44/((R1+2R2)C) et t = 1,1RC, clignotant à LED et code Arduino.

Le NE555 (ou circuit 555) est un petit circuit intégré temporisateur à 8 broches, très bon marché, qui règle des durées allant de quelques microsecondes à plusieurs heures avec une simple résistance et un condensateur. Faire clignoter une LED à un rythme fixe, garder une lampe allumée une minute après un appui sur un bouton, produire un son sur un buzzer ou piloter un moteur en PWM : il fait tout cela sans microcontrôleur et sans une ligne de code. Conçu par Hans Camenzind pour Signetics en 1971 et commercialisé en 1972, il est devenu l'un des circuits intégrés les plus produits au monde ; en 2003, on estimait sa production à environ un milliard d'exemplaires par an.

Dans ce guide, tu vas découvrir le brochage du 555, le fonctionnement interne de ses comparateurs et de sa bascule, les deux montages de base (le clignotant astable et le monostable à impulsion unique), l'origine des formules de fréquence et de durée, la façon de descendre le rapport cyclique sous 50 % et l'utilisation du 555 avec Arduino, ESP32 et Raspberry Pi Pico. Si tu ne veux pas calculer à la main, le calculateur 555 affiche instantanément la fréquence, le rapport cyclique et la forme d'onde.

Qu'est-ce que le NE555 et comment fonctionne-t-il ?

Le 555 contient quatre parties principales. La première est un pont diviseur formé de trois résistances identiques en série entre VCC et GND (5 kΩ chacune dans le NE555 classique) ; il fournit deux tensions de référence : 2/3 et 1/3 de VCC. La deuxième est un ensemble de deux comparateurs reliés à ces références : le comparateur de seuil compare la broche THRES à 2/3 VCC, le comparateur de déclenchement compare la broche TRIG à 1/3 VCC. La troisième est une bascule RS que les deux comparateurs mettent à 1 et à 0, et la quatrième est l'étage de sortie commandé par la bascule, accompagné du transistor de décharge qui vide le condensateur.

La règle est en fait très simple : quand la tension sur TRIG descend sous 1/3 VCC, la sortie passe à l'état HIGH et le transistor de décharge se bloque. Quand la tension sur THRES dépasse 2/3 VCC, la sortie passe à LOW et le transistor de décharge devient passant, reliant la broche 7 à GND. Si rien de tout cela ne se produit, la sortie garde son état précédent. Ce qui fixe la durée, c'est le temps que met le condensateur externe à se charger et à se décharger entre ces deux seuils à travers une résistance. Sous 5 V, les seuils valent 3,33 V et 1,67 V ; sous 9 V, 6 V et 3 V. On dit souvent que le nom vient des trois résistances internes de 5 kΩ, mais Camenzind a expliqué que Signetics avait choisi ce nombre de façon arbitraire.

CaractéristiqueNE555 (bipolaire)TLC555 (CMOS)
Tension d'alimentation4,5–16 V (SE555 : jusqu'à 18 V)2–15 V (LMC555 : dès 1,5 V)
Courant de repos (5 V)2–6 mAEnviron 0,2 mA
Courant de sortieFournit et absorbe jusqu'à 200 mAFournit environ 10 mA, absorbe 100 mA
Niveau HIGH de sortieEnviron 1,5–1,7 V sous VCCJusqu'à VCC (rail-to-rail)
Fréquence maximale conseillée100 kHzEnviron 2 MHz
Fonctionne sous 3,3 VNonOui
Version doubleNE556 (14 broches)TLC556 (14 broches)

Brochage du NE555 (pinout)

L'encoche en demi-lune ou le petit point sur le dessus du boîtier repère la broche 1. Encoche à gauche et vu de dessus, les broches 1 à 4 vont de gauche à droite sur la rangée du bas et les broches 5 à 8 de droite à gauche sur la rangée du haut ; la numérotation tourne donc dans le sens inverse des aiguilles d'une montre et la broche 8 (VCC) se trouve juste en face de la broche 1. Le boîtier DIP-8 se place parfaitement à cheval sur la rainure centrale d'une breadboard : chaque rangée de pattes doit être d'un côté de la rainure.

BrocheNomRôleBranchement typique
1GNDMasse (0 V)Pôle négatif de l'alimentation
2TRIG (déclenchement)Met la sortie à HIGH et lance la temporisation quand elle passe sous 1/3 VCCAstable : à la broche 6 ; monostable : pull-up + bouton
3OUT (sortie)Sortie ; sur le NE555, elle fournit ou absorbe jusqu'à 200 mALED avec résistance, buzzer, transistor
4RESETForce la sortie à LOW si elle descend sous environ 0,7 VDirectement à VCC si inutilisée
5CONT (contrôle)Accès direct à la référence 2/3 VCC ; décale les seuilsCondensateur de 10 nF vers GND
6THRES (seuil)Met la sortie à LOW et termine la temporisation au-dessus de 2/3 VCCAu condensateur de temporisation
7DISCH (décharge)Broche à collecteur ouvert reliée à GND tant que la sortie est à LOWAstable : entre R1 et R2 ; monostable : à la broche 6
8VCCAlimentation positive (NE555 : 4,5–16 V)Pôle positif + découplage 100 nF
L'erreur de débutant la plus courante est de laisser la broche RESET (4) en l'air. Une broche flottante capte les parasites et le circuit se réinitialise au hasard ; la LED clignote parfois, parfois ne réagit plus du tout. Si tu ne t'en sers pas, relie la broche 4 directement à VCC. Par ailleurs, le 555 bipolaire tire de l'alimentation des pointes de courant brèves mais importantes à chaque basculement de la sortie ; sans un condensateur céramique de 100 nF et un chimique de 10 µF tout près des broches 8 et 1, le montage peut se déclencher tout seul.

Trois modes de fonctionnement : astable, monostable et bistable

ModeAutre nomCe qu'il faitUsage typique
AstableMultivibrateur astableProduit tout seul un signal carré continuClignotant à LED, son de buzzer, signal d'horloge, PWM
MonostableMultivibrateur monostableReste à HIGH pendant une durée fixe après un déclenchement, puis revient à LOWLampe temporisée, minuterie d'escalier, allongement d'impulsion
BistableBascule (flip-flop)Passe à HIGH avec TRIG, à LOW avec RESET et garde son état ; aucune temporisationInterrupteur marche-arrêt à deux boutons

Montage astable : clignotant à LED avec le NE555

Dans le montage astable, les broches TRIG (2) et THRES (6) sont reliées entre elles et au condensateur de temporisation. Le condensateur se charge depuis VCC à travers R1 et R2 ; quand sa tension atteint 2/3 VCC, la sortie passe à LOW, le transistor de décharge devient passant et le condensateur se décharge alors dans la broche 7 à travers R2 seulement. Quand la tension redescend à 1/3 VCC, la sortie repasse à HIGH et le cycle se répète tout seul. Le condensateur ne se vide jamais complètement : il oscille entre 1/3 et 2/3 VCC ; c'est seulement à la mise sous tension qu'il part de zéro, ce qui rend la première phase HIGH un peu plus longue. Le montage ci-dessous fonctionne sur une pile de 9 V et allume deux LED en alternance une fois par seconde : c'est le gyrophare de police le plus simple possible.

  1. Place le 555 à cheval sur la rainure centrale de la breadboard, encoche vers la gauche. Si tu ne sais pas comment une breadboard est reliée à l'intérieur, lis d'abord Qu'est-ce qu'une breadboard ?.
  2. Relie les broches 8 (VCC) et 4 (RESET) à la ligne +9 V et la broche 1 (GND) à la ligne négative. Place un condensateur céramique de 100 nF entre les broches 8 et 1, le plus près possible du circuit.
  3. Branche R1 = 10 kΩ entre les broches 8 et 7 et R2 = 68 kΩ entre les broches 7 et 6.
  4. Relie les broches 6 et 2 avec un fil. De ce point, branche un condensateur chimique de C = 10 µF vers GND ; sa patte courte (négative) doit aller côté GND.
  5. Place un condensateur de 10 nF (marqué 103) entre la broche 5 (CONT) et GND.
  6. Depuis la sortie (broche 3), passe par une résistance de 470 Ω jusqu'à l'anode de la première LED et relie sa cathode à GND ; cette LED s'allume quand la sortie est à HIGH. Relie l'anode de la seconde LED au +9 V via 470 Ω et sa cathode à la sortie ; cette LED s'allume quand la sortie est à LOW.
  7. Branche la pile : les deux LED doivent s'allumer en alternance pendant environ 0,54 s et 0,47 s. Si aucune ne s'allume, vérifie d'abord que la broche 4 est bien à VCC.

Sous 9 V, la sortie HIGH du NE555 est d'environ 7,5 V : environ 12 mA traversent donc la première LED et environ 15 mA la seconde. Si tu alimentes le montage en 5 V, descends les résistances à 220–330 Ω ; calcule la valeur avec le calculateur de résistance de LED et consulte Qu'est-ce qu'une LED ? pour tout ce qui concerne la LED. Comme la fréquence ne dépend pas de la tension d'alimentation, les mêmes valeurs de R1, R2 et C donnent toujours un clignotement par seconde sous 5 V.

Formules de fréquence et de durée du NE555

Quand un condensateur se charge à travers une résistance R, sa tension monte selon une courbe exponentielle ; τ = R·C est la constante de temps, expliquée en détail dans Qu'est-ce qu'un condensateur ?. Passer de 1/3 VCC à 2/3 VCC prend exactement ln 2 · R · C ≈ 0,693 · R · C, car l'écart restant jusqu'à la cible est divisé par deux pendant ce temps. Comme la charge se fait à travers R1 + R2 et la décharge seulement à travers R2, les durées HIGH et LOW sont différentes. En additionnant les deux durées et en prenant l'inverse, on obtient le facteur 1 / 0,693 ≈ 1,44 et la fameuse formule : f = 1,44 / ((R1 + 2·R2) · C).

GrandeurFormuleExemple : R1 = 10 kΩ, R2 = 68 kΩ, C = 10 µF
Durée HIGH (tH)0,693 · (R1 + R2) · C0,54 s
Durée LOW (tL)0,693 · R2 · C0,47 s
Période (T)0,693 · (R1 + 2·R2) · C1,01 s
Fréquence (f)1,44 / ((R1 + 2·R2) · C)0,99 Hz
Rapport cyclique(R1 + R2) / (R1 + 2·R2)53,4 %
Durée d'impulsion monostable (t)1,1 · R · C1,1 s pour R = 100 kΩ, C = 10 µF
Condensateurs utilisés dans un montage de temporisation à 555
Dans un 555, c'est le condensateur, avec la résistance, qui fixe la durée : condensateurs chimiques (µF) pour les secondes, céramiques ou film (nF) pour les fréquences de l'ordre du kHz.

Au moment de choisir les valeurs, garde quelques limites en tête. R1 doit valoir au moins 1 kΩ ; sinon, quand le transistor de décharge devient passant, il relie VCC presque directement à GND. D'après la fiche technique de Texas Instruments, à cause du faible courant absorbé par l'entrée de seuil, R1 + R2 ne devrait pas dépasser environ 3,4 MΩ sous 5 V ni 10 MΩ sous 15 V ; en pratique, rester entre 1 kΩ et 1 MΩ est le plus sûr. Ne descends pas sous 1 nF pour le condensateur, car la capacité propre de la breadboard et des fils fausserait le calcul. Utilise le NE555 sous 100 kHz ; pour des signaux plus rapides, choisis une version CMOS. Pour décoder les chiffres imprimés sur un condensateur, utilise l'outil code de condensateur, et pour voir la courbe de charge, l'outil constante de temps RC.

R1R2CFréquenceRapportUsage
10 kΩ100 kΩ10 µF0,69 Hz52 %Feu d'avertissement lent
10 kΩ68 kΩ10 µF0,99 Hz53 %Clignotant à LED, une fois par seconde
4,7 kΩ47 kΩ1 µF14,6 Hz52 %Effet stroboscopique rapide
1 kΩ10 kΩ100 nF686 Hz52 %Son de buzzer
1 kΩ6,8 kΩ100 nF986 Hz53 %Signal de test d'environ 1 kHz
1 kΩ10 kΩ10 nF6,86 kHz52 %Son aigu, PWM
1 kΩ18 kΩ1 nF38,9 kHz51 %Porteuse de télécommande IR (à régler sur 38 kHz avec un trimmer)

Régler le rapport cyclique : descendre sous 50 %

Dans le montage astable de base, le condensateur se charge à travers R1 + R2 mais se décharge seulement à travers R2 : la durée HIGH est donc toujours plus longue que la durée LOW et le rapport cyclique ne peut pas descendre sous 50 % ; avec R2 beaucoup plus grande que R1, tu t'approches de 50 % sans jamais passer en dessous. La solution est d'ajouter une diode 1N4148 en parallèle sur R2, anode côté broche 7 et cathode côté broche 6. Pendant la charge, le courant passe par la diode et contourne R2 ; pendant la décharge, la diode est bloquée et le courant traverse R2. On obtient alors tH ≈ 0,693 · R1 · C et tL ≈ 0,693 · R2 · C, et le rapport cyclique descend à R1 / (R1 + R2). Par exemple, avec R1 = 10 kΩ, R2 = 47 kΩ et C = 10 µF, la LED s'allume 69 ms et s'éteint 326 ms : un éclair bref et bien visible avec un rapport cyclique de 17,5 %. La chute de tension d'environ 0,6 V de la diode rallonge un peu la durée HIGH par rapport au calcul, surtout sous 5 V. Pour comprendre le comportement des diodes, consulte Qu'est-ce qu'une diode ?.

Si tu veux garder la fréquence fixe et ne régler que le rapport cyclique, utilise un potentiomètre et deux diodes. Relie le curseur du potentiomètre à la broche 7 ; relie une extrémité au condensateur par une diode (anode côté potentiomètre) et l'autre extrémité, toujours au condensateur, par une seconde diode montée dans l'autre sens (cathode côté potentiomètre). Avec R1 = 1 kΩ, un potentiomètre de 100 kΩ et C = 10 nF, la fréquence reste à environ 1,4 kHz pendant que le rapport cyclique varie à peu près de 1 % à 99 %, car la somme des résistances de charge et de décharge reste la même quand tu tournes le potentiomètre. Avec un MOSFET en sortie, c'est la méthode classique pour régler la vitesse d'un moteur à courant continu ou la luminosité d'un ruban LED 12 V ; tous les détails sont dans Qu'est-ce que le PWM ? et Utiliser un MOSFET avec Arduino.

Montage monostable : impulsion unique et lampe temporisée

Dans le montage monostable, les broches 6 (THRES) et 7 (DISCH) sont reliées ; de ce point part une résistance R vers VCC et un condensateur C vers GND. La broche TRIG (2) est maintenue à HIGH par une résistance de pull-up. Au repos, la sortie est à LOW et le transistor de décharge garde le condensateur vide. Quand une brève impulsion LOW arrive sur TRIG, la sortie passe à HIGH, la décharge se bloque et le condensateur commence à se charger à travers R. Quand sa tension atteint 2/3 VCC, la sortie revient à LOW et le condensateur est déchargé instantanément. Cette fois, la charge part de zéro jusqu'à 2/3 VCC, si bien que l'impulsion dure ln 3 · R · C ≈ 1,1 · R · C, là encore indépendamment de la tension d'alimentation.

  1. Relie les broches 8 et 4 au +5 V et la broche 1 à GND ; place 100 nF entre les broches 8 et 1 et 10 nF entre la broche 5 et GND.
  2. Relie les broches 6 et 7. De ce point, branche R = 470 kΩ vers le +5 V et un condensateur chimique de C = 100 µF vers GND (patte négative à GND).
  3. Tire la broche TRIG (2) vers le +5 V avec 10 kΩ et branche un bouton-poussoir entre la broche 2 et GND. Pour plus de détails sur le câblage des boutons, consulte Comment brancher un bouton sur Arduino.
  4. Pour un premier essai, branche une LED sur la sortie (broche 3) à travers une résistance de 330 Ω.
  5. Appuie brièvement sur le bouton : la LED reste allumée environ 1,1 × 470 kΩ × 100 µF ≈ 52 secondes puis s'éteint. Avec la tolérance de ±20 % du condensateur chimique, un résultat entre 42 et 62 secondes est normal.
  6. Pour une vraie lampe, commande un relais à la place de la LED : depuis la sortie, passe par 1 kΩ jusqu'à la base d'un transistor BC547, relie l'émetteur à GND et le collecteur à une extrémité de la bobine du relais ; l'autre extrémité de la bobine va au +5 V. N'oublie pas une diode 1N4007 en antiparallèle sur la bobine (cathode côté +5 V) ; pour le rôle du transistor, consulte Qu'est-ce qu'un transistor ?.
Si tu gardes le bouton enfoncé plus longtemps que la temporisation, la sortie reste à HIGH même après la fin du délai ; d'après la fiche technique, TRIG doit revenir à HIGH au moins 10 µs avant la fin de l'intervalle pour que celui-ci se termine. Pour les longues durées, augmente C plutôt que R : si le courant de fuite du condensateur chimique approche le faible courant de charge qui passe par R, le condensateur n'atteint jamais 2/3 VCC et la lampe ne s'éteint jamais ; garde donc R sous 1 MΩ. Si tu commandes une lampe 230 V avec un relais, ne mets jamais le montage sous tension avant d'avoir isolé la partie secteur et respecte les règles de sécurité de Qu'est-ce qu'un module relais ?.
RCDurée (1,1 · R · C)Usage
10 kΩ1 µF11 msAnti-rebond de bouton, allongement d'impulsions courtes
100 kΩ10 µF1,1 sBip court, sonnette
220 kΩ47 µF11,4 sÉclairage de courte durée
470 kΩ100 µF52 sMinuterie d'escalier, lampe temporisée
10 kΩ + potentiomètre 1 MΩ100 µF1,1–111 sMinuterie réglable

Pour interrompre la temporisation avant la fin, tu peux ajouter un second bouton sur la broche RESET (4) : tire la broche vers VCC avec 10 kΩ et branche le bouton entre RESET et GND ; dès que tu appuies, la sortie passe à LOW et le condensateur est déchargé. Un monostable se déclenche parfois tout seul une fois à la mise sous tension. Pour l'éviter, relie la broche RESET à VCC via 10 kΩ et à GND via 10 µF : à l'allumage, le circuit reste en reset le temps que ce condensateur se charge, puis fonctionne normalement une fois l'alimentation stabilisée.

Comment utiliser le NE555 avec Arduino ?

Le 555 et l'Arduino ne sont pas rivaux, ils forment une bonne équipe. Tu peux aussi faire un simple clignotant sur Arduino avec millis(), mais le 555 n'a besoin d'aucun code, fonctionne jusqu'à 16 V, fournit 200 mA en sortie et continue de travailler même si l'Arduino se bloque. C'est pourquoi le 555 accompagne généralement l'Arduino dans l'un de ces trois rôles : source de signal que l'Arduino mesure, temporisateur matériel que l'Arduino déclenche (capacimètre, allongeur d'impulsion) et oscillateur que l'Arduino active ou coupe par la broche RESET (sirène ou son de buzzer). Dans ce dernier cas, il suffit de relier la broche 4 du 555 à une sortie de l'Arduino : quand la broche est à HIGH, l'oscillateur fonctionne ; quand elle est à LOW, il se tait.

Broche du 555Arduino UnoESP32Raspberry Pi Pico
8 VCC5V3V3 (555 CMOS uniquement)3V3(OUT) (555 CMOS) ou VBUS (NE555)
1 GNDGNDGNDGND
3 OUTD2GPIO 27GP15 (avec un NE555, via un pont 10 kΩ + 20 kΩ)
2 TRIG (exemple de déclenchement)D7GPIO 26GP14 (uniquement avec un 555 CMOS alimenté en 3V3)
4 RESET5V ou une broche numérique3V33V3(OUT)
Quand tu relies un 555 à un Arduino, alimente les deux avec le même 5 V et relie leurs masses. La sortie d'un 555 alimenté en 9 ou 12 V monte à 7–10 V et détruit l'entrée de l'Arduino ; dans ce cas, il faut abaisser la sortie avec un pont diviseur de tension. Le niveau HIGH du NE555 sous 5 V est d'environ 3,5 V, à peine au-dessus du seuil de 3 V de l'Uno ; pour un HIGH plus sûr, tu peux ajouter une résistance de pull-up de 10 kΩ entre la sortie et le 5 V.

Dans le premier exemple, l'Arduino mesure la fréquence et le rapport cyclique du clignotant et les compare aux valeurs calculées avec les formules. Le montage est le même astable que plus haut (R1 = 10 kΩ, R2 = 68 kΩ, C = 10 µF), mais alimenté par la broche 5V de l'Arduino au lieu de 9 V, avec la sortie (broche 3) reliée à D2. La fonction pulseIn() renvoie, en microsecondes, la durée pendant laquelle une broche reste à HIGH ou à LOW.

Arduino (C++)
1// 555 flaşörünün frekansını ve duty cycle'ını ölçer / Measures the frequency and duty cycle of a 555 flasher
2const int SIGNAL_PIN = 2;                    // 555 çıkışı (pin 3) / 555 output (pin 3)
3const float R1_OHM = 10000.0;                // R1 = 10 kΩ
4const float R2_OHM = 68000.0;                // R2 = 68 kΩ
5const float C_FARAD = 10e-6;                 // C = 10 µF
6const unsigned long TIMEOUT_US = 3000000UL;  // 3 s: ~1 Hz sinyal için / for a ~1 Hz signal
7
8void setup() {
9  Serial.begin(9600);
10  pinMode(SIGNAL_PIN, INPUT);
11
12  // Formüllerle hesaplanan değerler / Values from the formulas
13  float fCalc = 1.44 / ((R1_OHM + 2 * R2_OHM) * C_FARAD);
14  float dutyCalc = 100.0 * (R1_OHM + R2_OHM) / (R1_OHM + 2 * R2_OHM);
15  Serial.print(F("Hesaplanan / Calculated: f = "));
16  Serial.print(fCalc, 3);
17  Serial.print(F(" Hz, duty = "));
18  Serial.print(dutyCalc, 1);
19  Serial.println(F(" %"));
20}
21
22void loop() {
23  unsigned long highUs = pulseIn(SIGNAL_PIN, HIGH, TIMEOUT_US);  // HIGH süresi / HIGH time
24  unsigned long lowUs = pulseIn(SIGNAL_PIN, LOW, TIMEOUT_US);    // LOW süresi / LOW time
25
26  if (highUs == 0 || lowUs == 0) {           // zaman aşımı / timeout
27    Serial.println(F("Sinyal yok / No signal"));
28    return;
29  }
30
31  unsigned long periodUs = highUs + lowUs;
32  float f = 1000000.0 / periodUs;            // f = 1 / T
33  float duty = 100.0 * highUs / periodUs;    // duty = tH / T
34
35  Serial.print(F("Olculen / Measured: f = "));
36  Serial.print(f, 3);
37  Serial.print(F(" Hz, duty = "));
38  Serial.print(duty, 1);
39  Serial.print(F(" %, tH = "));
40  Serial.print(highUs / 1000);
41  Serial.print(F(" ms, tL = "));
42  Serial.print(lowUs / 1000);
43  Serial.println(F(" ms"));
44}

Par défaut, pulseIn() attend au maximum 1 seconde ; avec un signal d'environ 1 Hz, elle attend d'abord la fin de l'impulsion en cours puis le début d'une nouvelle, c'est pourquoi nous avons porté le délai d'attente à 3 secondes. Il est normal que la fréquence mesurée dans le moniteur série s'écarte de 5 à 20 % de la valeur calculée ; l'essentiel de l'écart vient de la tolérance du condensateur chimique. Cet écart est d'ailleurs un moyen de connaître la valeur réelle du condensateur : remplace la fréquence mesurée dans f = 1,44 / ((R1 + 2·R2) · C) et résous pour C. Pour des signaux plus rapides, compter les fronts avec une interruption plutôt qu'avec pulseIn() donne des résultats plus précis.

Déclencher le 555 avec Arduino : un capacimètre

Comme la durée d'impulsion en monostable vaut t = 1,1 · R · C, si tu connais R et mesures t, tu trouves la valeur du condensateur avec C = t / (1,1 · R). Voici le montage : broches 6 et 7 reliées, avec 100 kΩ de ce point vers le 5 V et le condensateur à mesurer vers GND ; broches 4 et 8 au 5 V, broche 5 à GND via 10 nF. La broche TRIG (2) est tirée vers le 5 V par 10 kΩ et reliée à D7, et la sortie (broche 3) va sur D2. L'Arduino envoie sur D7 une impulsion LOW de 10 µs et mesure avec micros() combien de temps la sortie reste à HIGH.

Arduino (C++)
1// 555 monostable ile kondansatör ölçer / Capacitance meter with a 555 monostable
2const int TRIG_PIN = 7;                      // 555 pin 2 (TRIG)
3const int OUT_PIN = 2;                       // 555 pin 3 (OUT)
4const float R_OHM = 100000.0;                // 6-7 ile 5V arasındaki direnç / resistor between pins 6-7 and 5V
5const float CAL = 1.0;                       // kalibrasyon: gerçek / ölçülen / calibration: real / measured
6const unsigned long TIMEOUT_US = 6000000UL;  // 6 s: ~47 µF'a kadar / up to ~47 µF
7
8void setup() {
9  Serial.begin(9600);
10  pinMode(OUT_PIN, INPUT);
11  pinMode(TRIG_PIN, OUTPUT);
12  digitalWrite(TRIG_PIN, HIGH);              // TRIG beklemede HIGH / TRIG idles HIGH
13}
14
15void loop() {
16  while (digitalRead(OUT_PIN) == HIGH) {}    // önceki darbenin bitmesini bekle / wait for any previous pulse to end
17
18  digitalWrite(TRIG_PIN, LOW);               // 10 µs'lik LOW darbesiyle tetikle / trigger with a 10 µs LOW pulse
19  delayMicroseconds(10);
20  digitalWrite(TRIG_PIN, HIGH);
21
22  unsigned long t0 = micros();
23  while (digitalRead(OUT_PIN) == LOW) {      // çıkışın HIGH olmasını bekle / wait for OUT to go HIGH
24    if (micros() - t0 > 1000) {
25      Serial.println(F("555 yanit vermiyor / 555 not responding"));
26      delay(1000);
27      return;
28    }
29  }
30
31  t0 = micros();
32  while (digitalRead(OUT_PIN) == HIGH) {     // darbe süresini ölç / time the pulse
33    if (micros() - t0 > TIMEOUT_US) {
34      Serial.println(F("Kondansator cok buyuk / Capacitor too large"));
35      delay(1000);
36      return;
37    }
38  }
39  unsigned long widthUs = micros() - t0;
40
41  // t = 1,1 · R · C  ->  C = t / (1,1 · R)
42  float capNf = CAL * (widthUs * 1e-6) / (1.1 * R_OHM) * 1e9;
43
44  Serial.print(F("t = "));
45  Serial.print(widthUs);
46  Serial.print(F(" us, C = "));
47  if (capNf >= 1000.0) {
48    Serial.print(capNf / 1000.0, 2);
49    Serial.println(F(" uF"));
50  } else {
51    Serial.print(capNf, 1);
52    Serial.println(F(" nF"));
53  }
54  delay(1000);
55}

Ici, on mesure à la main avec micros() au lieu de pulseIn(), car juste après le déclenchement la sortie est déjà à HIGH et pulseIn() considérerait cette impulsion comme « l'impulsion précédente » et l'ignorerait. Sur l'Uno, micros() a une résolution de 4 µs ; avec 100 kΩ, un condensateur de 1 nF donne une impulsion de 110 µs, donc la plage de mesure va à peu près de 1 nF à 47 µF. Mesure un condensateur connu et inscris le rapport entre sa valeur réelle et la valeur mesurée dans le facteur CAL pour étalonner ton appareil. Avant de brancher un condensateur chimique, décharge-le en court-circuitant ses pattes et relie sa patte positive du côté des broches 6 et 7.

Le NE555 avec ESP32 et Raspberry Pi Pico

L'ESP32 et la Raspberry Pi Pico fonctionnent en 3,3 V et leurs broches ne tolèrent pas le 5 V. Le NE555 classique, lui, demande au moins 4,5 V et ne peut donc pas être alimenté en 3,3 V. La solution la plus propre est un 555 CMOS comme le TLC555, le LMC555 ou l'ICM7555 : même brochage, alimentation par la broche 3V3, et une sortie qui va de 0 à 3,3 V, donc branchée directement sur un GPIO. Si tu n'as qu'un NE555, alimente-le en 5 V et divise sa sortie avec 10 kΩ (en série) et 20 kΩ (vers GND). Comme le niveau HIGH du NE555 est d'environ 3,5 V, la sortie du pont descend à environ 2,3 V : suffisant pour le seuil de 2 V de la Pico, mais limite pour le seuil d'environ 2,5 V de l'ESP32. Avec l'ESP32, préfère donc un 555 CMOS.

Dans l'exemple ESP32, un 555 CMOS avec R1 = 1 kΩ, R2 = 6,8 kΩ et C = 100 nF produit un signal d'environ 986 Hz ; il a les mêmes proportions que le clignotant, mais il est mille fois plus rapide. L'ESP32 exécute une routine d'interruption à chaque front montant et affiche le nombre de fronts comptés en une seconde ; ce nombre est directement la fréquence en Hz. Le rapport cyclique est calculé à partir d'une seule durée HIGH mesurée avec pulseIn().

Arduino (C++)
1// ESP32 + CMOS 555 (TLC555) frekans ve duty ölçer / ESP32 + CMOS 555 (TLC555) frequency and duty meter
2const int SIGNAL_PIN = 27;                   // 555 çıkışı (pin 3) / 555 output (pin 3)
3
4volatile uint32_t edgeCount = 0;
5portMUX_TYPE mux = portMUX_INITIALIZER_UNLOCKED;
6
7void IRAM_ATTR onRise() {
8  portENTER_CRITICAL_ISR(&mux);
9  edgeCount++;                               // her yükselen kenarı say / count every rising edge
10  portEXIT_CRITICAL_ISR(&mux);
11}
12
13void setup() {
14  Serial.begin(115200);
15  pinMode(SIGNAL_PIN, INPUT);
16  attachInterrupt(digitalPinToInterrupt(SIGNAL_PIN), onRise, RISING);
17}
18
19void loop() {
20  static uint32_t lastMs = millis();
21  if (millis() - lastMs < 1000) return;      // 1 saniyelik ölçüm penceresi / 1-second gate
22  lastMs += 1000;
23
24  portENTER_CRITICAL(&mux);
25  uint32_t edges = edgeCount;                // sayacı oku ve sıfırla / read and reset the counter
26  edgeCount = 0;
27  portEXIT_CRITICAL(&mux);
28
29  unsigned long highUs = pulseIn(SIGNAL_PIN, HIGH, 100000UL);  // tek bir HIGH süresi / one HIGH time
30  float duty = highUs * (float)edges / 10000.0;                // duty % = tH(µs) · f(Hz) / 10000
31
32  Serial.printf("f = %u Hz, tH = %lu us, duty = %.1f %%\n", (unsigned)edges, highUs, duty);
33}

Sur la Pico, la fonction machine.time_pulse_us() de MicroPython est l'équivalent de pulseIn() sur Arduino, avec une différence importante : si la broche est déjà au niveau demandé, elle commence à mesurer immédiatement. C'est pourquoi le premier appel sert à ignorer une impulsion incomplète et à se synchroniser sur un front du signal ; les mesures LOW et HIGH qui suivent portent sur des impulsions complètes. L'exemple mesure le clignotant à une impulsion par seconde et inverse l'état de la LED intégrée à chaque mesure.

MicroPython
1# Pico ile 555 flaşörünü ölçmek / Measuring a 555 flasher with the Pico
2from machine import Pin, time_pulse_us
3import time
4
5sig = Pin(15, Pin.IN)       # 555 çıkışı: CMOS 555 doğrudan, NE555 bölücüyle / 555 output: CMOS 555 direct, NE555 via a divider
6led = Pin(25, Pin.OUT)      # dahili LED (Pico W'de Pin("LED")) / onboard LED (Pin("LED") on a Pico W)
7TIMEOUT = 2_000_000         # 2 s zaman aşımı / 2 s timeout
8
9while True:
10    # İlk ölçüm yarım darbeyi atlar ve kenara senkronlar / The first call skips a partial pulse and syncs to an edge
11    if time_pulse_us(sig, 1, TIMEOUT) < 0:
12        print("Sinyal yok / No signal")
13        continue
14    low_us = time_pulse_us(sig, 0, TIMEOUT)    # tam LOW süresi / full LOW time
15    high_us = time_pulse_us(sig, 1, TIMEOUT)   # tam HIGH süresi / full HIGH time
16    if low_us < 0 or high_us < 0:
17        continue
18    period = low_us + high_us
19    print("f = {:.3f} Hz, duty = {:.1f} %, tH = {} ms, tL = {} ms".format(
20        1_000_000 / period, 100 * high_us / period, high_us // 1000, low_us // 1000))
21    led.toggle()            # her ölçümde LED'i değiştir / toggle the LED on every reading
22    time.sleep_ms(200)

Idées de projets avec le NE555

  • Gyrophare de police : Allume en alternance une LED rouge et une LED bleue, l'une reliée de la sortie à GND et l'autre de VCC à la sortie ; avec 4,7 kΩ, 47 kΩ et 1 µF, tu obtiens un effet stroboscopique rapide.
  • Sirène deux tons : Envoie la sortie d'un premier 555 lent, à travers une résistance, sur la broche 5 (CONT) d'un second 555 ; quand les seuils se décalent, le son du second circuit monte et descend. Pour le son, utilise un buzzer passif ou un petit haut-parleur.
  • Minuterie d'escalier : Monte avec un 555 monostable, un relais et des boutons une minuterie qui garde une lampe allumée une minute, les boutons des différents étages étant câblés en parallèle.
  • Capacimètre : Mesure avec le code Arduino de cet article les condensateurs dont le marquage est effacé et affiche le résultat sur un écran LCD I2C.
  • Émetteur IR : Pilote une LED infrarouge avec un 555 astable réglé sur 38 kHz et détecte le signal avec un récepteur IR ; tu obtiens une alarme simple à coupure de faisceau. Les récepteurs de télécommande comme le TSOP ou le VS1838B peuvent prendre une porteuse continue pour du bruit et la rejeter au bout d'un moment ; active et coupe donc ce 555 par sa broche RESET avec un second 555 lent pour émettre par salves.
  • Variateur de vitesse de moteur : Relie le montage PWM à fréquence fixe avec potentiomètre à un MOSFET pour régler la puissance d'un moteur à courant continu 12 V ou d'un ruban LED.
  • Détecteur d'impulsion manquante : Ajoute un transistor PNP (par exemple un BC557) en parallèle sur le condensateur de temporisation, base reliée à TRIG ; chaque impulsion LOW que l'Arduino envoie à intervalles réguliers déclenche le 555 et vide en même temps le condensateur, ce qui relance la temporisation. Si l'Arduino se bloque et que les impulsions s'arrêtent, la temporisation arrive à son terme et le 555 déclenche une alarme ou redémarre le système.

Erreurs fréquentes et solutions

SymptômeCause probableSolution
La LED ne clignote pas, reste allumée ou éteinteRESET (4) en l'air ou à GND ; en astable, broches 2 et 6 non reliéesRelie RESET à VCC et relie les broches 2 et 6 avec un fil
La fréquence est très éloignée du calculTolérance de ±20 % du condensateur chimique, valeur mal lue (nF au lieu de µF), C trop petitMesure le condensateur, vérifie son marquage, utilise un condensateur film pour la précision
Le montage est instable ou se déclenche tout seulPas de découplage de l'alimentation, broche CONT ou TRIG en l'air100 nF + 10 µF entre les broches 8 et 1, 10 nF sur la broche 5, pull-up de 10 kΩ sur TRIG
Le circuit chauffeSortie en court-circuit sur une LED sans résistance ou sur GND ; R1 trop petiteMets une résistance en série avec la LED et prends R1 d'au moins 1 kΩ
La temporisation monostable ne finit jamaisBouton maintenu ou TRIG bloqué à LOWAppuie brièvement ou envoie une courte impulsion LOW depuis l'Arduino
Le circuit se réinitialise ou grille quand le relais retombePas de diode pour absorber la tension inverse de la bobineMets une 1N4007 en antiparallèle sur la bobine du relais
L'Arduino lit mal ou la broche est détruiteLe 555 est alimenté en 9–12 VAlimente le 555 en 5 V ou abaisse la sortie avec un pont diviseur
Le rapport cyclique ne descend pas sous 50 %Limite naturelle du montage astable de baseAjoute une diode 1N4148 en parallèle sur R2
Quand le montage ne fonctionne pas, mesure d'abord au multimètre : tu dois trouver la tension d'alimentation sur les broches 8 et 4 et environ 2/3 de VCC sur la broche 5 (6 V sous 9 V). Si, en astable, la tension du condensateur monte et descend lentement entre 1/3 et 2/3 VCC, le circuit fonctionne et le problème se trouve côté sortie. Pour la technique de mesure, consulte Comment utiliser un multimètre.

Le NE555 est l'un des meilleurs composants pour apprendre, car il réunit dans un seul circuit bon marché les idées de base de la temporisation en électronique (charge RC, seuil, comparateur, bascule). Commence par le clignotant à une impulsion par seconde, change ensuite les valeurs pour obtenir un son de buzzer, puis essaie la lampe temporisée en monostable et le capacimètre avec Arduino. Dans l'application BlueGrays, tu trouveras pas à pas, avec schémas et code, des projets de gyrophare de police, de feux de passage à niveau, d'éclairage d'escalier et de buzzer, pour essayer côte à côte les versions Arduino et Pico de tes montages à 555.

Questions fréquentes

À quoi sert le NE555 ?

Le 555 est un circuit intégré temporisateur polyvalent qui fixe des durées avec une résistance et un condensateur. En astable, il produit un signal carré continu pour un clignotant à LED, un son de buzzer ou un signal d'horloge ; en monostable, il fournit une sortie qui reste active pendant une durée fixe après un déclenchement, pour une lampe temporisée ou une minuterie. Il ne demande ni microcontrôleur ni code.

Quelle tension faut-il pour un NE555 ?

Le NE555 classique fonctionne de 4,5 à 16 V (le SE555 jusqu'à 18 V) ; 5, 9 et 12 V sont les alimentations les plus courantes. Pour les basses tensions comme 3,3 V, on utilise des versions CMOS comme le TLC555 (2–15 V), l'ICM7555 ou le LMC555, qui démarre dès 1,5 V. Tant que l'alimentation reste stable, la fréquence et la durée ne dépendent pas de la tension.

Quelles valeurs pour un clignotant 1 Hz avec un NE555 ?

Avec R1 = 10 kΩ, R2 = 68 kΩ et C = 10 µF, on obtient f = 1,44 / ((10 kΩ + 2 · 68 kΩ) · 10 µF) ≈ 0,99 Hz ; la LED reste allumée environ 0,54 s et éteinte 0,47 s. À cause de la tolérance de ±20 % du condensateur chimique, la valeur réelle sera un peu différente. Pour un réglage fin, remplace R2 par un trimmer.

Comment obtenir un rapport cyclique inférieur à 50 % avec un 555 ?

Dans le montage astable de base, le condensateur se charge à travers R1 + R2 mais se décharge seulement à travers R2 : la durée HIGH est donc toujours plus longue que la durée LOW. En ajoutant une diode 1N4148 en parallèle sur R2, anode côté broche 7, la charge ne passe plus que par R1. On a alors tH ≈ 0,693 · R1 · C et tL ≈ 0,693 · R2 · C, et en choisissant R1 plus petite que R2 tu passes sous 50 %.

Quelle est la différence entre le NE555 et le TLC555 ?

Le NE555 est réalisé avec des transistors bipolaires, demande au moins 4,5 V et peut fournir jusqu'à 200 mA en sortie, mais il consomme 2 à 6 mA au repos et peine au-delà de 100 kHz. Le TLC555 est une version CMOS : il fonctionne dès 2 V, consomme environ 0,2 mA, monte à environ 2 MHz et sa sortie atteint la tension d'alimentation ; en revanche, il ne fournit qu'environ 10 mA. Les deux ont le même brochage.

Peut-on laisser les broches 4 et 5 du NE555 non connectées ?

La broche RESET (4) ne doit jamais rester en l'air ; si tu ne t'en sers pas, relie-la directement à VCC, sinon les parasites peuvent réinitialiser le circuit au hasard. La broche CONT (5) peut techniquement rester libre, mais la relier à GND avec un condensateur de 10 nF est une bonne habitude pour que le bruit ne décale pas les seuils. Si tu appliques une tension extérieure sur cette broche, les seuils, et donc la fréquence, changent.

Voir tous les projets
Gyrophare de police à LED
#4Débutant

Gyrophare de police à LED

Comme le gyrophare d'une voiture de police : la LED rouge flashe trois fois très vite, puis la bleue flashe trois fois à son tour, et la séquence se répète sans fin. Il te suffit de deux LED et de deu

4.7(99)
235
Utilisation du buzzer
#13Débutant

Utilisation du buzzer

Tu t'es déjà demandé comment une sonnette ou une alarme produit son son ? L'Arduino fait biper un petit buzzer à intervalles courts : bip, silence, bip, silence. Tu vois comment l'électricité devient

4.7(89)
158
Réglage de la fréquence avec buzzer
#14Intermédiaire

Réglage de la fréquence avec buzzer

Tu contrôles le son d'un buzzer avec quatre boutons : l'un lance le son, l'autre le coupe, et les deux derniers le rendent plus aigu ou plus grave. Garde le bouton plus ou moins enfoncé et la note cha

4.6(68)
115
Raspberry Pi Pico Effet Gyrophare Police (Rouge + Bleu Stroboscope, GP11 + GP12)
#151Débutant

Raspberry Pi Pico Effet Gyrophare Police (Rouge + Bleu Stroboscope, GP11 + GP12)

Nous simulons la rampe lumineuse d'une voiture de police avec un Raspberry Pi Pico, dans sa version la plus simple ! 🚨 Les LED rouge et bleue s'allument à tour de rôle (flip-flop) : quand la rouge est allumée, la bleue est éteinte, et elles s'échangent toutes les 0,3 seconde, sans fin. Le code écrit les deux étapes directement dans une seule boucle `while True` ; la vitesse se règle avec la constante `WAIT_MS`.

4.7(3)
10
Feux clignotants à LED pour passages à niveau
#146Avancé
Premium

Feux clignotants à LED pour passages à niveau

Feux clignotants à LED pour passages à niveau.

5.0(2)
14
Éclairage intelligent des escaliers et des couloirs
#82Intermédiaire
Premium

Éclairage intelligent des escaliers et des couloirs

Pose le pied dans l'escalier ou le couloir et les lumières s'allument marche après marche dans ton sens de passage. Un capteur de distance se trouve à chaque extrémité ; quel que soit celui devant leq

5.0(35)
51
Ampoule 220V avec bouton poussoir (Push)
#19Avancé
Premium

Ampoule 220V avec bouton poussoir (Push)

Tant que tu appuies sur le bouton, une vraie ampoule de 220 volts reste allumée, et elle s'éteint dès que tu relâches. Le petit signal de l'Arduino ne peut pas allumer l'ampoule directement : un relai

4.4(30)
38
ESP32 Effet de Gyrophare de Police
#109Débutant
Premium

ESP32 Effet de Gyrophare de Police

Simule les gyrophares d'une voiture de police en faisant clignoter rapidement des groupes de LED rouges et bleues. Avec 2 LED dans chaque groupe, l'effet est plus spectaculaire. Un exemple classique de basculement rapide et de contrôle par groupes.

4.6(21)
36