CI 555 timer: pinagem e circuitos astável e monoestável explicados
Como funciona o CI 555 timer? Pinagem, ligação astável e monoestável, as fórmulas f = 1,44/((R1+2R2)C) e t = 1,1RC, um pisca-pisca de LED e código para Arduino.
O CI 555 timer é um chip temporizador barato, de 8 pinos, que define intervalos de tempo de microssegundos a horas usando nada além de um resistor e um capacitor. Piscar um LED em um ritmo definido, manter uma lâmpada acesa por um minuto depois de apertar um botão, gerar um som em um buzzer ou acionar um motor com PWM: ele faz tudo isso sem microcontrolador e sem uma linha de código. Projetado por Hans Camenzind para a Signetics em 1971 e lançado em 1972, ele se tornou um dos chips mais produzidos do mundo; em 2003, estimava-se que um bilhão de unidades eram fabricadas por ano.
Neste guia você vai aprender a pinagem do 555, como funcionam por dentro os comparadores e o flip-flop, os dois circuitos básicos (o pisca-pisca astável e o monoestável de disparo único), de onde vêm as fórmulas de frequência e de tempo, como levar o ciclo de trabalho abaixo de 50% e como usar o 555 junto com Arduino, ESP32 e Raspberry Pi Pico. Se você não quer fazer as contas à mão, a calculadora do 555 timer mostra na hora a frequência, o ciclo de trabalho e a forma de onda.
O que é o 555 timer e como ele funciona?
Dentro do 555 há quatro partes principais. A primeira é um divisor de tensão formado por três resistores iguais em série entre VCC e GND (5 kΩ cada no NE555 clássico); ele gera duas tensões de referência: 2/3 e 1/3 de VCC. A segunda é um par de comparadores ligados a essas referências: o comparador de limiar compara o pino THRES com 2/3 VCC, e o comparador de disparo compara o pino TRIG com 1/3 VCC. A terceira é um flip-flop SR que os dois comparadores ativam e resetam, e a quarta é o estágio de saída acionado pelo flip-flop, junto com um transistor de descarga que esvazia o capacitor.
A regra, na verdade, é muito simples: quando a tensão no TRIG cai abaixo de 1/3 VCC, a saída vai para HIGH e o transistor de descarga desliga. Quando a tensão no THRES sobe acima de 2/3 VCC, a saída vai para LOW e o transistor de descarga liga, puxando o pino 7 para o GND. Se nada disso acontecer, a saída mantém o estado anterior. O que define o tempo é quanto o capacitor externo leva para carregar e descarregar entre esses dois limites através de um resistor. Com alimentação de 5 V, os limites são 3,33 V e 1,67 V; com 9 V, são 6 V e 3 V. Muita gente diz que o nome do chip vem dos três resistores de 5 kΩ internos, mas Camenzind explicou que a Signetics escolheu o número arbitrariamente.
| Característica | NE555 (bipolar) | TLC555 (CMOS) |
|---|---|---|
| Tensão de alimentação | 4,5–16 V (SE555: até 18 V) | 2–15 V (LMC555: a partir de 1,5 V) |
| Corrente em repouso (5 V) | 2–6 mA | Cerca de 0,2 mA |
| Corrente de saída | Fornece e absorve até 200 mA | Fornece cerca de 10 mA, absorve 100 mA |
| Nível HIGH da saída | Cerca de 1,5–1,7 V abaixo de VCC | Até VCC (rail-to-rail) |
| Frequência máxima recomendada | 100 kHz | Cerca de 2 MHz |
| Funciona com 3,3 V | Não | Sim |
| Versão com dois timers | NE556 (14 pinos) | TLC556 (14 pinos) |
Pinagem do 555 timer
O chanfro em meia-lua ou o pontinho em cima do chip marca o pino 1. Com o chanfro à esquerda e olhando de cima, os pinos 1–4 vão da esquerda para a direita na fileira de baixo e os pinos 5–8 vão da direita para a esquerda na fileira de cima; ou seja, os números aumentam no sentido anti-horário e o pino 8 (VCC) fica bem em frente ao pino 1. O encapsulamento DIP-8 se encaixa perfeitamente sobre o canal no meio da protoboard: cada fileira de pernas precisa ficar de um lado do canal.
| Pino | Nome | Função | Ligação típica |
|---|---|---|---|
| 1 | GND | Terra (0 V) | Alimentação negativa |
| 2 | TRIG (disparo) | Leva a saída a HIGH e inicia a contagem quando cai abaixo de 1/3 VCC | Astável: no pino 6; monoestável: pull-up + botão |
| 3 | OUT (saída) | Saída; no NE555 fornece ou absorve até 200 mA | LED com resistor, buzzer, transistor |
| 4 | RESET | Força a saída para LOW quando puxado abaixo de cerca de 0,7 V | Direto no VCC se não for usado |
| 5 | CONT (controle) | Acesso direto à referência de 2/3 VCC; desloca os limites | Capacitor de 10 nF para o GND |
| 6 | THRES (limiar) | Leva a saída a LOW e termina a contagem acima de 2/3 VCC | No capacitor de temporização |
| 7 | DISCH (descarga) | Pino em coletor aberto, ligado ao GND enquanto a saída está em LOW | Astável: entre R1 e R2; monoestável: no pino 6 |
| 8 | VCC | Alimentação positiva (NE555: 4,5–16 V) | Alimentação positiva + desacoplamento de 100 nF |
Três modos de operação: astável, monoestável e biestável
| Modo | Também chamado de | O que faz | Uso típico |
|---|---|---|---|
| Astável | Multivibrador livre | Gera sozinho uma onda quadrada contínua | Pisca-pisca de LED, tom de buzzer, sinal de clock, PWM |
| Monoestável | Disparo único (one-shot) | Fica em HIGH por um tempo definido quando disparado e depois volta a LOW | Lâmpada temporizada, minuteria de escada, alongamento de pulso |
| Biestável | Flip-flop | Vai a HIGH com o TRIG e a LOW com o RESET e mantém o estado; sem temporização | Chave liga/desliga com dois botões |
Circuito astável: um pisca-pisca de LED com 555
No circuito astável, os pinos TRIG (2) e THRES (6) são ligados juntos e conectados ao capacitor de temporização. O capacitor carrega a partir do VCC através de R1 e R2; quando sua tensão chega a 2/3 VCC, a saída vai para LOW, o transistor de descarga liga e o capacitor passa a descarregar no pino 7 só através de R2. Quando a tensão cai para 1/3 VCC, a saída volta a HIGH e o ciclo se repete sozinho. O capacitor nunca se esvazia por completo, mas oscila entre 1/3 e 2/3 VCC; só ao ligar ele começa vazio, e é por isso que o primeiro período em HIGH é um pouco mais longo. O circuito abaixo funciona com uma bateria de 9 V e pisca dois LEDs alternadamente uma vez por segundo; é a luz de polícia mais simples possível.
- Coloque o 555 sobre o canal no meio da protoboard, com o chanfro virado para a esquerda. Se você não sabe como a protoboard é ligada por dentro, leia antes O que é uma protoboard?.
- Ligue os pinos 8 (VCC) e 4 (RESET) no barramento de +9 V e o pino 1 (GND) no barramento negativo. Coloque um capacitor cerâmico de 100 nF entre os pinos 8 e 1, o mais perto possível do chip.
- Ligue R1 = 10 kΩ entre os pinos 8 e 7 e R2 = 68 kΩ entre os pinos 7 e 6.
- Una os pinos 6 e 2 com um fio. Desse nó, ligue um capacitor eletrolítico de C = 10 µF ao GND; a perna curta (negativa) dele tem que ir para o lado do GND.
- Coloque um capacitor de 10 nF (marcado 103) do pino 5 (CONT) para o GND.
- Do pino de saída 3, passe por um resistor de 470 Ω até o ânodo do primeiro LED e ligue o cátodo dele ao GND; esse LED acende enquanto a saída está em HIGH. Ligue o ânodo do segundo LED ao +9 V por 470 Ω e o cátodo dele à saída; esse LED acende enquanto a saída está em LOW.
- Ligue a bateria: os dois LEDs devem acender alternadamente por cerca de 0,54 s e 0,47 s. Se nenhum LED acender, primeiro confira se o pino 4 está no VCC.
Em 9 V, a saída HIGH do NE555 fica em cerca de 7,5 V, então passam cerca de 12 mA pelo primeiro LED e cerca de 15 mA pelo segundo. Se você rodar o circuito com 5 V, baixe os resistores para 220–330 Ω; use a calculadora de resistor para LED para achar o valor e leia O que é um LED? para saber mais sobre o próprio LED. Como a frequência não depende da tensão de alimentação, os mesmos R1, R2 e C continuam dando uma piscada por segundo em 5 V.
Fórmulas de frequência e tempo do 555 timer
Quando um capacitor carrega através de um resistor R, a tensão dele sobe seguindo uma curva exponencial; τ = R·C é a constante de tempo, explicada em detalhes em O que é um capacitor?. Ir de 1/3 VCC a 2/3 VCC leva exatamente ln 2 · R · C ≈ 0,693 · R · C, porque a distância que falta até o alvo cai pela metade nesse tempo. Como a carga acontece através de R1 + R2 e a descarga só através de R2, os tempos em HIGH e em LOW são diferentes. Somar os dois tempos e tirar o inverso dá o fator 1 / 0,693 ≈ 1,44 e a famosa fórmula: f = 1,44 / ((R1 + 2·R2) · C).
| Grandeza | Fórmula | Exemplo: R1 = 10 kΩ, R2 = 68 kΩ, C = 10 µF |
|---|---|---|
| Tempo em HIGH (tH) | 0,693 · (R1 + R2) · C | 0,54 s |
| Tempo em LOW (tL) | 0,693 · R2 · C | 0,47 s |
| Período (T) | 0,693 · (R1 + 2·R2) · C | 1,01 s |
| Frequência (f) | 1,44 / ((R1 + 2·R2) · C) | 0,99 Hz |
| Ciclo de trabalho | (R1 + R2) / (R1 + 2·R2) | 53,4% |
| Largura do pulso monoestável (t) | 1,1 · R · C | 1,1 s para R = 100 kΩ, C = 10 µF |

