Componentes · 20 min de lectura

Temporizador 555: pines, montaje astable y monoestable explicados

¿Cómo funciona el temporizador 555? Pines, conexión astable y monoestable, fórmulas f = 1,44/((R1+2R2)C) y t = 1,1RC, intermitente LED y código Arduino.

El temporizador 555 (circuito integrado NE555) es un chip barato de 8 patas que permite ajustar tiempos desde microsegundos hasta horas con solo una resistencia y un condensador. Hacer parpadear un LED a un ritmo fijo, mantener una lámpara encendida un minuto después de pulsar un botón, sacar un tono de un zumbador o controlar un motor por PWM: todo eso lo hace sin microcontrolador y sin una sola línea de código. Hans Camenzind lo diseñó para Signetics en 1971, salió al mercado en 1972 y desde entonces es uno de los circuitos integrados más fabricados del mundo; en 2003 se estimaba una producción de unos mil millones de unidades al año.

En esta guía aprenderás el patillaje del 555, cómo funcionan por dentro sus comparadores y su biestable, los dos montajes básicos (el intermitente astable y el monoestable de un solo disparo), de dónde salen las fórmulas de frecuencia y tiempo, cómo bajar el ciclo de trabajo por debajo del 50 % y cómo usar el 555 junto con Arduino, ESP32 y Raspberry Pi Pico. Si no quieres hacer las cuentas a mano, la calculadora del temporizador 555 te muestra al instante la frecuencia, el ciclo de trabajo y la forma de onda.

¿Qué es el temporizador 555 y cómo funciona?

Dentro del 555 hay cuatro partes principales. La primera es un divisor de tensión formado por tres resistencias iguales en serie entre VCC y GND (de 5 kΩ cada una en el NE555 clásico); genera dos tensiones de referencia: 2/3 y 1/3 de VCC. La segunda son dos comparadores conectados a esas referencias: el comparador de umbral compara el pin THRES con 2/3 VCC y el comparador de disparo compara el pin TRIG con 1/3 VCC. La tercera es un biestable SR (flip-flop) que los dos comparadores activan y reinician, y la cuarta es la etapa de salida controlada por el biestable junto con el transistor de descarga que vacía el condensador.

La regla es en realidad muy sencilla: cuando la tensión en TRIG baja de 1/3 VCC, la salida pasa a HIGH y el transistor de descarga se apaga. Cuando la tensión en THRES supera 2/3 VCC, la salida pasa a LOW y el transistor de descarga conduce y lleva el pin 7 a GND. Si no ocurre ninguna de las dos cosas, la salida mantiene su estado anterior. Lo que fija el tiempo es lo que tarda el condensador externo en cargarse y descargarse entre esos dos umbrales a través de una resistencia. Con 5 V de alimentación los umbrales son 3,33 V y 1,67 V; con 9 V son 6 V y 3 V. Se suele decir que el nombre viene de las tres resistencias internas de 5 kΩ, pero Camenzind contó que Signetics eligió el número de forma arbitraria.

CaracterísticaNE555 (bipolar)TLC555 (CMOS)
Tensión de alimentación4,5–16 V (SE555: hasta 18 V)2–15 V (LMC555: desde 1,5 V)
Consumo en reposo (5 V)2–6 mAUnos 0,2 mA
Corriente de salidaEntrega y absorbe hasta 200 mAEntrega unos 10 mA, absorbe 100 mA
Nivel HIGH de salidaUnos 1,5–1,7 V por debajo de VCCHasta VCC (rail-to-rail)
Frecuencia máxima recomendada100 kHzUnos 2 MHz
Funciona con 3,3 VNoSí
Versión dobleNE556 (14 pines)TLC556 (14 pines)

Patillaje del temporizador 555 (pinout)

La muesca en forma de media luna o el pequeño punto en la parte superior del chip marca el pin 1. Con la muesca a la izquierda y mirando desde arriba, los pines 1–4 van de izquierda a derecha en la fila inferior y los pines 5–8 de derecha a izquierda en la fila superior; es decir, la numeración avanza en sentido antihorario y el pin 8 (VCC) queda justo enfrente del pin 1. El encapsulado DIP-8 encaja perfectamente sobre el canal central de la protoboard: cada fila de patas debe quedar a un lado del canal.

