PocketMagic

PocketMagic

Where Technology meets magic


Android
45 Posts
BlackBerry
3 Posts
Electronics
68 Posts
Hardware
120 Posts
High Voltage
49 Posts
iPhone
4 Posts
Linux
2 Posts
Nuclear
20 Posts
Optics
11 Posts
Photography
7 Posts
Photoshop
3 Posts
Research
19 Posts
Reviews
18 Posts
Robotics
8 Posts
Security
7 Posts
Software
72 Posts
Symbian
2 Posts
Tubes
18 Posts
Windows
3 Posts
Windows Mobile
11 Posts

Top Articles!       See PocketMagic on Facebook


uRADMonitor - Online Radiation monitoring station | 14764 Views | Rate 70.64
uRADMonitor - Online Radiation monitoring station
NMEA GPS Library for AVR Microcontrollers | 4745 Views | Rate 57.87
NMEA GPS Library for AVR Microcontrollers
Bluetooth and iOS - Use Bluetooth in your iPhone apps | 17560 Views | Rate 57.39
Bluetooth and iOS - Use Bluetooth in your iPhone apps
Building a robot – Part 2 | 4488 Views | Rate 44.88
Building a robot – Part 2
Programmatically Injecting Events on Android - Part 2 | 4802 Views | Rate 44.46
Programmatically Injecting Events on Android - Part 2
Simple Switched power Supplies | 15745 Views | Rate 41.22
Simple Switched power Supplies
Atmega8 and Nokia 5110 LCD  | 1452 Views | Rate 36.3
Atmega8 and Nokia 5110 LCD
Capacitor Discharge Microspot Welder / Cutter | 11095 Views | Rate 36.02
Capacitor Discharge Microspot Welder / Cutter

 
  

Multitester using ATMega8 and HD44780 LCD


By Radu Motisan Posted on December 12th, 2010 , 1730 Views (Rate 1.95)



  




Here is my implementation of the multimeter designed by Markus F. It's a neat tool, that can be used to detect (good for unknown components or those that have the labels erased) and measure:
- Transistors: Bipolar/Mosfet
- Diodes and Double Diodes
- Resistors
- Capacitors: between 0.2nF to 7300μF
- Triacs
- Thyristors

The Multimeter board

To build one you will need:
- an Atmega8 microcontroller
- a 2x16 HD44780 LCD
- a 5V regulator
- some resistors
The multimeter schematic:

The PCB Layout (and complete project details) is also available here.
I designed my multimeter on a test board, and put everything together in a nice metal box:

I connected a power switch, and a reset button (the pulls the RESET pin to GND), and a 3 PIN connector for the components to be measured.

The Software

To program the Microcontroller (write the software), I use a parallel programmer. It uses the LPT1 port (printer port), and a 5 wire cable. The connection is as follows:

I use 460Ohm resistors. My connector is a 5pins array in the following sequence [Ground, Reset, SCK,MISO,MOSI].
For this programmer, in Ponyprog you can select Parallel/LPT1/AVR ISP I/O:

The code is available here (and can be compiled with AVR Studio), or ready compiled here.





To program the Atmega8, connect it to the parallel programmer, open Ponyprog, go to File->Open Program (FLASH) File and select the .hex (TransistorTestNew_UART_not_inverted.hex), then go to File->Open Data (EEPROM) File and select the .epp file (TransistorTestNew_English.eep). Next press Command->Write all and make sure the software is successfully written to your Atmega8.

Alternatively you can use avrdude instead of Ponyprog: avrdude -p atmega8 -c stk200 -U flash:w:TransistorTestNew_UART_not_inverted.hex:i

The code is configured to work with a stock 1MHz Atmega8, so make sure the fuses are not changed (or if they are revert them to the default values). No quartz crystal is required. Here are the settings as seen in Ponyprog:

The multimeter is ready to go. If there is no component connected, you will see "No, unknown or damaged part". If you connect a component, it will detect it (transistor, capacitor, etc) and display the most important parameters.






  

More on PocketMagic:

Programmatically Injecting Events on Android - Part 1 | 9907 Views | Rate 25.8
Programmatically Injecting Events on Android - Part 1
Victoreen CDV-717 Remote Gamma Survey dosimeter | 77 Views | Rate 25.67
Victoreen CDV-717 Remote Gamma Survey dosimeter
Atmega8 and enc28J60 for ethernet support | 7070 Views | Rate 24.21
Atmega8 and enc28J60 for ethernet support
How to set the AVR Fusebits | 1631 Views | Rate 23.99
How to set the AVR Fusebits
ATMega128 and HD44780 LCD using 3 Wires with the 74HC164 | 1990 Views | Rate 23.14
ATMega128 and HD44780 LCD using 3 Wires with the 74HC164
Tube: 1B40 | 229 Views | Rate 22.9
Tube: 1B40

2 Responses to “Multitester using ATMega8 and HD44780 LCD”

  1. 1
    Multitester using ATMega8 and HD44780 LCD « PocketMagic | Electronics Blog:

    [...] designed my multimeter on a test board, and put everything together … Continued here: Multitester using ATMega8 and HD44780 LCD « PocketMagic This entry was posted in Uncategorized and tagged everything-together, layout, lcd, multimeter, [...]

  2. 2
    kasamiko:

    Hi,

    How can I compile the source code? I tried compiling in AVR Studio but got lot of errors..

    ../main.c: In function ‘main’:
    ../main.c:454: error: ‘Bat’ undeclared (first use in this function)
    ../main.c:454: error: (Each undeclared identifier is reported only once
    ../main.c:454: error: for each function it appears in.)
    ../main.c:456: error: ‘BatEmpty’ undeclared (first use in this function)
    ../main.c:461: error: ‘BatWeak’ undeclared (first use in this function)
    ../main.c:465: error: ‘TestRunning’ undeclared (first use in this function)
    ../main.c:500: error: ‘Diode’ undeclared (first use in this function)
    ../main.c:503: error: ‘NextK’ undeclared (first use in this function)
    ../main.c:514: error: ‘DualDiode’ undeclared (first use in this function)
    ../main.c:519: error: ‘K1′ undeclared (first use in this function)
    ../main.c:521: error: ‘K2′ undeclared (first use in this function)
    ../main.c:529: error: ‘K’ undeclared (first use in this function)
    ../main.c:538: error: ‘TwoDiodes’ undeclared (first use in this function)
    ../main.c:540: error: ‘Antiparallel’ undeclared (first use in this function)
    ../main.c:559: error: ‘InSeries’ undeclared (first use in this function)
    ../main.c:674: error: ‘Thyristor’ undeclared (first use in this function)
    ../main.c:676: error: ‘GAK’ undeclared (first use in this function)
    ../main.c:682: error: ‘Triac’ undeclared (first use in this function)
    ../main.c:693: error: ‘Resistor’ undeclared (first use in this function)
    ../main.c:733: error: ‘Capacitor’ undeclared (first use in this function)
    ../main.c:754: error: ‘TestFailed1′ undeclared (first use in this function)
    ../main.c:756: error: ‘TestFailed2′ undeclared (first use in this function)
    ../main.c:757: error: ‘Bauteil’ undeclared (first use in this function)
    ../main.c:760: error: ‘Unknown’ undeclared (first use in this function)
    ../main.c:762: error: ‘OrBroken’ undeclared (first use in this function)
    make: *** [main.o] Error 1
    Build failed with 25 errors and 0 warnings…

Thank you for commenting. Your comment won't show until approved, which can take some time.

Please copy the string GB0Kvq to the field below: