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éristique | NE555 (bipolaire) | TLC555 (CMOS) |
|---|---|---|
| Tension d'alimentation | 4,5–16 V (SE555 : jusqu'à 18 V) | 2–15 V (LMC555 : dès 1,5 V) |
| Courant de repos (5 V) | 2–6 mA | Environ 0,2 mA |
| Courant de sortie | Fournit et absorbe jusqu'à 200 mA | Fournit environ 10 mA, absorbe 100 mA |
| Niveau HIGH de sortie | Environ 1,5–1,7 V sous VCC | Jusqu'à VCC (rail-to-rail) |
| Fréquence maximale conseillée | 100 kHz | Environ 2 MHz |
| Fonctionne sous 3,3 V | Non | Oui |
| Version double | NE556 (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.
| Broche | Nom | Rôle | Branchement typique |
|---|---|---|---|
| 1 | GND | Masse (0 V) | Pôle négatif de l'alimentation |
| 2 | TRIG (déclenchement) | Met la sortie à HIGH et lance la temporisation quand elle passe sous 1/3 VCC | Astable : à la broche 6 ; monostable : pull-up + bouton |
| 3 | OUT (sortie) | Sortie ; sur le NE555, elle fournit ou absorbe jusqu'à 200 mA | LED avec résistance, buzzer, transistor |
| 4 | RESET | Force la sortie à LOW si elle descend sous environ 0,7 V | Directement à VCC si inutilisée |
| 5 | CONT (contrôle) | Accès direct à la référence 2/3 VCC ; décale les seuils | Condensateur de 10 nF vers GND |
| 6 | THRES (seuil) | Met la sortie à LOW et termine la temporisation au-dessus de 2/3 VCC | Au condensateur de temporisation |
| 7 | DISCH (décharge) | Broche à collecteur ouvert reliée à GND tant que la sortie est à LOW | Astable : entre R1 et R2 ; monostable : à la broche 6 |
| 8 | VCC | Alimentation positive (NE555 : 4,5–16 V) | Pôle positif + découplage 100 nF |
Trois modes de fonctionnement : astable, monostable et bistable
| Mode | Autre nom | Ce qu'il fait | Usage typique |
|---|---|---|---|
| Astable | Multivibrateur astable | Produit tout seul un signal carré continu | Clignotant à LED, son de buzzer, signal d'horloge, PWM |
| Monostable | Multivibrateur monostable | Reste à HIGH pendant une durée fixe après un déclenchement, puis revient à LOW | Lampe temporisée, minuterie d'escalier, allongement d'impulsion |
| Bistable | Bascule (flip-flop) | Passe à HIGH avec TRIG, à LOW avec RESET et garde son état ; aucune temporisation | Interrupteur 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.
- 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 ?.
- 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.
- Branche R1 = 10 kΩ entre les broches 8 et 7 et R2 = 68 kΩ entre les broches 7 et 6.
- 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.
- Place un condensateur de 10 nF (marqué 103) entre la broche 5 (CONT) et GND.
- 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.
- 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).
| Grandeur | Formule | Exemple : R1 = 10 kΩ, R2 = 68 kΩ, C = 10 µF |
|---|---|---|
| Durée HIGH (tH) | 0,693 · (R1 + R2) · C | 0,54 s |
| Durée LOW (tL) | 0,693 · R2 · C | 0,47 s |
| Période (T) | 0,693 · (R1 + 2·R2) · C | 1,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 · C | 1,1 s pour R = 100 kΩ, C = 10 µF |

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.
| R1 | R2 | C | Fréquence | Rapport | Usage |
|---|---|---|---|---|---|
| 10 kΩ | 100 kΩ | 10 µF | 0,69 Hz | 52 % | Feu d'avertissement lent |
| 10 kΩ | 68 kΩ | 10 µF | 0,99 Hz | 53 % | Clignotant à LED, une fois par seconde |
| 4,7 kΩ | 47 kΩ | 1 µF | 14,6 Hz | 52 % | Effet stroboscopique rapide |
| 1 kΩ | 10 kΩ | 100 nF | 686 Hz | 52 % | Son de buzzer |
| 1 kΩ | 6,8 kΩ | 100 nF | 986 Hz | 53 % | Signal de test d'environ 1 kHz |
| 1 kΩ | 10 kΩ | 10 nF | 6,86 kHz | 52 % | Son aigu, PWM |
| 1 kΩ | 18 kΩ | 1 nF | 38,9 kHz | 51 % | 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.
- 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.
- 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).
- 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.
- Pour un premier essai, branche une LED sur la sortie (broche 3) à travers une résistance de 330 Ω.
- 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.
- 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 ?.
| R | C | Durée (1,1 · R · C) | Usage |
|---|---|---|---|
| 10 kΩ | 1 µF | 11 ms | Anti-rebond de bouton, allongement d'impulsions courtes |
| 100 kΩ | 10 µF | 1,1 s | Bip court, sonnette |
| 220 kΩ | 47 µF | 11,4 s | Éclairage de courte durée |
| 470 kΩ | 100 µF | 52 s | Minuterie d'escalier, lampe temporisée |
| 10 kΩ + potentiomètre 1 MΩ | 100 µF | 1,1–111 s | Minuterie 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 555 | Arduino Uno | ESP32 | Raspberry Pi Pico |
|---|---|---|---|
| 8 VCC | 5V | 3V3 (555 CMOS uniquement) | 3V3(OUT) (555 CMOS) ou VBUS (NE555) |
| 1 GND | GND | GND | GND |
| 3 OUT | D2 | GPIO 27 | GP15 (avec un NE555, via un pont 10 kΩ + 20 kΩ) |
| 2 TRIG (exemple de déclenchement) | D7 | GPIO 26 | GP14 (uniquement avec un 555 CMOS alimenté en 3V3) |
| 4 RESET | 5V ou une broche numérique | 3V3 | 3V3(OUT) |
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.
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.
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().
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.
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ôme | Cause probable | Solution |
|---|---|---|
| La LED ne clignote pas, reste allumée ou éteinte | RESET (4) en l'air ou à GND ; en astable, broches 2 et 6 non reliées | Relie RESET à VCC et relie les broches 2 et 6 avec un fil |
| La fréquence est très éloignée du calcul | Tolérance de ±20 % du condensateur chimique, valeur mal lue (nF au lieu de µF), C trop petit | Mesure le condensateur, vérifie son marquage, utilise un condensateur film pour la précision |
| Le montage est instable ou se déclenche tout seul | Pas de découplage de l'alimentation, broche CONT ou TRIG en l'air | 100 nF + 10 µF entre les broches 8 et 1, 10 nF sur la broche 5, pull-up de 10 kΩ sur TRIG |
| Le circuit chauffe | Sortie en court-circuit sur une LED sans résistance ou sur GND ; R1 trop petite | Mets une résistance en série avec la LED et prends R1 d'au moins 1 kΩ |
| La temporisation monostable ne finit jamais | Bouton maintenu ou TRIG bloqué à LOW | Appuie brièvement ou envoie une courte impulsion LOW depuis l'Arduino |
| Le circuit se réinitialise ou grille quand le relais retombe | Pas de diode pour absorber la tension inverse de la bobine | Mets une 1N4007 en antiparallèle sur la bobine du relais |
| L'Arduino lit mal ou la broche est détruite | Le 555 est alimenté en 9–12 V | Alimente 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 base | Ajoute une diode 1N4148 en parallèle sur R2 |
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.
Projets à réaliser après cet article
Voir tous les projets
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

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

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

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`.

Feux clignotants à LED pour passages à niveau
Feux clignotants à LED pour passages à niveau.

É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

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

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.
Autres articles
Application BlueGrays
Réalise ce montage pas à pas sur ton téléphone
Schéma, code et liste des composants sur un seul écran. Plus de 160 projets Arduino, ESP32 et Pico à réaliser.
Scanne avec ton téléphone
Pointe l’appareil photo vers le code : la boutique d’applications de ton téléphone s’ouvre.
ou ouvre la boutique