Tenha alguns limites em mente ao escolher os valores. R1 deve ter pelo menos 1 kΩ; caso contrário, quando o transistor de descarga liga, ele liga o VCC quase direto ao GND. Segundo o datasheet da Texas Instruments, a pequena corrente puxada pela entrada de limiar faz com que R1 + R2 não deva passar de cerca de 3,4 MΩ em 5 V ou 10 MΩ em 15 V; na prática, ficar entre 1 kΩ e 1 MΩ é o mais seguro. Não use capacitores abaixo de 1 nF, porque a capacitância da própria protoboard e dos fios vai atrapalhar o cálculo. Use o NE555 abaixo de 100 kHz; para sinais mais rápidos, escolha uma versão CMOS. Para decifrar os números impressos em um capacitor, use a ferramenta código de capacitor, e para ver a curva de carga, a ferramenta constante de tempo RC.
| R1 | R2 | C | Frequência | 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% | Pisca-pisca de LED, uma vez por segundo |
| 4,7 kΩ | 47 kΩ | 1 µF | 14,6 Hz | 52% | Efeito estroboscópico rápido |
| 1 kΩ | 10 kΩ | 100 nF | 686 Hz | 52% | Tom de buzzer |
| 1 kΩ | 6,8 kΩ | 100 nF | 986 Hz | 53% | Sinal de teste em torno de 1 kHz |
| 1 kΩ | 10 kΩ | 10 nF | 6,86 kHz | 52% | Tom agudo, PWM |
| 1 kΩ | 18 kΩ | 1 nF | 38,9 kHz | 51% | Portadora de controle remoto IR (ajuste para 38 kHz com um trimpot) |
Ajustando o ciclo de trabalho: abaixo de 50%
No circuito astável básico, o capacitor carrega através de R1 + R2, mas descarrega só através de R2, então o tempo em HIGH é sempre maior que o tempo em LOW e o ciclo de trabalho não consegue ficar abaixo de 50%; deixar R2 muito maior que R1 aproxima de 50%, mas nunca fica abaixo. A solução é um diodo 1N4148 em paralelo com R2, com o ânodo voltado para o pino 7 e o cátodo para o pino 6. Durante a carga, a corrente passa pelo diodo e desvia de R2; durante a descarga, o diodo fica polarizado reversamente e a corrente passa por R2. Isso dá tH ≈ 0,693 · R1 · C e tL ≈ 0,693 · R2 · C, e o ciclo de trabalho cai para R1 / (R1 + R2). Por exemplo, com R1 = 10 kΩ, R2 = 47 kΩ e C = 10 µF, o LED fica aceso por 69 ms e apagado por 326 ms: uma piscada curta e chamativa com ciclo de 17,5%. A queda direta de cerca de 0,6 V do diodo deixa o tempo em HIGH um pouco maior que o calculado, principalmente em 5 V. Para saber como os diodos se comportam em geral, veja O que é um diodo?.
Se você quer manter a frequência fixa e ajustar só o ciclo de trabalho, use um potenciômetro e dois diodos. Ligue o cursor do potenciômetro no pino 7; ligue uma ponta do potenciômetro ao capacitor por um diodo (ânodo do lado do potenciômetro) e a outra ponta ao capacitor por um segundo diodo virado ao contrário (cátodo do lado do potenciômetro). Com R1 = 1 kΩ, um potenciômetro de 100 kΩ e C = 10 nF, a frequência fica em cerca de 1,4 kHz enquanto o ciclo de trabalho varia mais ou menos de 1% a 99%, porque a soma das resistências de carga e descarga continua a mesma quando você gira o potenciômetro. Com um MOSFET na saída, esse é o jeito clássico de controlar a velocidade de um motor CC ou o brilho de uma fita de LED de 12 V; veja O que é PWM? e Como usar um MOSFET com Arduino para os detalhes.
Circuito monoestável: pulso único e lâmpada temporizada
No circuito monoestável, os pinos 6 (THRES) e 7 (DISCH) são ligados juntos; um resistor R vai desse nó até o VCC e um capacitor C até o GND. O pino TRIG (2) é mantido em HIGH por um resistor de pull-up. Em repouso, a saída fica em LOW e o transistor de descarga mantém o capacitor vazio. Quando um pulso LOW curto chega ao TRIG, a saída vai para HIGH, o transistor de descarga desliga e o capacitor começa a carregar através de R. Quando a tensão dele chega a 2/3 VCC, a saída volta para LOW e o capacitor é descarregado na hora. Desta vez o capacitor carrega desde zero até 2/3 VCC, então o pulso dura ln 3 · R · C ≈ 1,1 · R · C, que também não depende da tensão de alimentação.
- Ligue os pinos 8 e 4 no +5 V e o pino 1 no GND; coloque um capacitor de 100 nF entre os pinos 8 e 1 e um de 10 nF entre o pino 5 e o GND.
- Una os pinos 6 e 7. Desse nó, ligue R = 470 kΩ ao +5 V e um capacitor eletrolítico de C = 100 µF ao GND (perna negativa no GND).
- Puxe o TRIG (pino 2) para o +5 V com 10 kΩ e ligue um botão de pressão entre o pino 2 e o GND. Para saber mais sobre a ligação de botões, veja Como ligar um botão no Arduino.
- Para um primeiro teste, ligue um LED no pino de saída 3 por um resistor de 330 Ω.
- Aperte o botão rapidamente: o LED fica aceso por cerca de 1,1 × 470 kΩ × 100 µF ≈ 52 segundos e depois apaga. Por causa da tolerância de ±20% do capacitor eletrolítico, qualquer valor entre 42 e 62 segundos é normal.
- Para uma lâmpada de verdade, acione um relé em vez do LED: vá da saída, por 1 kΩ, até a base de um transistor BC547, ligue o emissor ao GND e o coletor a uma ponta da bobina do relé; a outra ponta da bobina vai ao +5 V. Não esqueça um diodo 1N4007 em paralelo com a bobina (cátodo do lado do +5 V); para o papel do transistor, veja O que é um transistor?.
| R | C | Tempo (1,1 · R · C) | Uso |
|---|---|---|---|
| 10 kΩ | 1 µF | 11 ms | Debounce de botão, alongar pulsos curtos |
| 100 kΩ | 10 µF | 1,1 s | Bipe curto, campainha |
| 220 kΩ | 47 µF | 11,4 s | Iluminação de curta duração |
| 470 kΩ | 100 µF | 52 s | Minuteria de escada, lâmpada temporizada |
| 10 kΩ + potenciômetro de 1 MΩ | 100 µF | 1,1–111 s | Temporizador ajustável |
Para encurtar o atraso, você pode adicionar um segundo botão no pino RESET (4): puxe o pino para o VCC com 10 kΩ e ligue o botão entre o RESET e o GND; no instante em que ele é apertado, a saída vai para LOW e o capacitor é descarregado. Um circuito monoestável às vezes dispara sozinho uma vez quando a alimentação é ligada. Para evitar isso, ligue o pino RESET ao VCC por 10 kΩ e ao GND por 10 µF: ao ligar, o chip fica em reset pelo pouco tempo que esse capacitor leva para carregar e começa a funcionar normalmente quando a alimentação se estabiliza.
Como usar um 555 timer com Arduino?
O 555 e o Arduino não são rivais; eles formam uma boa dupla. Você também pode fazer um pisca-pisca simples no Arduino com millis(), mas um 555 não precisa de código, funciona com alimentação de até 16 V, fornece 200 mA na saída e continua funcionando mesmo se o Arduino travar. Por isso, o 555 costuma entrar junto com o Arduino em um de três papéis: como fonte de sinal que o Arduino mede, como temporizador de hardware que o Arduino dispara (um medidor de capacitância, um alongador de pulsos) e como oscilador que o Arduino liga e desliga pelo pino RESET (uma sirene ou um tom de buzzer). No último caso, basta ligar o pino 4 do 555 a uma saída do Arduino: enquanto o pino está em HIGH, o oscilador funciona; enquanto está em LOW, ele fica em silêncio.
| Pino do 555 | Arduino Uno | ESP32 | Raspberry Pi Pico |
|---|---|---|---|
| 8 VCC | 5V | 3V3 (só com 555 CMOS) | 3V3(OUT) (555 CMOS) ou VBUS (NE555) |
| 1 GND | GND | GND | GND |
| 3 OUT | D2 | GPIO 27 | GP15 (por um divisor de 10 kΩ + 20 kΩ com NE555) |
| 2 TRIG (exemplo de disparo) | D7 | GPIO 26 | GP14 (só com um 555 CMOS alimentado pelo 3V3) |
| 4 RESET | 5V ou um pino digital | 3V3 | 3V3(OUT) |
No primeiro exemplo, o Arduino mede a frequência e o ciclo de trabalho do pisca-pisca e os compara com os valores das fórmulas. O circuito é o mesmo circuito astável de antes (R1 = 10 kΩ, R2 = 68 kΩ, C = 10 µF), só que alimentado pelo pino 5V do Arduino em vez de 9 V, e o pino de saída 3 vai no D2. A função pulseIn() retorna, em microssegundos, quanto tempo um pino fica em HIGH ou em 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 padrão, o pulseIn() espera no máximo 1 segundo; com um sinal em torno de 1 Hz, ele primeiro espera o pulso atual terminar e depois um novo começar, então aumentamos o timeout para 3 segundos. É normal a frequência medida no Monitor Serial diferir do valor calculado em 5–20%; a maior parte da diferença vem da tolerância do capacitor eletrolítico. Essa diferença também é um jeito de descobrir o valor real do capacitor: coloque a frequência medida em f = 1,44 / ((R1 + 2·R2) · C) e isole C. Para sinais mais rápidos, contar bordas com uma interrupção em vez de pulseIn() dá resultados mais precisos.
Disparando um 555 pelo Arduino: um medidor de capacitância
Como a largura do pulso monoestável é t = 1,1 · R · C, se você conhece R e mede t, consegue achar o valor do capacitor com C = t / (1,1 · R). O circuito é assim: pinos 6 e 7 unidos, com 100 kΩ desse nó até o 5 V e o capacitor em teste até o GND; pinos 4 e 8 no 5 V e o pino 5 no GND por 10 nF. O TRIG (pino 2) é puxado para o 5 V com 10 kΩ e ligado ao D7, e o pino de saída 3 vai no D2. O Arduino envia um pulso LOW de 10 µs pelo D7 e mede com micros() quanto tempo a saída fica em 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}Aqui medimos manualmente com micros() em vez de pulseIn(), porque a saída já está em HIGH logo depois do disparo e o pulseIn() trataria esse pulso como um “pulso anterior” e o pularia. No Uno, o micros() tem resolução de 4 µs; com 100 kΩ, um capacitor de 1 nF dá um pulso de 110 µs, então a faixa de medição vai mais ou menos de 1 nF a 47 µF. Meça um capacitor conhecido e escreva a razão entre o valor real e o valor medido no fator CAL para calibrar o seu medidor. Antes de ligar um capacitor eletrolítico, descarregue-o encostando as pernas uma na outra e ligue a perna positiva no lado dos pinos 6–7.
Usando um 555 timer com ESP32 e Raspberry Pi Pico
O ESP32 e o Raspberry Pi Pico trabalham em 3,3 V e seus pinos não toleram 5 V. Já o NE555 clássico precisa de pelo menos 4,5 V, então não funciona com 3,3 V. A solução mais limpa é um 555 CMOS como o TLC555, LMC555 ou ICM7555: ele tem a mesma pinagem, funciona pelo pino 3V3 e sua saída vai de 0 a 3,3 V, então se liga direto a um GPIO. Se você só tem um NE555, alimente-o com 5 V e divida a saída com 10 kΩ (em série) e 20 kΩ (para o GND). Como o nível HIGH do NE555 fica em torno de 3,5 V, a saída do divisor cai para cerca de 2,3 V: o bastante para o limite de 2 V do Pico, mas no limite para o limite de cerca de 2,5 V do ESP32. Por isso, com o ESP32, prefira um 555 CMOS.
No exemplo do ESP32, um 555 CMOS com R1 = 1 kΩ, R2 = 6,8 kΩ e C = 100 nF gera um sinal de cerca de 986 Hz; ele tem as mesmas proporções do pisca-pisca, só que mil vezes mais rápido. O ESP32 executa uma rotina de interrupção a cada borda de subida e mostra quantas bordas contou em um segundo; esse número é diretamente a frequência em Hz. O ciclo de trabalho é calculado a partir de um único tempo em HIGH medido com 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}No Pico, a função machine.time_pulse_us() do MicroPython é o equivalente ao pulseIn() do Arduino, com uma diferença importante: se o pino já estiver no nível pedido, ela começa a contar na hora. Por isso, a primeira chamada é usada para pular um pulso parcial e sincronizar com a borda do sinal; as medições de LOW e HIGH que vêm depois são pulsos completos. O exemplo mede o circuito do pisca-pisca de uma vez por segundo e alterna o LED da placa a cada leitura.
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)Ideias de projetos com 555 timer
- Luz de polícia: pisque um LED vermelho e um azul alternadamente, um ligado da saída ao GND e o outro do VCC à saída; 4,7 kΩ, 47 kΩ e 1 µF dão um efeito estroboscópico rápido.
- Sirene de dois tons: ligue a saída de um primeiro 555 lento, por um resistor, ao pino 5 (CONT) de um segundo 555; conforme os limites se deslocam, o tom do segundo chip sobe e desce. Use um buzzer passivo ou um alto-falante pequeno para o som.
- Minuteria de escada: monte com um 555 monoestável, um relé e botões um temporizador que mantém uma lâmpada acesa por um minuto, com os botões de andares diferentes ligados em paralelo.
- Medidor de capacitância: use o código Arduino deste artigo para medir capacitores com a marcação apagada e mostre o resultado em um display LCD I2C.
- Transmissor IR: acione um LED IR com um 555 astável ajustado em 38 kHz e detecte o sinal com um receptor IR; você tem um alarme simples de feixe interrompido. Receptores de controle remoto como o TSOP ou o VS1838B podem tratar uma portadora contínua como ruído e suprimi-la depois de um tempo, então ligue e desligue esse 555 pelo pino RESET com um segundo 555 lento para enviar rajadas.
- Controle de velocidade de motor: ligue o circuito PWM de frequência fixa com potenciômetro a um MOSFET para ajustar a potência de um motor CC de 12 V ou de uma fita de LED.
- Detector de pulso ausente: coloque um transistor PNP (por exemplo, um BC557) em paralelo com o capacitor de temporização, com a base ligada ao TRIG; cada pulso LOW que o Arduino envia em intervalos regulares dispara o 555 e esvazia o capacitor, reiniciando a contagem. Se o Arduino travar e os pulsos pararem, o tempo se esgota e o 555 dispara um alarme ou reinicia o sistema.
Erros comuns e como resolvê-los
| Sintoma | Causa provável | Solução |
|---|---|---|
| O LED não pisca, fica aceso ou apagado | RESET (4) flutuando ou no GND; no modo astável, pinos 2 e 6 não unidos | Ligue o RESET ao VCC e una os pinos 2 e 6 com um fio |
| A frequência fica longe do valor calculado | Tolerância de ±20% do capacitor eletrolítico, valor mal lido (nF em vez de µF), C pequeno demais | Meça o capacitor, confira o código dele, use um capacitor de filme para trabalhos precisos |
| O circuito fica instável ou dispara sozinho | Sem desacoplamento da alimentação, pino CONT ou TRIG flutuando | 100 nF + 10 µF entre os pinos 8 e 1, 10 nF no pino 5, pull-up de 10 kΩ no TRIG |
| O chip esquenta | Saída em curto com um LED sem resistor ou com o GND; R1 pequeno demais | Coloque um resistor em série com o LED, use R1 de pelo menos 1 kΩ |
| O atraso monoestável nunca termina | Botão mantido pressionado ou TRIG preso em LOW | Aperte o botão rapidamente ou envie um pulso LOW curto pelo Arduino |
| O chip reseta ou queima quando o relé solta | Falta o diodo para absorver a tensão reversa da bobina | Ligue um 1N4007 em paralelo com a bobina do relé |
| O Arduino lê valores errados ou o pino se danifica | 555 alimentado com 9–12 V | Alimente o 555 com 5 V ou reduza a saída com um divisor de tensão |
| O ciclo de trabalho não fica abaixo de 50% | Limite natural do circuito astável básico | Coloque um diodo 1N4148 em paralelo com R2 |
O 555 timer é uma das melhores peças para aprender, porque mostra em um só chip barato as ideias centrais de temporização da eletrônica (carga RC, limites, comparadores, flip-flops). Comece com o pisca-pisca de uma vez por segundo, mude os valores para obter um tom de buzzer e depois experimente a lâmpada temporizada monoestável e o medidor de capacitância com Arduino. No app BlueGrays você encontra os projetos de luz de polícia, iluminação de escada e buzzer passo a passo, com esquemas do circuito e código, para testar lado a lado as versões com Arduino e Pico dos seus circuitos com 555.
Perguntas frequentes
Para que serve um 555 timer?
O 555 é um chip temporizador de uso geral que define intervalos de tempo com um resistor e um capacitor. No modo astável, ele gera uma onda quadrada contínua para pisca-piscas de LED, tons de buzzer ou sinais de clock; no modo monoestável, gera uma saída que fica ligada por um tempo definido depois de um disparo, para lâmpadas temporizadas ou temporizadores. Ele não precisa de microcontrolador nem de código.
Qual tensão o 555 timer precisa?
O NE555 clássico funciona de 4,5 a 16 V (o SE555, até 18 V); 5, 9 e 12 V são as alimentações mais comuns. Para tensões mais baixas, como 3,3 V, use versões CMOS como o TLC555 (2–15 V), o ICM7555 ou o LMC555, que começa em 1,5 V. Enquanto a alimentação se mantiver constante, a frequência e o tempo não dependem da tensão.
Quais valores dão um pisca-pisca de 1 Hz com 555?
Com R1 = 10 kΩ, R2 = 68 kΩ e C = 10 µF, você obtém f = 1,44 / ((10 kΩ + 2 · 68 kΩ) · 10 µF) ≈ 0,99 Hz; o LED fica aceso por cerca de 0,54 s e apagado por 0,47 s. Por causa da tolerância de ±20% do capacitor eletrolítico, o valor real vai ser um pouco diferente. Para um ajuste fino, troque R2 por um trimpot.
Como deixar o ciclo de trabalho do 555 abaixo de 50%?
No circuito astável básico, o capacitor carrega através de R1 + R2, mas descarrega só através de R2, então o tempo em HIGH é sempre maior que o tempo em LOW. Se você colocar um diodo 1N4148 em paralelo com R2, com o ânodo voltado para o pino 7, o capacitor carrega só através de R1. Aí tH ≈ 0,693 · R1 · C e tL ≈ 0,693 · R2 · C, e escolher R1 menor que R2 leva você abaixo de 50%.
Qual é a diferença entre o NE555 e o TLC555?
O NE555 é feito com transistores bipolares, precisa de pelo menos 4,5 V e fornece até 200 mA na saída, mas consome 2–6 mA em repouso e sofre acima de 100 kHz. O TLC555 é uma versão CMOS: funciona a partir de 2 V, consome cerca de 0,2 mA, chega a cerca de 2 MHz e a saída sobe até a tensão de alimentação; por outro lado, só fornece cerca de 10 mA. Os dois têm a mesma pinagem.
Os pinos 4 e 5 do 555 podem ficar desconectados?
O pino RESET (4) nunca deve ficar flutuando; se você não o usa, ligue-o direto no VCC, senão o ruído pode resetar o chip aleatoriamente. O pino CONT (5) tecnicamente pode ficar aberto, mas ligá-lo ao GND por um capacitor de 10 nF é um bom hábito para que o ruído não desloque os limites. Se você aplicar uma tensão externa nesse pino, os limites mudam e, com eles, a frequência.
Projetos para montar depois desta leitura
Ver todos os projetos
Luzes de polícia com LEDs
Como as luzes de uma viatura: o LED vermelho pisca três vezes rapidamente, depois o LED azul pisca três vezes, e a sequência se repete sem parar. Basta ligar dois LEDs e dois resistores ao Arduino. Um