PinNombreFunciónConexión típica
1GNDMasa (0 V)Negativo de la alimentación
2TRIG (disparo)Pone la salida en HIGH e inicia la temporización al bajar de 1/3 VCCAstable: al pin 6; monoestable: pull-up + pulsador
3OUT (salida)Salida; en el NE555 entrega o absorbe hasta 200 mALED con resistencia, zumbador, transistor
4RESETFuerza la salida a LOW si baja de unos 0,7 VDirecto a VCC si no se usa
5CONT (control)Acceso directo a la referencia de 2/3 VCC; desplaza los umbralesCondensador de 10 nF a GND
6THRES (umbral)Pone la salida en LOW y termina la temporización al superar 2/3 VCCAl condensador de temporización
7DISCH (descarga)Pin de colector abierto que se une a GND mientras la salida está en LOWAstable: entre R1 y R2; monoestable: al pin 6
8VCCAlimentación positiva (NE555: 4,5–16 V)Positivo + desacoplo de 100 nF
El error más habitual de principiante es dejar al aire el pin RESET (4). Un pin flotante capta ruido y el chip se reinicia al azar; el LED a veces parpadea y a veces no responde. Si no lo usas, conecta el pin 4 directamente a VCC. Además, el 555 bipolar toma de la alimentación picos de corriente cortos pero grandes cada vez que la salida conmuta; sin un condensador cerámico de 100 nF y un electrolítico de 10 µF junto a los pines 8 y 1, el circuito puede dispararse solo.

Tres modos de funcionamiento: astable, monoestable y biestable

ModoTambién llamado¿Qué hace?Uso típico
AstableMultivibrador astableGenera por sí solo una onda cuadrada continuaIntermitente LED, tono de zumbador, señal de reloj, PWM
MonoestableMultivibrador monoestable (one-shot)Al dispararse queda en HIGH un tiempo fijo y luego vuelve a LOWLámpara temporizada, temporizador de escalera, alargar pulsos
BiestableFlip-flopPasa a HIGH con TRIG y a LOW con RESET y mantiene el estado; sin temporizaciónInterruptor de encendido y apagado con dos pulsadores

Montaje astable: intermitente LED con el 555

En el montaje astable, los pines TRIG (2) y THRES (6) se unen y se conectan al condensador de temporización. El condensador se carga desde VCC a través de R1 y R2; cuando su tensión llega a 2/3 VCC, la salida pasa a LOW, el transistor de descarga conduce y el condensador se descarga ahora hacia el pin 7 solo a través de R2. Cuando la tensión baja a 1/3 VCC, la salida vuelve a HIGH y el ciclo se repite por sí solo. El condensador nunca se vacía del todo, sino que oscila entre 1/3 y 2/3 VCC; solo al encender parte de cero, por eso el primer periodo HIGH es algo más largo. El circuito siguiente funciona con una pila de 9 V y enciende dos LED de forma alterna una vez por segundo; es la luz de policía más sencilla posible.

  1. Coloca el 555 sobre el canal central de la protoboard con la muesca hacia la izquierda. Si no sabes cómo está conectada una protoboard por dentro, lee primero ¿Qué es una protoboard?.
  2. Conecta los pines 8 (VCC) y 4 (RESET) a la línea de +9 V y el pin 1 (GND) a la línea negativa. Coloca un condensador cerámico de 100 nF entre los pines 8 y 1, lo más cerca posible del chip.
  3. Conecta R1 = 10 kΩ entre los pines 8 y 7 y R2 = 68 kΩ entre los pines 7 y 6.
  4. Une los pines 6 y 2 con un cable. Desde ese punto conecta a GND un condensador electrolítico de C = 10 µF; su pata corta (negativa) debe ir al lado de GND.
  5. Coloca un condensador de 10 nF (marcado 103) desde el pin 5 (CONT) a GND.
  6. Desde la salida (pin 3), pasa por una resistencia de 470 Ω hasta el ánodo del primer LED y conecta su cátodo a GND; este LED se enciende mientras la salida está en HIGH. Conecta el ánodo del segundo LED a +9 V a través de 470 Ω y su cátodo a la salida; este LED se enciende mientras la salida está en LOW.
  7. Conecta la pila: los dos LED deberían encenderse de forma alterna durante unos 0,54 s y 0,47 s. Si no se enciende ninguno, comprueba primero que el pin 4 está en VCC.

A 9 V, la salida HIGH del NE555 ronda los 7,5 V, así que por el primer LED circulan unos 12 mA y por el segundo unos 15 mA. Si alimentas el circuito con 5 V, baja las resistencias a 220–330 Ω; calcula el valor con la calculadora de resistencia para LED y consulta ¿Qué es un LED? para todo lo relativo al LED. Como la frecuencia no depende de la tensión de alimentación, los mismos valores de R1, R2 y C siguen dando un destello por segundo a 5 V.

Fórmulas de frecuencia y tiempo del 555

Cuando un condensador se carga a través de una resistencia R, su tensión sube siguiendo una curva exponencial; τ = R·C es la constante de tiempo, que se explica en detalle en ¿Qué es un condensador?. Pasar de 1/3 VCC a 2/3 VCC tarda exactamente ln 2 · R · C ≈ 0,693 · R · C, porque la distancia que falta hasta el objetivo se reduce a la mitad en ese tiempo. Como la carga se hace a través de R1 + R2 y la descarga solo a través de R2, los tiempos HIGH y LOW son distintos. Al sumar ambos tiempos y tomar el inverso aparece el factor 1 / 0,693 ≈ 1,44 y la famosa fórmula: f = 1,44 / ((R1 + 2·R2) · C).

MagnitudFórmulaEjemplo: R1 = 10 kΩ, R2 = 68 kΩ, C = 10 µF
Tiempo HIGH (tH)0,693 · (R1 + R2) · C0,54 s
Tiempo LOW (tL)0,693 · R2 · C0,47 s
Periodo (T)0,693 · (R1 + 2·R2) · C1,01 s
Frecuencia (f)1,44 / ((R1 + 2·R2) · C)0,99 Hz
Ciclo de trabajo(R1 + R2) / (R1 + 2·R2)53,4 %
Duración del pulso monoestable (t)1,1 · R · C1,1 s con R = 100 kΩ, C = 10 µF
Condensadores usados en un circuito de temporización con 555
En el 555, el condensador fija el tiempo junto con la resistencia: para segundos se usan electrolíticos (µF) y para frecuencias de kHz, cerámicos o de film (nF).

Al elegir valores conviene conocer algunos límites. R1 debe ser de al menos 1 kΩ; si no, cuando el transistor de descarga conduce, une VCC casi directamente con GND. Según la hoja de datos de Texas Instruments, por la pequeña corriente que toma la entrada de umbral, R1 + R2 no debería superar unos 3,4 MΩ a 5 V ni 10 MΩ a 15 V; en la práctica, quedarse entre 1 kΩ y 1 MΩ es lo más seguro. No bajes de 1 nF en el condensador, porque la capacidad propia de la protoboard y de los cables falsea el cálculo. Usa el NE555 por debajo de 100 kHz; para señales más rápidas elige una versión CMOS. Para descifrar los números impresos en un condensador usa la herramienta de código de condensador, y para ver la curva de carga, la de constante de tiempo RC.

R1R2CFrecuenciaCicloUso
10 kΩ100 kΩ10 µF0,69 Hz52 %Luz de aviso lenta
10 kΩ68 kΩ10 µF0,99 Hz53 %Intermitente LED, un destello por segundo
4,7 kΩ47 kΩ1 µF14,6 Hz52 %Efecto estroboscópico rápido
1 kΩ10 kΩ100 nF686 Hz52 %Tono de zumbador
1 kΩ6,8 kΩ100 nF986 Hz53 %Señal de prueba de unos 1 kHz
1 kΩ10 kΩ10 nF6,86 kHz52 %Tono agudo, PWM
1 kΩ18 kΩ1 nF38,9 kHz51 %Portadora de mando IR (ajústala a 38 kHz con un trimmer)

Ajustar el ciclo de trabajo: bajar del 50 %

En el montaje astable básico, el condensador se carga a través de R1 + R2 pero se descarga solo a través de R2, así que el tiempo HIGH siempre es más largo que el LOW y el ciclo de trabajo no puede bajar del 50 %; si haces R2 mucho mayor que R1 te acercas al 50 %, pero nunca lo cruzas. La solución es añadir un diodo 1N4148 en paralelo con R2, con el ánodo hacia el pin 7 y el cátodo hacia el pin 6. Durante la carga, la corriente pasa por el diodo y se salta R2; durante la descarga, el diodo queda en inversa y la corriente circula por R2. Así queda tH ≈ 0,693 · R1 · C y tL ≈ 0,693 · R2 · C, y el ciclo de trabajo baja a R1 / (R1 + R2). Por ejemplo, con R1 = 10 kΩ, R2 = 47 kΩ y C = 10 µF el LED se enciende 69 ms y se apaga 326 ms: un destello corto y llamativo con un 17,5 % de ciclo de trabajo. La caída de unos 0,6 V del diodo alarga un poco el tiempo HIGH respecto al cálculo, sobre todo a 5 V. Para entender cómo se comportan los diodos, consulta ¿Qué es un diodo?.

