Monday, October 20, 2008

8-Channel ADC Project with ATmega32







Hi friends,
here is a small project of Analog to Digital Converter using ATmega32 which is having on-chip 8-channel ADC.
The circuit also consists of an intelligent 16x2 LCD for displaying the value of the voltage applied at each channel. There is also a push-button to scroll throgh the different channels. The schematic is as shown in the figure:


When powered on, the LCD displays"ADC Testing.." on the first line and the value of the voltage applied at the channel0 on the second line. When the push-button is pressed, the second line displays the value of channel1. Like-wise, all the channels can be checked one-by-one by pressing the push-button. The channel count will roll back to channel0 after going to channel7.

The displays shown in the pictures on top show values at channel0 and channel1. Here a AA battery was connected to channel0 and the channel1 was connected with the +5v supply.
A 9-pin connector is used for ADC, 8 ADC channel pins and 1 ground pin. (the values displayed on LCD will fluctuate for a channel if nothing is connected to that channel)

The software is created in C using ImageCraft ICCAVR compiler.
The Schematic and code for this project can be downloaded here:

Download Schematic and Code
Download HEX file

Thanks!!
-----------
ccd@dharmanitech.com

5 comments:

Avinash Gupta said...

Hi,
Nice projects!
Why don't you use AVR-GCC its free, much popular and fantastic?
It integrates tightly with Avr Studio (by Atmel -FREE!) so no need to worry about makefiles or command line. Every thing can be done in GUI with AVR studio.

CC Dharmani said...

Hi Avinash,
since I had started with ICCAVR so got habit of it!! It's 'Application Generator' was great for me as I was starting on AVRs. I was bit confused about creating the makefiles in AVR-GCC, so i had dropped it that time.

But yes, I'm now trying to use AVR-GCC as it's free and good support is also available on net.

Thanks for the comment!

Sujit said...

Mind blowing...

Just the thing I needed.
Thanks for saving my day.

sujay said...

mr. dharmani, i am having trouble interfacing my atmega32 with the PC(using hyperterminal) so that the value read by the ADC is given on the screen....could you please help me out?....is it also possible that I send the value to my computer and the computer processes the value,instead of displaying it on hyperterminal

CC Dharmani said...

Hi sujay,
what kind of problem are you facing? If nothing is getting displayed, check out the RS232 connector connections. Also, while starting hyper terminal keep the 'flow control' as 'none'. If some garbage is getting displayed, check out that the PC baud-rate is matching with that of the microcontroller.

You can process the data inside PC rather than displaying it on hyper terminal, but for that you need to write a program running in PC which is having access of the serial port. Then you can process the received data using that program.