Uso do buzzer
Já se perguntou como uma campainha ou um alarme produz som? O Arduino faz um pequeno buzzer emitir bipes em intervalos curtos: bipe, pausa, bipe, pausa. Você vê como a eletricidade produz som e dá o p

Ajuste de frequência com buzzer
Você controla o som de um buzzer com quatro botões: um inicia o som, outro o interrompe e os outros dois o deixam mais agudo ou mais grave. Mantenha pressionado o botão de aumentar ou diminuir, e o to

Raspberry Pi Pico: efeito de luz policial (vermelho + azul)
Simulamos a barra de luzes de uma viatura com um Raspberry Pi Pico da forma mais simples! Os LEDs vermelho e azul acendem alternadamente (flip-flop): enquanto o vermelho está aceso, o azul fica apagado, e eles trocam de estado a cada 0,3 segundo, para sempre. O código escreve as duas etapas diretamente em um único laço while True; a velocidade é definida pela constante WAIT_MS.

Iluminação inteligente de escadas e corredores
Ao entrar na escada ou no corredor, as luzes acendem uma a uma no sentido em que você caminha. Há um sensor de distância em cada extremidade; ao passar por um deles, os oito LEDs acendem a partir daqu

Acender uma lâmpada de 220V com botão de pressão
Enquanto você mantém o botão pressionado, uma lâmpada de 220 volts fica acesa e apaga assim que você solta. O sinal fraco do Arduino não consegue acender a lâmpada diretamente, então um relé, que é um

Efeito de luzes de viatura com ESP32
Simule as luzes de uma viatura fazendo grupos de LEDs vermelhos e azuis piscarem rapidamente. Usar 2 LEDs em cada grupo deixa o efeito mais marcante. Um exemplo clássico de alternância rápida e controle de grupos.
Mais artigos
App BlueGrays
Monte este circuito passo a passo pelo celular
Esquema do circuito, código e lista de componentes em uma só tela. Mais de 200 projetos com Arduino, ESP32 e Pico prontos para montar.
Escaneie com seu celular
Aponte a câmera para o código para abrir a loja de aplicativos do seu celular.
ou abrir a loja