Si quieres mantener fija la frecuencia y ajustar solo el ciclo de trabajo, usa un potenciómetro y dos diodos. Conecta el cursor del potenciómetro al pin 7; lleva un extremo al condensador a través de un diodo (ánodo en el potenciómetro) y el otro extremo, también al condensador, a través de un segundo diodo en sentido contrario (cátodo en el potenciómetro). Con R1 = 1 kΩ, un potenciómetro de 100 kΩ y C = 10 nF, la frecuencia se mantiene en unos 1,4 kHz mientras el ciclo de trabajo varía aproximadamente entre el 1 % y el 99 %, porque la suma de las resistencias de carga y descarga no cambia al girar el potenciómetro. Con un MOSFET en la salida, esta es la forma clásica de regular la velocidad de un motor de corriente continua o el brillo de una tira LED de 12 V; tienes los detalles en ¿Qué es PWM? y Cómo usar un MOSFET con Arduino.

Montaje monoestable: pulso único y lámpara temporizada

En el montaje monoestable se unen los pines 6 (THRES) y 7 (DISCH); desde ese punto va una resistencia R a VCC y un condensador C a GND. El pin TRIG (2) se mantiene en HIGH con una resistencia pull-up. En reposo, la salida está en LOW y el transistor de descarga mantiene el condensador vacío. Cuando llega un pulso LOW corto a TRIG, la salida pasa a HIGH, la descarga se corta y el condensador empieza a cargarse a través de R. Cuando su tensión llega a 2/3 VCC, la salida vuelve a LOW y el condensador se descarga al instante. Esta vez la carga va de cero a 2/3 VCC, por lo que el pulso dura ln 3 · R · C ≈ 1,1 · R · C y tampoco depende de la tensión de alimentación.

  1. Conecta los pines 8 y 4 a +5 V y el pin 1 a GND; coloca 100 nF entre los pines 8 y 1 y 10 nF entre el pin 5 y GND.
  2. Une los pines 6 y 7. Desde ese punto conecta R = 470 kΩ a +5 V y un condensador electrolítico de C = 100 µF a GND (pata negativa a GND).
  3. Lleva el pin TRIG (2) a +5 V con una resistencia de 10 kΩ y conecta un pulsador entre el pin 2 y GND. Para más detalles sobre los pulsadores, consulta Cómo conectar un pulsador a Arduino.
  4. Para la primera prueba, conecta un LED a la salida (pin 3) a través de una resistencia de 330 Ω.
  5. Pulsa brevemente el botón: el LED queda encendido unos 1,1 × 470 kΩ × 100 µF ≈ 52 segundos y luego se apaga. Por la tolerancia de ±20 % del electrolítico, cualquier resultado entre 42 y 62 segundos es normal.
  6. Para una lámpara real, controla un relé en lugar del LED: desde la salida ve con 1 kΩ a la base de un transistor BC547, conecta el emisor a GND y el colector a un extremo de la bobina del relé; el otro extremo de la bobina va a +5 V. No olvides un diodo 1N4007 en antiparalelo con la bobina (cátodo hacia +5 V); para entender el papel del transistor, consulta ¿Qué es un transistor?.
Si mantienes el botón pulsado más tiempo que la temporización, la salida sigue en HIGH aunque el tiempo haya terminado; según la hoja de datos, TRIG debe volver a HIGH al menos 10 µs antes del final del intervalo para que este termine. Para tiempos largos, aumenta C y no R: si la corriente de fuga del electrolítico se acerca a la pequeña corriente de carga que llega por R, el condensador nunca alcanza 2/3 VCC y la lámpara no se apaga, así que mantén R por debajo de 1 MΩ. Si vas a conmutar una lámpara de 230 V con un relé, no des tensión al circuito antes de aislar la parte de red y sigue las normas de seguridad de ¿Qué es un módulo de relé?.
RCTiempo (1,1 · R · C)Uso
10 kΩ1 µF11 msEliminar rebotes de un pulsador, alargar pulsos cortos
100 kΩ10 µF1,1 sPitido corto, timbre
220 kΩ47 µF11,4 sIluminación breve
470 kΩ100 µF52 sTemporizador de escalera, lámpara temporizada
10 kΩ + potenciómetro de 1 MΩ100 µF1,1–111 sTemporizador ajustable

