HomeArticlesProjectsBlogContact
Articles
In Circuit Electro-Tester
Colin Mitchell
Colin Mitchell
Make sure to subscribe to our newsletter and be the first to know the news.

Table Of Contents

01
CONSTRUCTION
02
USING THE ELECTROLYTIC TESTER
03
ELECTROLYTIC TESTER PARTS LIST
04
THE PROGRAM
  • Page 1
  • page 2
  • Page 3
  • Page 4

CONSTRUCTION, Burning the program into the chip, and Using the Tester


CONSTRUCTION

All the components fit on a small PC board with 4 leads going to a small plug that fits on the 5x7 display. The plug has 5 pins but the second pin from one end is not used. It is best not to connect a wire to this pin so you can see which way to connect the plug. At the other end of the ribbon cable, the lead does not solder to the board.
Two leads are also needed to connect the electrolytic-under-test to the board. One lead has an alligator clip and the other is an E-Z clip.
The two green LEDs serve as ON indicators as well as a zener reference voltage for the correct operation of the circuit. The only other components are a transistor and 4 resistors. What more can we say about construction? Check the correct placement of the LEDs and transistor. Make sure your soldering is neat and don’t overheat the parts. Connect the 4 wires (5-core ribbon cable) to the board and fit a plug to the other end. The 5-pin socket goes on the 5x7 Display.

USING THE ELECTROLYTIC TESTER

Connect the earth clip to the negative rail of the equipment you are testing and place the E-Z clip on the positive of the electrolytic you are testing. Press button “A” on the 5x7 project and the program will charge the electrolytic and measure how long it takes to discharge. The display will give a readout in “u” (microfarad). If the reading is lower than expected, it could be due to the surrounding circuitry affecting the reading or a dry electro. Remove it, connect the test leads directly and push button “A” to re-test.

This concludes the project but it should be just the starting point for you to design another project around the 5x7 Display. The first thing you will need is the Experimenter MkIII PC board and some components.

There are lots of different projects that can be interfaced to the 5x7 Display, in a similar way to the Electrolytic Tester.
Here are three more simple projects:

  • 3-digit customer counter using an infra-red beam.
  • Timer for sports events.
  • Count-down counter for slot cars, rocket launching, etc.
    All these projects need only a few “font-end” components and the 5x7 Display. The Experimenter Board is only used for the first stage of development. Talking Electronics has a range of Designer Boards containing a matrix of holes and lands for building a circuit or you can design a PC board and transfer the parts to the new board. The idea is the parts are removed from the Experimenter Board and it is re-used for the next project.


Electrolytic Tester PC board

ELECTROLYTIC TESTER PARTS LIST

  • 1 - 220R 1/4 watt
  • 1 - 1k ”
  • 1 - 10k ”
  • 1 - 22k ”
  • 2 - 3mm green LEDs
  • 1 - BC 547 transistor or similar
  • 1 - black crocodile clip
  • 1 - red E-Z clip
  • 1 - 5-pin header
  • 1 - 5-pin header socket
  • 20cm - 5-core Ribbon Cable
  • 30cm - red hook-up wire
  • 30cm - black hook-up wire
  • 20cm - very fine solder
  • 1 - Electrolytic Tester PC board

THE PROGRAM

The program needs a lot of discussion as it is one of the main reasons for the project.
There is a little more effort required to get this type of program running due to the external components having a delay value that is unknown.
Of course you can sit down and mathematically work out how long it will take to discharge a 22u electrolytic from 3.8v to 0v via a 220R resistor but our Microcontroller Course is designed to get you through electronics without involving complex mathematics.
You can do exactly the same by creating a delay routine (at LoopX and LoopY) and counting how many times the program executes this delay routine. The initial answer I got for 22u was 005. I decreased the delay values until I got 22. I then placed a 47u on the Tester and miraculously got 46! A 100u electrolytic produced a readout of 99. I checked a 10u on a professional capacitance meter and got a reading of 11.76u. The tester produced a reading of 12! I expected a conversion table would be needed to take into account the non-linearity effects of charging the electro but the program did not require it.
Electrolytic values are inherently non-accurate and could be as much as +20% or -20% of the stated value. However with the enormous accuracy of modern machinery, a batch of 100u electrolytics gave readings of 98, 99, and 100. Buy re-reading the electrolytics, I got the same values and proved the repeatability of the circuit.

Program for "In-Circuit" Electrolytic Tester
   (add-on for 5x7 Display)
   ;PIC16F84 chip

Start ORG 0x00
      BSF 03,5    ;Go to page1 for setting-up the ports
      MOVLW 02h   ;Put 02 into W
      MOVWF 05h   ;to make RA1 input, others output
      BCF 03,5    ;Go to page0 for programming
      GOTO Main

