← All parts

NE555 Timer

NE555

Texas Instrumentsic logic timer

The NE555 is a versatile precision timer IC capable of producing accurate time delays or oscillations. It supports monostable and astable modes, adjustable duty cycles, and TTL-compatible outputs.

In stock

Specifications

8
Operating Voltage
4.5 V
Operating Voltage
16 V
Output Current Sink Source
200 mA
Temperature Range
0 °C
Temperature Range
70 °C
Interface
TTL-compatible output
Timing Range
microseconds to hours
Frequency Range
< 1mHz to 100kHz

Pinout

8
PinNameFunctionsNotes
1GND
GND
Ground
2TRIG
GPIO
Start of timing input
3OUT
GPIO
High current timer output signal
4RESET
GPIO
Active low reset input
8VCC
POWER
Input supply voltage
7DISCH
GPIO
Open collector output to discharge timing capacitor
6THRES
GPIO
End of timing input
5CONT
GPIO
Controls comparator thresholds

Interactive pinout

Highlight:
NE555

Click a pin to copy its name · tap a tag above to spotlight a bus.

Logic level & voltage

Runs on a 4.5-16 V supply (per the datasheet specs) with an output that can sink/source up to 200 mA. The bipolar version is not a 3.3 V-logic part.

Typical uses

  • Astable oscillators / clock and tone generation
  • Monostable one-shot timers and debouncers
  • PWM and simple pulse generation

Wiring notes & gotchas

  • Decouple the supply (e.g. 100 nF) — the output switching is noisy.
  • Use a 10 nF cap on the CONTROL pin if you don't drive it.
  • For 3.3 V systems choose a CMOS 555 (e.g. LMC555/TLC555) instead.

Commonly used with

2

Starter code

Community starter examples — minimal, unofficial, and provided to get you wiring fast. Verify against the manufacturer datasheet before relying on them.

Arduino (C++)

arduino
// NE555 is a standalone analog timer (no MCU needed to run it).
// This starter just READS the 555's OUT pin to measure its frequency.
#if defined(ESP32)
  #define OUT_PIN 4
#else
  #define OUT_PIN 2
#endif

void setup() {
  Serial.begin(115200);
  pinMode(OUT_PIN, INPUT);
}

void loop() {
  unsigned long high = pulseIn(OUT_PIN, HIGH);   // microseconds
  unsigned long low  = pulseIn(OUT_PIN, LOW);
  if (high + low > 0) {
    float freq = 1000000.0 / (high + low);
    Serial.print(freq); Serial.println(" Hz");
  }
  delay(500);
}

MicroPython

python
# NE555 timer - measure its OUT frequency (ESP32) — community starter example
# The 555 runs on its own R/C network; here we just read OUT on a GPIO.
from machine import Pin, time_pulse_us
import time

out = Pin(4, Pin.IN)   # 555 OUT -> GPIO4

while True:
    high = time_pulse_us(out, 1, 1000000)
    low  = time_pulse_us(out, 0, 1000000)
    if high > 0 and low > 0:
        print(1_000_000 / (high + low), "Hz")
    time.sleep(0.5)

Wiring

PinArduino Uno R3ESP32 DevKitC (WROOM-32)Notes
VCC+5V3V3555 runs 4.5-16 V (TLC555/ICM7555 go lower)
GNDGNDGNDCommon ground with the board to read OUT
OUTD2GPIO4Read-only here; keep VCC <= board logic or divide OUT
TRIG/THRES/DISCH/CONT/RESET--Set the R/C timing network (astable/monostable) - not board pins

Related parts

6