Para cortar la temporización antes de tiempo, puedes añadir un segundo pulsador en el pin RESET (4): lleva el pin a VCC con 10 kΩ y conecta el pulsador entre RESET y GND; en cuanto lo pulses, la salida pasa a LOW y el condensador se descarga. Un monoestable a veces se dispara solo una vez al recibir alimentación. Para evitarlo, conecta el pin RESET a VCC a través de 10 kΩ y a GND a través de 10 µF: al encender, el chip se mantiene en reset durante el breve tiempo que tarda en cargarse ese condensador y empieza a funcionar con normalidad cuando la alimentación ya es estable.

¿Cómo se usa el temporizador 555 con Arduino?

El 555 y Arduino no son rivales, sino un buen equipo. Un intermitente sencillo también puedes hacerlo en Arduino con millis(), pero el 555 no necesita código, funciona con hasta 16 V, entrega 200 mA por su salida y sigue trabajando aunque Arduino se cuelgue. Por eso el 555 suele acompañar a Arduino en uno de estos tres papeles: como fuente de señal que Arduino mide, como temporizador por hardware que Arduino dispara (medidor de capacidad, alargador de pulsos) y como oscilador que Arduino enciende y apaga mediante el pin RESET (sirena o tono de zumbador). En este último caso basta con conectar el pin 4 del 555 a una salida de Arduino: con el pin en HIGH el oscilador funciona y con el pin en LOW se calla.

Pin del 555Arduino UnoESP32Raspberry Pi Pico
8 VCC5V3V3 (solo 555 CMOS)3V3(OUT) (555 CMOS) o VBUS (NE555)
1 GNDGNDGNDGND
3 OUTD2GPIO 27GP15 (con NE555, mediante divisor de 10 kΩ + 20 kΩ)
2 TRIG (ejemplo de disparo)D7GPIO 26GP14 (solo con 555 CMOS alimentado a 3V3)
4 RESET5V o un pin digital3V33V3(OUT)
Cuando conectes un 555 a Arduino, alimenta ambos desde los mismos 5 V y une sus masas. La salida de un 555 alimentado a 9 o 12 V llega a 7–10 V y daña la entrada de Arduino; en ese caso tienes que reducirla con un divisor de tensión. El nivel HIGH del NE555 a 5 V ronda los 3,5 V, apenas por encima del umbral de 3 V del Uno; para un HIGH más seguro puedes añadir una resistencia pull-up de 10 kΩ de la salida a 5 V.

En el primer ejemplo, Arduino mide la frecuencia y el ciclo de trabajo del intermitente y los compara con los valores calculados con las fórmulas. El circuito es el mismo montaje astable de antes (R1 = 10 kΩ, R2 = 68 kΩ, C = 10 µF), pero alimentado desde el pin 5V de Arduino en lugar de 9 V, con la salida (pin 3) conectada a D2. La función pulseIn() devuelve en microsegundos cuánto tiempo permanece un pin en HIGH o en 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}

Por defecto, pulseIn() espera como máximo 1 segundo; con una señal de alrededor de 1 Hz primero espera a que termine el pulso en curso y luego a que empiece uno nuevo, así que subimos el tiempo de espera a 3 segundos. Es normal que en el Monitor Serie la frecuencia medida difiera un 5–20 % de la calculada; la mayor parte de la diferencia viene de la tolerancia del electrolítico. Esa diferencia es también una forma de averiguar el valor real del condensador: sustituye la frecuencia medida en f = 1,44 / ((R1 + 2·R2) · C) y despeja C. Con señales más rápidas, contar los flancos con una interrupción en lugar de pulseIn() da resultados más precisos.

Disparar el 555 desde Arduino: medidor de capacidad

Como en modo monoestable el pulso dura t = 1,1 · R · C, si conoces R y mides t puedes hallar el valor del condensador con C = t / (1,1 · R). El circuito es este: pines 6 y 7 unidos, con 100 kΩ desde ese punto a 5 V y el condensador que quieres medir a GND; pines 4 y 8 a 5 V y pin 5 a GND con 10 nF. El pin TRIG (2) se lleva a 5 V con 10 kΩ y se conecta a D7, y la salida (pin 3) va a D2. Arduino envía por D7 un pulso LOW de 10 µs y mide con micros() cuánto tiempo permanece la salida en 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}