Table1  ADDWF 02h,1  ;Add W to Program Counter
        RETLW 3Eh   ;0
        RETLW 41h
        RETLW 41h
        RETLW 41h
        RETLW 3Eh
        RETLW 00h   ;1
        RETLW 10h
        RETLW 20h
        RETLW 7Fh
        RETLW 00h
        RETLW 27h   ;2
        RETLW 49h
        RETLW 49h
        RETLW 49h
        RETLW 31h
        RETLW 22h   ;3
        RETLW 41h
        RETLW 49h
        RETLW 49h
        RETLW 36h
        RETLW 0Ch   ;4
        RETLW 14h
        RETLW 24h
        RETLW 7Fh
        RETLW 04h
        RETLW 7Ah   ;5
        RETLW 49h
        RETLW 49h
        RETLW 49h
        RETLW 46h
        RETLW 3Eh   ;6
        RETLW 49h
        RETLW 49h
        RETLW 49h
        RETLW 26h
        RETLW 40h   ;7
        RETLW 47h
        RETLW 48h
        RETLW 50h
        RETLW 60h
        RETLW 36h   ;8
        RETLW 49h
        RETLW 49h
        RETLW 49h
        RETLW 36h
        RETLW 32h   ;9
        RETLW 49h
        RETLW 49h
        RETLW 49h
        RETLW 3Eh
        RETLW 00h

   ;This routine charges the electro

Charge  MOVLW 08h
        MOVWF 0Ch
        BSF 05,0
Delay2  DECFSZ 0Dh,1
        GOTO Delay2
        DECFSZ 0Eh,1
        GOTO Delay2
        DECFSZ 0Ch,1
        GOTO Delay2
        GOTO Dis

   ;00 to 999 COUNTER

Dis   CLRF 11h   ;11h is units file. Start=0
      CLRF 12h   ;12h is 10's file. Start=0
      CLRF 13h   ;13h is 100's file. Start=0
      CLRF 26h   ;1's pointer in table1
      CLRF 27h   ;10's pointer in table1
      CLRF 28h   ;100,'s pointer in table1
      BCF 05,0   ;Make line LOW to discharge electro
      NOP        ;Give the circuit time to settle down
      NOP        ; and produce 000 readout if no
      NOP        ; electrolytic is connected
      NOP
      NOP
      NOP
 Dis1   BTFSC 05,1
        RETURN      ;Electro discharged
        MOVLW 08h
        MOVWF 1Bh
 LoopX  MOVLW 10h
        MOVWF 1A
 LoopY  DECFSZ 1Ah,1
        GOTO  LoopY
        DECFSZ 1Bh,1
        GOTO LoopX
        INCF 11h,1  ;Increment the 1's file
        INCF 26h,1
        INCF 26h,1
        INCF 26h,1
        INCF 26h,1
        INCF 26h,1
        MOVLW 0A
        XORWF 11h,0
        BTFSS 03,2
        GOTO Dis1   ;File 11h is not 10!
        CLRF 11h    ;Zero the digits file
        CLRF 26h    ;Zero the pointer for 1st digit
        INCF 12h,1  ;Increment the 10's file
        INCF 27h,1
        INCF 27h,1
        INCF 27h,1
        INCF 27h,1
        INCF 27h,1
        MOVLW 0A
        XORWF 12h,0
        BTFSS 03,2
        GOTO Dis1   ;File 12h is not 10!
        CLRF 12h    ;Zero file 12h
        CLRF 27h    ;Zero the pointer for 2nd digit
        INCF 28h,1
        INCF 28h,1
        INCF 28h,1
        INCF 28h,1
        INCF 28h,1
        GOTO Dis1

    ;"Digit1" Moves 5 bytes of data from Table1
    ; to output to produce a digit
    ; It scans the Display ONCE
    ;  - the Main program repeats with 60h loops

 Digit1   BSF 05,1    ;Reset 4017
          NOP
          BCF 05,1
          MOVF 28h,0  ;Copy 28h to W
          MOVWF 23h   ;28h copied to 23h for temp incrementing
          MOVLW 05
          MOVWF 18h   ;5 cycles of Loading count file 18h
 Digit1A  MOVF 23h,0  ;Copy 23h to W
          CALL Table1
          MOVWF 06h   ;output the table value
          CALL Del
          INCF 23h,1
          DECFSZ 18h,1
          GOTO Digit1A
          RETURN

 Digit2   BSF 05,1   ;Reset 4017
          NOP
          BCF 05,1
          MOVF 27h,0 ;Copy 27h to W
          MOVWF 23h  ;27h copied to 23h for temp incrementing
          MOVLW 05
          MOVWF 18h  ;5 cycles of Loading count file 18h
 Digit2A  MOVF 23h,0  ;Copy 23h to W
          CALL Table1
          MOVWF 06h
          CALL Del
          INCF 23h,1
          DECFSZ 18h,1
          GOTO Digit2A
          RETURN

 Digit3   BSF 05,1    ;Reset 4017
          NOP
          BCF 05,1
          MOVF 26h,0  ;Copy 26h to W
          MOVWF 23h   ;26h copied to 23h for temp incrementing
          MOVLW 05
          MOVWF 18h   ;5 cycles of Loading count file 18h
 Digit3A  MOVF 23h,0   ;Copy 23h to W
          CALL Table1
          MOVWF 06h
          CALL Del
          INCF 23h,1
          DECFSZ 18h,1
          GOTO Digit3A
          RETURN

 Del    DECFSZ 1Bh,1
        GOTO Del
        MOVLW 00h
        MOVWF 06
        BCF 05,0    ;Clock the 4017 to the
        NOP         ; next output
        BSF 05,0
        RETURN

 Delay  MOVLW 04
        MOVWF 1B
 Delay1   DECFSZ 1Ah,1   ;Delay for main program for scanning
          GOTO Delay1
          DECFSZ 1B,1
          GOTO Delay1
          RETURN

   ;MAIN ROUTINE

 Main   CALL Dis
        BSF 03,5   ;Go to page1 for setting-up the ports
        MOVLW 1Ch  ;Put 1C into W
        MOVWF 05h  ;to make RA2,3,4 input
        CLRF 06h   ;Make all output
        BCF 03,5   ;Go to page0 for program
 Main1  MOVLW 60h  ;60h loop delay to show 1st digit
        MOVWF 1Ch
 Main2  CALL Digit1
        DECFSZ 1Ch,1
        GOTO Main2
        MOVLW 20h   ;Blanking after 1st digit is displayed
        MOVWF 1Ch
 Main3  CALL Delay
        DECFSZ 1Ch,1
        GOTO Main3
        MOVLW 60h   ;Delay to show 2nd digit
        MOVWF 1Ch
 Main4  CALL Digit2
        DECFSZ 1Ch,1
        GOTO Main4
        MOVLW 20h   ;Blanking after 2nd digit is displayed
        MOVWF 1Ch
 Main5  CALL Delay
        DECFSZ 1Ch,1
        GOTO Main5
        MOVLW 60h   ;Delay to show 3rd digit
        MOVWF 1Ch
 Main6  CALL Digit3
        DECFSZ 1Ch,1
        GOTO Main6
        MOVLW 70h   ;Blanking after 3rd digit is displayed
        MOVWF 1Ch
 Main7  CALL Delay
        DECFSZ 1Ch,1
        GOTO Main7
        BTFSS 05,2   ;Is button A pushed?
        GOTO Main1   ;No. Repeat routine
        GOTO Start   ;Yes

    END

