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ística | NE555 (bipolar) | TLC555 (CMOS) |
|---|---|---|
| Tensión de alimentación | 4,5–16 V (SE555: hasta 18 V) | 2–15 V (LMC555: desde 1,5 V) |
| Consumo en reposo (5 V) | 2–6 mA | Unos 0,2 mA |
| Corriente de salida | Entrega y absorbe hasta 200 mA | Entrega unos 10 mA, absorbe 100 mA |
| Nivel HIGH de salida | Unos 1,5–1,7 V por debajo de VCC | Hasta VCC (rail-to-rail) |
| Frecuencia máxima recomendada | 100 kHz | Unos 2 MHz |
| Funciona con 3,3 V | No | Sí |
| Versión doble | NE556 (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.
| Pin | Nombre | Función | Conexión típica |
|---|---|---|---|
| 1 | GND | Masa (0 V) | Negativo de la alimentación |
| 2 | TRIG (disparo) | Pone la salida en HIGH e inicia la temporización al bajar de 1/3 VCC | Astable: al pin 6; monoestable: pull-up + pulsador |
| 3 | OUT (salida) | Salida; en el NE555 entrega o absorbe hasta 200 mA | LED con resistencia, zumbador, transistor |
| 4 | RESET | Fuerza la salida a LOW si baja de unos 0,7 V | Directo a VCC si no se usa |
| 5 | CONT (control) | Acceso directo a la referencia de 2/3 VCC; desplaza los umbrales | Condensador de 10 nF a GND |
| 6 | THRES (umbral) | Pone la salida en LOW y termina la temporización al superar 2/3 VCC | Al condensador de temporización |
| 7 | DISCH (descarga) | Pin de colector abierto que se une a GND mientras la salida está en LOW | Astable: entre R1 y R2; monoestable: al pin 6 |
| 8 | VCC | Alimentación positiva (NE555: 4,5–16 V) | Positivo + desacoplo de 100 nF |
Tres modos de funcionamiento: astable, monoestable y biestable
| Modo | También llamado | ¿Qué hace? | Uso típico |
|---|---|---|---|
| Astable | Multivibrador astable | Genera por sí solo una onda cuadrada continua | Intermitente LED, tono de zumbador, señal de reloj, PWM |
| Monoestable | Multivibrador monoestable (one-shot) | Al dispararse queda en HIGH un tiempo fijo y luego vuelve a LOW | Lámpara temporizada, temporizador de escalera, alargar pulsos |
| Biestable | Flip-flop | Pasa a HIGH con TRIG y a LOW con RESET y mantiene el estado; sin temporización | Interruptor 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.
- 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?.
- 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.
- Conecta R1 = 10 kΩ entre los pines 8 y 7 y R2 = 68 kΩ entre los pines 7 y 6.
- 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.
- Coloca un condensador de 10 nF (marcado 103) desde el pin 5 (CONT) a GND.
- 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.
- 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).
| Magnitud | Fórmula | Ejemplo: R1 = 10 kΩ, R2 = 68 kΩ, C = 10 µF |
|---|---|---|
| Tiempo HIGH (tH) | 0,693 · (R1 + R2) · C | 0,54 s |
| Tiempo LOW (tL) | 0,693 · R2 · C | 0,47 s |
| Periodo (T) | 0,693 · (R1 + 2·R2) · C | 1,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 · C | 1,1 s con R = 100 kΩ, C = 10 µF |

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.
| R1 | R2 | C | Frecuencia | Ciclo | Uso |
|---|---|---|---|---|---|
| 10 kΩ | 100 kΩ | 10 µF | 0,69 Hz | 52 % | Luz de aviso lenta |
| 10 kΩ | 68 kΩ | 10 µF | 0,99 Hz | 53 % | Intermitente LED, un destello por segundo |
| 4,7 kΩ | 47 kΩ | 1 µF | 14,6 Hz | 52 % | Efecto estroboscópico rápido |
| 1 kΩ | 10 kΩ | 100 nF | 686 Hz | 52 % | Tono de zumbador |
| 1 kΩ | 6,8 kΩ | 100 nF | 986 Hz | 53 % | Señal de prueba de unos 1 kHz |
| 1 kΩ | 10 kΩ | 10 nF | 6,86 kHz | 52 % | Tono agudo, PWM |
| 1 kΩ | 18 kΩ | 1 nF | 38,9 kHz | 51 % | 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.
- 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.
- 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).
- 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.
- Para la primera prueba, conecta un LED a la salida (pin 3) a través de una resistencia de 330 Ω.
- 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.
- 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?.
| R | C | Tiempo (1,1 · R · C) | Uso |
|---|---|---|---|
| 10 kΩ | 1 µF | 11 ms | Eliminar rebotes de un pulsador, alargar pulsos cortos |
| 100 kΩ | 10 µF | 1,1 s | Pitido corto, timbre |
| 220 kΩ | 47 µF | 11,4 s | Iluminación breve |
| 470 kΩ | 100 µF | 52 s | Temporizador de escalera, lámpara temporizada |
| 10 kΩ + potenciómetro de 1 MΩ | 100 µF | 1,1–111 s | Temporizador 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 555 | Arduino Uno | ESP32 | Raspberry Pi Pico |
|---|---|---|---|
| 8 VCC | 5V | 3V3 (solo 555 CMOS) | 3V3(OUT) (555 CMOS) o VBUS (NE555) |
| 1 GND | GND | GND | GND |
| 3 OUT | D2 | GPIO 27 | GP15 (con NE555, mediante divisor de 10 kΩ + 20 kΩ) |
| 2 TRIG (ejemplo de disparo) | D7 | GPIO 26 | GP14 (solo con 555 CMOS alimentado a 3V3) |
| 4 RESET | 5V o un pin digital | 3V3 | 3V3(OUT) |
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.
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.
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().
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.
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íntoma | Causa probable | Solución |
|---|---|---|
| El LED no parpadea, queda encendido o apagado | RESET (4) al aire o en GND; en astable, pines 2 y 6 sin unir | Conecta RESET a VCC y une los pines 2 y 6 con un cable |
| La frecuencia se aleja mucho del cálculo | Tolerancia de ±20 % del electrolítico, valor mal leído (nF en vez de µF), C demasiado pequeño | Mide el condensador, revisa su código y usa uno de film en trabajos precisos |
| El circuito funciona de forma irregular o se dispara solo | Sin desacoplo en la alimentación, CONT o TRIG al aire | 100 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 calienta | Salida en cortocircuito con un LED sin resistencia o con GND; R1 demasiado pequeña | Pon una resistencia en serie con el LED y usa una R1 de al menos 1 kΩ |
| El monoestable nunca termina | Pulsador mantenido o TRIG bloqueado en LOW | Pulsa 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 bobina | Conecta un 1N4007 en antiparalelo con la bobina del relé |
| Arduino lee mal o el pin se ha dañado | El 555 está alimentado a 9–12 V | Alimenta 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ásico | Añade un diodo 1N4148 en paralelo con R2 |
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.
Proyectos para hacer después de leer esto
Ver todos los proyectos
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

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

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

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

Luces intermitentes LED para pasos a nivel
Luces intermitentes LED para pasos a nivel.

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

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í

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.
Más artículos
App BlueGrays
Monta este circuito paso a paso en tu teléfono
Esquema, código y lista de piezas en una sola pantalla. Más de 160 proyectos de Arduino, ESP32 y Pico listos para montar.
Escanea con tu teléfono
Apunta la cámara al código y se abrirá la tienda de apps de tu teléfono.
o ábrela en la tienda