Aquí medimos a mano con micros() en lugar de pulseIn(), porque justo después del disparo la salida ya está en HIGH y pulseIn() tomaría ese pulso como el «pulso anterior» y lo saltaría. En el Uno, micros() tiene una resolución de 4 µs; con 100 kΩ, un condensador de 1 nF da un pulso de 110 µs, así que el rango de medida va aproximadamente de 1 nF a 47 µF. Mide un condensador conocido y escribe la relación entre su valor real y el medido en el factor CAL para calibrar tu medidor. Antes de conectar un electrolítico, descárgalo cortocircuitando sus patas y conecta su pata positiva al lado de los pines 6 y 7.

El temporizador 555 con ESP32 y Raspberry Pi Pico

ESP32 y Raspberry Pi Pico trabajan a 3,3 V y sus pines no toleran 5 V. El NE555 clásico, en cambio, necesita al menos 4,5 V, así que no funciona con 3,3 V. La solución más limpia es un 555 CMOS como el TLC555, LMC555 o ICM7555: tiene el mismo patillaje, se alimenta desde el pin 3V3 y su salida oscila entre 0 y 3,3 V, por lo que se conecta directamente a un GPIO. Si solo tienes un NE555, aliméntalo con 5 V y divide su salida con 10 kΩ (en serie) y 20 kΩ (a GND). Como el nivel HIGH del NE555 ronda los 3,5 V, la salida del divisor baja a unos 2,3 V: suficiente para el umbral de 2 V de la Pico, pero justo para el umbral de unos 2,5 V del ESP32. Por eso, con el ESP32 es mejor un 555 CMOS.

En el ejemplo del ESP32, un 555 CMOS con R1 = 1 kΩ, R2 = 6,8 kΩ y C = 100 nF genera una señal de unos 986 Hz; tiene las mismas proporciones que el intermitente, pero es mil veces más rápida. El ESP32 ejecuta una rutina de interrupción en cada flanco de subida y muestra cuántos flancos ha contado en un segundo; ese número es directamente la frecuencia en Hz. El ciclo de trabajo se calcula a partir de un único tiempo HIGH medido con 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}

En la Pico, la función machine.time_pulse_us() de MicroPython es el equivalente de pulseIn() de Arduino, con una diferencia importante: si el pin ya está en el nivel pedido, empieza a medir de inmediato. Por eso la primera llamada sirve para saltar un pulso incompleto y sincronizarse con un flanco de la señal; las mediciones LOW y HIGH que siguen son pulsos completos. El ejemplo mide el intermitente de un destello por segundo y cambia el estado del LED integrado en cada lectura.

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)

Ideas de proyectos con el temporizador 555

  • Luz de policía: Enciende de forma alterna un LED rojo y otro azul, uno conectado de la salida a GND y el otro de VCC a la salida; con 4,7 kΩ, 47 kΩ y 1 µF obtienes un efecto estroboscópico rápido.
  • Sirena de dos tonos: Lleva la salida de un primer 555 lento, a través de una resistencia, al pin 5 (CONT) de un segundo 555; al desplazarse los umbrales, el tono del segundo chip sube y baja. Para el sonido usa un zumbador pasivo o un altavoz pequeño.
  • Temporizador de escalera: Monta con un 555 monoestable, un relé y pulsadores un temporizador que mantenga una lámpara encendida un minuto, con los pulsadores de cada planta conectados en paralelo.
  • Medidor de capacidad: Mide con el código de Arduino de este artículo los condensadores con la serigrafía borrada y muestra el resultado en una pantalla LCD I2C.
  • Emisor IR: Controla un LED infrarrojo con un 555 astable ajustado a 38 kHz y detecta la señal con un receptor IR; así tienes una alarma sencilla de barrera. Los receptores de mando como el TSOP o el VS1838B pueden tomar una portadora continua por ruido y suprimirla al poco tiempo, así que enciende y apaga este 555 por su pin RESET con un segundo 555 lento para emitir a ráfagas.
  • Control de velocidad de motor: Conecta el circuito PWM de frecuencia fija con potenciómetro a un MOSFET para ajustar la potencia de un motor de corriente continua de 12 V o de una tira LED.
  • Detector de pulsos perdidos: Añade un transistor PNP (por ejemplo, un BC557) en paralelo con el condensador de temporización y con la base unida a TRIG; cada pulso LOW que Arduino envía a intervalos regulares dispara el 555 y a la vez vacía el condensador, de modo que la temporización vuelve a empezar. Si Arduino se cuelga y los pulsos se detienen, el tiempo se agota y el 555 activa una alarma o reinicia el sistema.