The block of numbers below is the HEX file for Electro-1, for a PIC16F84. Copy and paste it into a text program such as TEXTPAD or NOTEPAD and call it: Electro1.hex

:100000008316023085008312B42882073E344134BF
:10001000413441343E340034103420347F340034D1
:100020002734493449344934313422344134493451
:10003000493436340C34143424347F3404347A3460
:1000400049344934493446343E34493449344934D6
:1000500026344034473448345034603436344934DC
:1000600049344934363432344934493449343E34DD
:10007000003408308C0005148D0B3C288E0B3C2876
:100080008C0B3C284328910192019301A601A70102
:10009000A8010510000000000000000000000000A2
:1000A0008518080008309B0010309A009A0B5628DB
:1000B0009B0B5428910AA60AA60AA60AA60AA60A13
:1000C0000A301106031D50289101A601920AA70AC1
:1000D000A70AA70AA70AA70A0A301206031D502872
:1000E0009201A701A80AA80AA80AA80AA80A5028E3
:1000F0008514000085102808A30005309800230807
:1001000005208600A520A30A980B7F2808008514E7
:10011000000085102708A30005309800230805205B
:100120008600A520A30A980B8E28080085140000DD
:1001300085102608A30005309800230805208600B6
:10014000A520A30A980B9D2808009B0BA52800302A
:100150008600051000000514080004309B009A0B6F
:10016000AF289B0BAF280800432083161C30850066
:100170008601831260309C0078209C0BBC282030C4
:100180009C00AD209C0BC12860309C0087209C0BFC
:10019000C62820309C00AD209C0BCB2860309C00F2
:1001A00096209C0BD02870309C00AD209C0BD5284D
:0601B000051DBA2800281D
:00000001FF

You will also need IC-Prog program to burn the chip
You should also go to the section ”Burning a Chip.” This section explains how to load the PIC chip with a .hex file.

Go to: Electrolytic Tester “stand-alone” version using a PIC12c508A (page3)


Colin Mitchell

Colin Mitchell

Expertise

electronics
writing
PIC-Chips

Social Media

instagramtwitterwebsite

Related Posts

TODO
Transistor Test
© 2021, All Rights Reserved.

Quick Links

Advertise with usAbout UsContact Us

Social Media