Advance Your Skills Professionally! Advance Your Skills Professionally! 'ARM Microcontrollers: Programming and Circuit Building Volume 1', accompanied by a beginner-friendly advanced kit, is the ideal starting point for aspiring professionals. Esteemed in universities and high schools, this guide bypasses the complexities of Arduino, offering a more fundamental, bare-metal approach to learning. It not only simplifies the process but also sets you on a path to a more professional level in microcontroller programming. Perfect for students and hobbyists, this book is your gateway to efficiently prototyping and transitioning projects into production. Start with the fundamentals and quickly move to creating professional-level applications!
Atmega324P
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.