Errores frecuentes y cómo solucionarlos

SíntomaCausa probableSolución
El LED no parpadea, queda encendido o apagadoRESET (4) al aire o en GND; en astable, pines 2 y 6 sin unirConecta RESET a VCC y une los pines 2 y 6 con un cable
La frecuencia se aleja mucho del cálculoTolerancia de ±20 % del electrolítico, valor mal leído (nF en vez de µF), C demasiado pequeñoMide el condensador, revisa su código y usa uno de film en trabajos precisos
El circuito funciona de forma irregular o se dispara soloSin desacoplo en la alimentación, CONT o TRIG al aire100 nF + 10 µF entre los pines 8 y 1, 10 nF en el pin 5, pull-up de 10 kΩ en TRIG
El chip se calientaSalida en cortocircuito con un LED sin resistencia o con GND; R1 demasiado pequeñaPon una resistencia en serie con el LED y usa una R1 de al menos 1 kΩ
El monoestable nunca terminaPulsador mantenido o TRIG bloqueado en LOWPulsa brevemente o envía un pulso LOW corto desde Arduino
El chip se reinicia o se estropea al soltar el reléFalta el diodo que absorbe la tensión inversa de la bobinaConecta un 1N4007 en antiparalelo con la bobina del relé
Arduino lee mal o el pin se ha dañadoEl 555 está alimentado a 9–12 VAlimenta el 555 con 5 V o reduce la salida con un divisor de tensión
El ciclo de trabajo no baja del 50 %Límite natural del montaje astable básicoAñade un diodo 1N4148 en paralelo con R2
Cuando el circuito no funcione, mide primero con el multímetro: en los pines 8 y 4 deberías ver la tensión de alimentación y en el pin 5 unos 2/3 de VCC (6 V con 9 V). Si en el montaje astable la tensión del condensador sube y baja despacio entre 1/3 y 2/3 VCC, el chip funciona y el problema está en la parte de la salida. Para la técnica de medida, consulta Cómo usar un multímetro.

El temporizador 555 es una de las mejores piezas para aprender, porque reúne en un solo chip barato las ideas básicas de la temporización en electrónica (carga RC, umbral, comparador, biestable). Empieza por el intermitente de un destello por segundo, cambia luego los valores para obtener un tono de zumbador y prueba después la lámpara temporizada monoestable y el medidor de capacidad con Arduino. En la app BlueGrays encontrarás paso a paso, con esquemas y código, proyectos de luz de policía, luces de paso a nivel, iluminación de escalera y zumbador, para que puedas probar en paralelo las versiones con Arduino y Pico de tus circuitos con 555.

Preguntas frecuentes

¿Para qué sirve el temporizador 555?

El 555 es un circuito integrado temporizador de uso general que fija tiempos con una resistencia y un condensador. En modo astable genera una onda cuadrada continua para intermitentes LED, tonos de zumbador o señales de reloj; en modo monoestable da una salida que permanece activa un tiempo fijo tras un disparo, para lámparas temporizadas o temporizadores. No necesita microcontrolador ni código.

¿Con qué tensión funciona el 555?

El NE555 clásico funciona entre 4,5 y 16 V (el SE555 hasta 18 V); 5, 9 y 12 V son las alimentaciones más comunes. Para tensiones bajas como 3,3 V se usan versiones CMOS como el TLC555 (2–15 V), el ICM7555 o el LMC555, que arranca desde 1,5 V. Mientras la alimentación sea constante, la frecuencia y el tiempo no dependen de la tensión.

¿Qué valores usar para un intermitente de 1 Hz con el 555?

Con R1 = 10 kΩ, R2 = 68 kΩ y C = 10 µF se obtiene f = 1,44 / ((10 kΩ + 2 · 68 kΩ) · 10 µF) ≈ 0,99 Hz; el LED queda encendido unos 0,54 s y apagado 0,47 s. Por la tolerancia de ±20 % del electrolítico, el valor real será algo distinto. Para un ajuste fino, sustituye R2 por un trimmer.

¿Cómo bajar el ciclo de trabajo del 555 por debajo del 50 %?

