USB to Serial Converter
18.432 MHz Crystal Oscillator 18pf 30ppm
22 pF Multilayer Ceramic Capacitor
16 MHz Crystal Oscillator 20 pF Through Hole
4x4 Keypad with Adhesive Backing
Quad Buffer Line Driver (Through Hole)
USB AVR Programmer
SPDT Slide Switch 3 pin 30V
Handheld Auto Ranging Digital Multimeter
What does multiple channels mean? If you have more than one analog voltage source,
more than one sensor, for instance, you can read all of them as long as the number
of sources is fewer than the number of ADC pins you have on your microcontroller.
With the Atmega32, there are 8 ADC pins. The only thing to keep in mind when programming
the ADC to read multiple channels is that only one channel can be used in the conversion
at a time.
If we had two sensors, and we are using channel (pin) 3 and 4 to read each sensor,
we would first need to set the channel for 3 and then start a conversion. After
the conversion is finished and the number is captured, then the channel can be switch
to 4 and that number can be captures. These processes of getting the ADC results
for each channel can be done in a loop and displayed on the LCD.
The ADC is initialized as we did with the accelerometer readings and in this case,
we are connecting the X axis of the accelerometer to channel 0 and the Y axis to
channel 1. There is not preinitialization of the ADC channel before we enable the
ADC because we are starting with channel 0 which is the default channel.
In the interrupt service routine (the routine starting with ISR), you will see a
few new statements, such as switch and case. This is a very nice way to make a selection
according to a value contained by a variable. It's like making a restaurant menu
selection. The variable that is contained within parentheses after the word switch
is the restaurant customer's selection and the various cases listed below are all
the menu selections.