

The LM393 is a dual comparator integrated circuit (IC) designed to compare two input voltages and output a digital signal based on the comparison. It features two independent voltage comparators in a single package, making it versatile and efficient for a wide range of applications. The LM393 operates with a wide range of supply voltages and is known for its low power consumption.








The LM393 is a robust and reliable IC with the following key specifications:
| Parameter | Value |
|---|---|
| Supply Voltage (Vcc) | 2V to 36V |
| Input Offset Voltage | ±5mV (typical) |
| Input Common-Mode Voltage | 0V to Vcc - 1.5V |
| Output Voltage (Low) | 0.2V (typical) at 4mA sink current |
| Output Sink Current | Up to 16mA |
| Operating Temperature | -40°C to +85°C |
| Package Types | DIP-8, SOIC-8, TSSOP-8 |
The LM393 is typically available in an 8-pin Dual In-line Package (DIP) or similar formats. Below is the pinout and description:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | Output 1 | Output of comparator 1 |
| 2 | Inverting Input 1 | Inverting input of comparator 1 |
| 3 | Non-Inverting Input 1 | Non-inverting input of comparator 1 |
| 4 | GND | Ground (0V reference) |
| 5 | Non-Inverting Input 2 | Non-inverting input of comparator 2 |
| 6 | Inverting Input 2 | Inverting input of comparator 2 |
| 7 | Output 2 | Output of comparator 2 |
| 8 | Vcc | Positive power supply (2V to 36V) |
The LM393 is straightforward to use in a variety of circuits. Below are the steps and considerations for using the component effectively:
The LM393 can be used with an Arduino UNO to detect voltage levels. Below is an example circuit and code:
// LM393 Comparator Example with Arduino UNO
// This code reads the output of the LM393 and turns on an LED if the input
// voltage exceeds the reference voltage.
const int lm393OutputPin = 2; // LM393 output connected to digital pin 2
const int ledPin = 13; // Onboard LED pin
void setup() {
pinMode(lm393OutputPin, INPUT); // Set LM393 output pin as input
pinMode(ledPin, OUTPUT); // Set LED pin as output
digitalWrite(ledPin, LOW); // Turn off LED initially
Serial.begin(9600); // Initialize serial communication
}
void loop() {
int comparatorState = digitalRead(lm393OutputPin); // Read LM393 output
if (comparatorState == HIGH) {
digitalWrite(ledPin, HIGH); // Turn on LED if input voltage > reference
Serial.println("Input voltage is HIGH");
} else {
digitalWrite(ledPin, LOW); // Turn off LED if input voltage <= reference
Serial.println("Input voltage is LOW");
}
delay(500); // Wait for 500ms before next reading
}
No Output Signal:
Unstable Output:
Incorrect Output:
Q: Can the LM393 be used for high-speed applications?
A: The LM393 is suitable for moderate-speed applications, with a typical response time of a few microseconds. For high-speed requirements, consider using a high-speed comparator IC.
Q: What is the purpose of the pull-up resistor?
A: The LM393 has an open-collector output, which requires a pull-up resistor to define the output voltage level when the output transistor is off.
Q: Can the LM393 handle negative input voltages?
A: No, the LM393 is not designed for negative input voltages. Ensure all input voltages are within the range of 0V to Vcc - 1.5V.
By following this documentation, users can effectively integrate the LM393 into their projects and troubleshoot common issues with ease.