Arduino is easy to use and can be learned with very little effort. Hence, the development/prototyping time using Arduino is considerably less. Arduino is based on WinAVR, a gcc compiler for AVR. You can create an Arduino project in Atmel Studio and even simulate it.
At present Arduino uses ATmega328, ATmega168, ATmega1280, ATmega2560 and ATmega8 boards/controllers. However, many users/developers are using ATmega32 controller in their projects now and are more familiar with this controller. But it is not seen in the list of Arduino boards in Arduino IDE.
ATmega32 has 32 general-purpose input/output (GPIO) pins, which is more than 20 used in ATmega328. It is disappointing that some boards have more I/O pins, like ATmega1280 and ATmega 2560, but are expensive.
In this project, we use ATmega32 as a microcontroller (MCU) in Arduino board and utilise almost all the 32 GPIO pins available as shown in Fig.1. Author’s prototype is shown in Fig. 2.
Pinout of ATmega32 as used in Arduino board
- Thirty two digital pins (D0 to D31)
- Eight analogue-to-digital pins (A0 to A7); these can be used as digital pins also
- Four PWM pins
- Other pin details in Fig. 1
Circuit and working
LCD interface: Normally, Arduino boards do not have an LCD on board. However, for development work it is very essential. Provision of an onboard LCD is very easy because no extra wiring or component is required; only data pins are to be connected.
Push-to-on switches: Four push-to-on switches are provided onboard for testing purpose; no extra wiring is required, hence testing is fast and easy.
LEDs: Four LEDs are provided onboard for easy and fast testing.
Buzzer: This is provided to test sketches using tones in Arduino.
Power supply: Vcc and ground pin headers (four pins each) are provided for extending the supply voltage and ground pins while testing.
Other provisions: All other provisions like digital pins and analogue pins are available as on any other Arduino board.
The detailed circuit diagram of Arduino for ATmega32 is shown in Fig. 3.