← 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| Pin | Name | Functions | Notes |
|---|---|---|---|
| 1 | GND | GND | Ground |
| 2 | TRIG | GPIO | Start of timing input |
| 3 | OUT | GPIO | High current timer output signal |
| 4 | RESET | GPIO | Active low reset input |
| 8 | VCC | POWER | Input supply voltage |
| 7 | DISCH | GPIO | Open collector output to discharge timing capacitor |
| 6 | THRES | GPIO | End of timing input |
| 5 | CONT | 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
2Starter 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
| Pin | Arduino Uno R3 | ESP32 DevKitC (WROOM-32) | Notes |
|---|---|---|---|
| VCC | +5V | 3V3 | 555 runs 4.5-16 V (TLC555/ICM7555 go lower) |
| GND | GND | GND | Common ground with the board to read OUT |
| OUT | D2 | GPIO4 | Read-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 |