Voltage Comparator Circuits
This page provides basic information about voltage comparator integrated circuits and is to act as reference material for other circuits. The circuits shown are based on the LM339 Quad Voltage Comparator or the LM393 Dual Voltage Comparator. These devices are functionally identical. The LM311 Voltage Comparator can be used for these applications as well and also has a number of unique features.
Here I'll concentrate on examples not presented on my Comparator Circuits Examples Tutorial. I'd like to thank Rob Paisley for his hard work and inspiration.
YouTube Video: Comparator Circuits Introduction
See my page Looking at Window Comparator Circuits
Fig. 1 shows the internal equivalent circuit of a single comparator in the LM339 quad comparator. (See internal package connections for LM339.) It consists of an operational amplifier with an open collector output transistor.
Fig. 2 shows the use of a LM741 op-amp comparator circuit. This requires a bipolar power supply and creates a number of problems. We can use a LM358 single supply op-amp. Fortunately the LM339, LM393, and LM311 are all single supply comparators with open collector outputs.
They all work the same: when the voltage on the Reference input is greater than the voltage input the output is switched ON or OFF.

Fig. 3 Non-inverting comparator.

Fig. 4 Inverting comparator.

Fig. 5 LM339 functional equivalent.
The LM311 differ from the LM339 and LM393 in the output transistor emitter has to be connected to ground externally.
In the case of the LM358 or LM741 it outputs a voltage while the open collector turns on creating a path to ground - an electronic ON-OFF switch.
To repeat once more on the rule for comparator inputs with open collector outputs:
Current WILL flow through the open collector when the voltage at the MINUS input is higher than the voltage at the PLUS input.
Current WILL NOT flow through the open collector when the voltage at the MINUS input is lower than the voltage at the PLUS input.

Fig. 6
Hysteresis
Hysteresis is defined as:
For slow time changing input signal, an output oscillation can appear while the input signal remains close to the reference voltage. Also low amplitude signal on high impedance can cause oscillations due to noise background. Such unwelcome behavior can be solved by hysteresis. The principle of hysteresis consists of two different input threshold voltages depending on actual output state.

Fig. 7 Comparator based Schmitt Trigger.
In Fig. 7 we have a comparator based Schmitt trigger which are used to assure clean switching with noisy or erratic signals. When the input voltage on TP2 is less than TP1 the comparator is in the OFF condition. TP3 is pulled up to nearly 12-volts by R4 a 3K resistor.

Fig. 8
Fig. 8 illustrates how when the comparator is OFF as R4 and R1 form a series 30K which is in parallel with R2 shifting TP1 (Vref) to 6.56-volts.
Without R1 Vref would be 6-volts.

Fig. 9
When the comparator is ON TP3 is switched to ground through the internal open collector transistor where 47K resistor R1 is now in parallel with 10K resistor R3 forming a total resistance of 8245 ohms. This drops Vref on TP1 to 5.36-volts.
It takes 6.56-volts on Vin to turn ON the comparator but the voltage will have to drop to 5.36-volts to turn off. This produces a switching gap or hysteresis value of ~1.2-volts helping to assure stable operation.

Fig. 10 Photocell comparator circuit turns on in dark.
- New Nov. 2014
- Using the ULN2003A Transistor Array with Arduino YouTube
- ULN2003A Darlington Transistor Array with Circuit Examples
- Using the TIP120 & TIP120 Darlington Transistors with Arduino YouTube
- Tutorial Using TIP120 and TIP125 Power Darlington Transistors
- Driving 2N3055-MJ2955 Power Transistors with Darlington Transistors
- Using Power MOSFETS with Arduino YouTube
- N-Channel Power MOSFET Switching Tutorial
- P-Channel Power MOSFET Switch Tutorial
- Using PNP Bipolar Transistors with Arduino, PIC YouTube
- Using NPN Biploar Transistors with Arduino, PIC YouTube
- Understanding Bipolar Transistor Switches
- How to build a Transistor H-Bridge for Arduino, PIC YouTube
- Build a High Power Transistor H-Bridge Motor Control
- Build a Power MOSFET H-Bridge for Arduino, PIC YouTube
- H-Bridge Motor Control with Power MOSFETS
- More Power MOSFET H-Bridge Circuit Examples
- Basic Triacs and SCRs
- Constant Current Circuits with the LM334
- LM334 CCS Circuits with Thermistors, Photocells
- LM317 Constant Current Source Circuits
- TA8050P H-Bridge Motor Control
- All NPN Transistor H-Bridge Motor Control
- Basic Triacs and SCRs
- Comparator Theory Circuits Tutorial
- Constant Current Circuits with the LM334
- LM334 Constant Current Source with Resistive Sensors
- LM317 Constant Current Source Circuits
- Introduction Hall Effect Switches, Sensors, and Circuits
- Using Ratiometric Hall Effect Sensors
- Pulse Width Modulation Power Control for Microcontrollers
- Introduction to PIC12F683 Programming
- Basic Transistor Driver Circuits for Micro-Controllers
- Opto-Isolated Transistor Drivers for Micro-Controllers
- Added Nov. 16, 2014
- ULN2003A Darlington Transistor Array with Circuit Examples
- Tutorial Using TIP120 and TIP125 Power Darlington Transistors
- Driving 2N3055-MJ2955 Power Transistors with Darlington Transistors
- Understanding Bipolar Transistor Switches
- N-Channel Power MOSFET Switching Tutorial
- P-Channel Power MOSFET Switch Tutorial
- H-Bridge Motor Control with Power MOSFETS
- More Power MOSFET H-Bridge Circuit Examples
- Build a High Power Transistor H-Bridge Motor Control
- Comparator Theory Circuits Tutorial
- Arduino Projects Revisited Revised
- Schematic for Following Projects
- Programming ADS1115 4-Channel I2C ADC with Arduino
- Arduino uses ADS1115 with TMP37 to Measure Temperature
- Connect Arduino to I2C Liquid Crystal Display
- Arduino Reads Temperature Sensor Displays Temperature on LCD Display
- Arduino with MCP4725 12-bit Digital-to-Analog Converter Demo