En el montaje astable básico el condensador se carga a través de R1 + R2 pero se descarga solo por R2, así que el tiempo HIGH siempre es mayor que el LOW. Si añades un diodo 1N4148 en paralelo con R2, con el ánodo hacia el pin 7, la carga se hace solo a través de R1. Entonces tH ≈ 0,693 · R1 · C y tL ≈ 0,693 · R2 · C, y eligiendo R1 menor que R2 bajas del 50 %.

¿Qué diferencia hay entre el NE555 y el TLC555?

El NE555 está hecho con transistores bipolares, necesita al menos 4,5 V y puede entregar hasta 200 mA por su salida, pero consume 2–6 mA en reposo y le cuesta trabajar por encima de 100 kHz. El TLC555 es una versión CMOS: funciona desde 2 V, consume unos 0,2 mA, llega a unos 2 MHz y su salida sube hasta la tensión de alimentación; a cambio, solo entrega unos 10 mA. Los dos tienen el mismo patillaje.

¿Se pueden dejar sin conectar los pines 4 y 5 del 555?

El pin RESET (4) no debe quedar al aire; si no lo usas, conéctalo directamente a VCC, porque el ruido podría reiniciar el chip al azar. El pin CONT (5) técnicamente puede quedar libre, pero es buena costumbre conectarlo a GND con un condensador de 10 nF para que el ruido no mueva los umbrales. Si aplicas una tensión externa a este pin, cambian los umbrales y, con ellos, la frecuencia.

Ver todos los proyectos
Luces de policía LED
#4Principiante

Luces de policía LED

Como las luces de un coche de policía: el LED rojo destella tres veces muy rápido, después el azul destella otras tres, y la secuencia se repite sin parar. Solo necesitas dos LED y dos resistencias co

4.7(99)
235
Uso del zumbador
#13Principiante

Uso del zumbador

¿Alguna vez te has preguntado cómo suena un timbre o una alarma? El Arduino hace pitar un pequeño zumbador a intervalos cortos: pip, silencio, pip, silencio. Ves cómo se crea sonido con electricidad y

4.7(89)
158
Ajuste de frecuencia con zumbador
#14Intermedio

Ajuste de frecuencia con zumbador

Controlas el sonido de un zumbador con cuatro botones: uno lo enciende, otro lo calla y los otros dos lo hacen más agudo o más grave. Si mantienes pulsado el botón de subir o bajar, el tono cambia pas

4.6(68)
115
Raspberry Pi Pico Efecto Luces Policía (Rojo + Azul Estroboscopio, GP11 + GP12)
#151Principiante

Raspberry Pi Pico Efecto Luces Policía (Rojo + Azul Estroboscopio, GP11 + GP12)

¡Simulamos la barra de luces de un coche de policía con una Raspberry Pi Pico en su forma más sencilla! 🚨 Los LED rojo y azul se turnan (flip-flop): mientras el rojo está encendido el azul está apagado, y cada 0,3 segundos se intercambian, sin fin. El código escribe los dos pasos directamente en un único bucle `while True`; la velocidad se ajusta con la constante `WAIT_MS`.

4.7(3)
10
Luces intermitentes LED para pasos a nivel
#146Avanzado
Premium

Luces intermitentes LED para pasos a nivel

Luces intermitentes LED para pasos a nivel.

5.0(2)
14
Iluminación inteligente de escaleras y pasillos
#82Intermedio
Premium

Iluminación inteligente de escaleras y pasillos

Pisas la escalera o entras en el pasillo y las luces se encienden escalón a escalón en la dirección en la que caminas. Hay un sensor de distancia en cada extremo; pases por el que pases, los ocho LED

5.0(35)
51
Bombilla 220V con Pulsador (Push)
#19Avanzado
Premium

Bombilla 220V con Pulsador (Push)

Mientras mantienes pulsado el botón, una bombilla real de 220 voltios se queda encendida, y se apaga en cuanto lo sueltas. La pequeña señal del Arduino no puede encender la bombilla directamente, así

4.4(30)
38
ESP32 Efecto de Luz Estroboscópica Policial
#109Principiante
Premium

ESP32 Efecto de Luz Estroboscópica Policial

Simula las luces estroboscópicas de un coche de policía haciendo parpadear rápidamente grupos de LEDs rojos y azules. Con 2 LEDs en cada grupo el efecto es más espectacular. Un ejemplo clásico de patrón de alternancia rápida y control por grupos.

4.6(21)
36