Arduino Zener Diode Tester

Zener Diode Tester is controlled by Arduino Nano. Tester measure breakdown Zener voltage for diodes from 1.8V to 48V. Dissipation power of measured diodes could be from 250mW to a few Watts. Measuring is simple, just connect diode and press button START.

Arduino Nano gradually connect range of voltages from lower to higher, in four steps. For each step, current is checked through measured Zener diode. If current is over zero value (not zero), it means: Zener Voltage was detected. In this case voltage is displayed for certain time (adjusted by software to 10 seconds) and measuring is stopped. Current in each step is constant through all voltages in that range and is decreasing by increasing step number ‚Äď voltage range.

To maintain power dissipation for higher voltages, current in this range must be reduced. Tester is designed to measure diodes from 250mW and 500mW. Zener diodes with higher power, could be measured just the same way, but measured voltage value is lower for about 5%.

WARNING: Please be very careful. In this project high voltage 110/220V is used. If you are not familiar with a risk of touching main voltage, do not attempt this Instructable!

Step 1: Zener Diode

The Zener diode is special type of diode mainly used in circuits like reference voltage component or voltage regulator. In forward voltage direction I-V characteristics are the same like general-purpose diode. Voltage drop is about 0.6V. Biased in reverse direction, there is point, where current increase very sharply ‚Äď breakdown voltage. This voltage is referred as Zener voltage. At this point, Zener diode connected directly to power supply with constant voltage output, would burn immediately. This is reason, why current through Zener diode, must be limited by resistor.

I-V characteristics are displayed on picture. Each type of Zener diode define current value at which is the right Zener voltage specified. (This voltage could be slightly changed by increasing of current). Typical current for diodes with power dissipation about 250 to 500mW, is 3 to 10mA and depends on voltage value.

Breakdown voltage is relatively stable for wide range of currents and is typical and different for each diode. Its value could be from about 2V to over 100V. Zener diodes, which are mostly used in practical usual circuits, are specified with voltages less than 50V.

Step 2: Parts

List of used parts:

  • Enclosure from OKW, Shell-type¬†OKW 9408331
  • Hi-Link AC/DC adapter 220V/12V, 2pcs,¬†eBay
  • Hi-Link AC/DC adapter 220V/5V, 2pcs,¬†eBay
  • AC/DC adapter 220V/24V 150mA,¬†eBay
  • Arduino Nano,¬†Banggood
  • Capacitors M1 2pcs, M33 1pc, local store
  • Diodes 1N4148 5pcs,¬†Banggood
  • IC1, LM317T, high voltage version,¬†eBay
  • IC2, 78L12,¬†eBay
  • Transistors 2N222 5pcs,¬†Banggood
  • Relay 351, 5V, 4pcs,¬†eBay
  • Reed relay, 5V,¬†eBay
  • Resistors 33R, 470R, 1k 4pcs, 4.7k, 10k, 15k 2pcs, local store
  • Trimm3296W 100R, 200R, 500R 2pcs,¬†eBay
  • Screw terminal block,¬†Banggood
  • Connector Molex 2pins,¬†Banggood
  • Connector Molex 3pins,¬†Banggood
  • Small mini main switch,¬†eBay
  • LED display 0-100V, 3 line,¬†eBay
  • Power plug inlet,¬†eBay
  • Audio spring terminal,¬†eBay
  • Microswitch and button,¬†Banggood
  • LED 3mm green and red, 2pcs,¬†Banggood
  • Fuse 0.5A and fuse holder 5x20mm,¬†eBay
  • Main power cord for small instruments


  • Power Drill
  • Soldering Iron
  • Heat Gun
  • Hot Melt Glue Gun
  • Wire Stripper and Cutter
  • Screwdriver Set
  • Pliers Set
  • Multimeter

Detailed list of parts is here:

Step 3: Circuit Description

Circuit description refer to attached connection diagram:

On the left side, there is high voltage part. Terminal block for 220V connection and all five AC/DC adapters. Adapters deliver measurement voltages in four steps ‚Äď ranges: 12V, 24V, 36V, 48V.

Modules 5VA and 5VB are dedicated for MCU Arduino Nano and Digital Led Voltmeter. Modules 12VA supply the first range 12V and module 12VB add another 12V to second range value 24V. Next module 24V add another 24V to total the fourth range voltage 48V. Inside the last 24V module is 12V regulator circuit, providing 12V as the third range value to 36V. This solution was necessary because size of board does not allowed six modules to be mounted on it.

In the middle part is located IC1 LM317. IC1 must be in version for higher voltage (50V). It is connected as constant current regulator circuit and provide constant current through whole range of each voltage step. This current is stable in one range, but different in each step. The values are adjustable and are 20mA (12V), 10mA(24V), 7mA(36V), 5mA(48V). Values are chosen as upper limits for diode with 250mW power and they are good enough for more powerful diodes.

On both sides of IC1 are relays, connected the right voltage step to its input and the right trimmer resistor to its output. Trimmer resistor specifies current value on output and this current is fed to measured Zener diode via resistor R14. Current is checked on this resistor by Arduino. Voltage divider R1,R2 take reduced sample of voltage on R2 and connect it to analog pin A1.

