Skip to content

Fabricated a multimeter that can be used and tested

Notifications You must be signed in to change notification settings

ericlim0329/AC-Multimeter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

AC-Multimeter

Fabricated a multimeter that can be used and tested This project was a collaberation between mysef and another student

-Peter van den Doel

-Eric Lim

Link to video demo https://drive.google.com/file/d/16ZK31mSzWK8TsJp4SmsNh_zpA29mmwEY/view?usp=sharing The project was demonstrated using a GEN2BB function generator and a BB2SCOPE oscilloscope (referred to as "Fraga Board" in the video) They are controlled and interacted with using a python script

THE PROJECT

An AC multimeter made with an ATMEL AT89LP51RC2 microcontroller and an MCP3008 analog to digital converter, programmed in C. Values will be displayed on an LCD and can be chosen through a command line interface, the program used for this is a serial console called PuTTY

The project will take in 2 sine waves of the same frequency and can return their peak values, rms values, phase difference in degrees, frequency, and period based on user inputs to a command line interface.

PEAK VOLTAGE

The peak and RMS voltage of the signals is measured by taking the maximum of 200 successive measurements with an MCP3008 analog to digital converter which data is retrieved from using 8 bit SPI.

FREQUENCY

The period of a signal is measured by detecting a zero cross with hysteresis, waiting for the signal to cross 0V and then 0.2V ensure the signal will not cross 0 again due to noise, and starting the AT81's timer to wait until the signal crosses 0V again. Doubling the measured time will determine the period which can be used to find the frequency.

PHASE SHIFT

Phase shift is determined by waiting for the lagging signal (fed into ADC input 4 of the MCP3008) to cross 0V with hysteresis, then waiting for the second signal to cross 0V, and calculating phase shift based on the ratio of the time difference to the period of the signals. There was a chronic tendency to underestimate the phase shift so 5 degrees is added to all measurements to improve accuracy.

COMMAND LINE INTERFACE

If input to the serial terminal (PuTTY) is modified, getchar() is used to read the input characters and place them into a string. If the string contains a newline or break (\n or \r), the string is compared with the strings ("RMS1","RMS2","peak1","peak2","period","frequency","phase"). If the user enters these keywords and presses enter, the desired measurement will be displayed on an LCD screen.

About

Fabricated a multimeter that can be used and tested

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages