Fork me on GitHub

Project Notes

#283 DigitalLogic/XorWithNandGates

Construct an XOR gate with only an 74LS132 quad NAND gate, and demonstrate it’s behaviour with an Arduino and Processing.



I recently needed an XOR gate, but only had NAND gates on hand.

NAND (and NOR) gates are sometimes known as “universal” logic elements, as it is possible to contruct any other type of logic gate with them.

So while a little wasteful, I’m using the four NAND gates of a single 74LS132 chip to produce one XOR gate.

XOR From NAND Logic


A B Q1 Q2a Q2b Q
0 0 1 1 1 0
0 1 1 1 0 1
1 0 1 0 1 1
1 1 0 1 1 0

Output State Plot

The XorWithNandGates.ino sketch drives the A/B inputs with a state change every 500ms. Three Arduino analog pins are used to rea dthe actual A, B and Q (output) voltages.

PlotNValues (a simple Processing sketch) reads the data from the serial port and plots the output value over time, with some coloration effects thrown in for good measure.

Here’s a sample trace:

  • top trace: Q (output)
  • middle trace: B
  • bottom trace: A

processing trace





Credits and References

About LEAP#283 Logic GatesCMOS/TTL
Project Source on GitHub Project Gallery Return to the LEAP Catalog

This page is a web-friendly rendering of my project notes shared in the LEAP GitHub repository.

LEAP is my personal collection of electronics projects, usually involving an Arduino or other microprocessor in one way or another. Some are full-blown projects, while many are trivial breadboard experiments, intended to learn and explore something interesting (IMHO!).

The projects are usually inspired by things found wild on the net, or ideas from the sources such as:

Feel free to borrow liberally, and if you spot any issues do let me know. See the individual projects for credits where due. There are even now a few projects contributed by others - send your own over in a pull request if you would also like to add to this collection.