Analog ground GND is common for all voltage adapters, digital voltmeter adapter and IC1. Be careful, there is another ground, digital for Arduino and its adapter. Digital ground is necessary for Arduino and its analog input as measurement reference point.

Arduino digital outputs D4 to D7 control relays for each step, D8 control Digital voltmeter and D9 control ERROR led in red colour. ERROR led is on if there is not detected current in any step. In this case Zener diode can be with higher Zener voltage as 48V, or could be defective (open). If there is short circuit at mesuring terminals, ERROR led is not activated and detected voltage is very small, lower than 1V.

After I have finished project I decided to add one more led ‚Äď POWER, because if voltmeter is dark (off), there is not very clear if instrument itself is on or off. Led Power is connected in series with resistor 470 between points outside of PCB, from Start X3-1 to Zener X2-1. Resistor is mounted on small board with push button.

Step 4: Construction

As a box for the project, I have used enclosure OKW, found in old electronic parts store. This box is still available at OKW as a shell type enclosure. The box is not very suitable because is too small for the board, but some upgrade of box itself and PCB allow to put all parts inside. PCB was designed in Eagle as maximum size for free version 8x10cm. In the first moment it looks like impossible to put all components on board, but finally I was successful.

Box upgrade require remove some plastic parts inside and stands for screws. Parts upgrade require to modify plastic box for digital voltmeter, and make round cutout on two corners, near Error and Main power connectors. Upgrades are visible on pictures. Important thing is to make window for voltmeter as close to the box edge as possible. Push button START is located on small board and mounted with metal angle.

Windows and holes on the upper cover are made for Digital voltmeter, push button, spring terminal, LED Error, LED Power and USB Arduino Nano connector. On the lower part there is cutout for power switch and power plug inlet. Digital voltmeter and power switch are fixed on place by hot melt glue. The same way are fixed both 3mm Led diode indicators.

Measured diode is connected, not very typically, by audio spring connector. I was looking for some simple and fast connection. This solution seems to be the best one.

After soldering all components on the board, I have isolated two 220V tracks on bottom part, by hot melt glue gun. Wires leading from the board to power switch and to power plug inlet are isolated by heat-shrinkable tubing. Do it carefully, there should not be any exposed 220V wire or coper track.PCB is fixed on place by adhesive rubber spacers, which prevent it from vertical moving.

On front panel there is label print on adhesive photo paper. Label is done in Paint, which is tool in Windows 10 accessories. This tool is suitable for making instrument labels, because label could be done exactly in real size.

PCB is designed by Eagle free software. The board was ordered at JLCPCB company for a good price. There is not any reason to do it at home. I recommend to order the board and for this reason is attached Gerber zip. file.

Step 5: Programming and Setting.

Arduino software ‚Äď ino file is attached. I try to document all main parts of code and hope it is better understandable than my English. What need to be explain from the code is function ‚Äúservice‚ÄĚ. It is service mode and could be used for setting instrument if you switch it for the first time.

Function for reading current ‚ÄúreadCurrent‚ÄĚ was introduced to code to prevent accidental random current reading. In this function, reading is done ten times and maximal value is chosen from ten values. The maximum value of current is taken as sample to analog input of Arduino.

In service mode you adjust four adjustable resistor R4 to R7. Each trimmer is responsible for current in one voltage range. R4 for12V, R5 for 24V, R6 for 36V and R7 for 48V. In this mode mentioned voltages are gradually presented at output terminals and allow to adjust required value of current (20mA, 10mA, 7mA, 5mA).

To enter service mode press START just after switching instrument on within 2 seconds. The first step (12V) is activated and ERROR led is blinking once. Now is time to adjust current. If current is adjusted, activate the next step(24V) by pressing START again. ERROR led is blinking twice. Repeat next steps the same way, using START button. Leave service mode by START button. In each time, the best moment for pressing START is time if led ERROR is dark after series of blinks.

Current adjustment is done by connected any Zener diode with voltage around range middle, for 12V range it should be 6 to 7V diode. This Zener diode must be connected in series with ammeter or multimeter. Adjusted value of current should not be precise, minus 15% to plus 5% is OK.

Step 6: Conclusion

Presented solution for measuring Zener diodes by Arduino is completely new. There are still some disadvantages, like power supply 220V, Led voltmeter and maximum measured voltage 48V. Instrument could be improved in mentioned weaknesses. I originally plan to power it by battery, but powering Arduino and relatively high measure voltage with one or more step up voltage converter require big battery and instrument would be larger in size.

There are many very good component tester on a market. They can test all type of transistors, diodes, other semiconductors and many pasive components, but measuring Zener voltage is problematic, because of small battery voltage. I hope, you enjoy my project and would have a nice time playing with construction.

Source: Arduino Zener Diode Tester

About The Author

Muhammad Bilal

I am highly skilled and motivated individual with a Master's degree in Computer Science. I have extensive experience in technical writing and a deep understanding of SEO practices.

Scroll to Top