3.2. User interface
The Zumo 32U4 has eight indicator LEDs.
- A yellow user LED is connected to Arduino digital pin 13, or PC7. You can drive this pin high in a user program to turn this LED on. The Zumo’s A-Star 32U4 Bootloader fades this LED on and off while it is waiting for a sketch to be loaded.
- A green user LED is connected to PD5 and lights when the pin is driven low. While the board is running the A-Star 32U4 Bootloader or a program compiled in the Arduino environment, it will flash this LED when it is transmitting data via the USB connection.
- A red user LED is connected to Arduino pin 17, or PB0, and lights when the pin is driven low. While the board is running the A-Star 32U4 Bootloader or a program compiled in the Arduino environment, it will flash this LED when it is receiving data via the USB connection.
The Zumo32U4 library contains functions that make it easier to control the three user LEDs (see Section 6). All three user LED control lines are also LCD data lines, so you will see them flicker when you update the LCD. The green and red user LEDs also share I/O lines with pushbuttons (see below).
- Two red LEDs on the left and right edges of the board indicate when the robot’s infrared emitters are active on the corresponding side.
- Two blue power LEDs under the rear corners of the main board indicate when the robot is receiving power from batteries (the power switch must be turned on). The left LED is connected to the reverse-protected and switched battery voltage (VBAT), while the right LED is connected to the output of the main board’s 5 V regulator.
The left blue LED will become noticeably dimmer as the total battery voltage drops below about 3 V, and this can serve as an indication that a set of alkaline batteries has reached the end of its useful life. However, rechargeable batteries can be damaged by overdischarge, so we do not recommend allowing a set of four NiMH cells to discharge to this point. (A voltage divider is connected to analog pin 1 and can be used to monitor the battery voltage; see Section 3.8 for details.)
- A green power LED under the center rear edge of the main board indicates when the USB bus voltage (VBUS) is present.
The Zumo 32U4 has four pushbuttons: a reset button on the right edge and three user pushbuttons located along the rear edge of the main board. The user pushbuttons, labeled A, B, and C, are on Arduino pin 14 (PB3), PD5, and Arduino pin 17 (PB0), respectively. Pressing one of these buttons pulls the associated I/O pin to ground through a resistor.
The three buttons’ I/O lines are also used for other purposes: pin 14 is MISO on the SPI interface, PD5 and pin 17 control the green and red user LEDs, and all three pins are LCD data lines. Although these uses require the pins to be driven by the AVR (or SPI slave devices in the case of MISO), resistors in the button circuits ensure that the Zumo will not be damaged even if the corresponding buttons are pressed at the same time, nor will SPI or LCD communications be disrupted. The functions in the Zumo32U4 library take care of configuring the pins, reading and debouncing the buttons, and restoring the pins to their original states.
The Zumo 32U4 has a 2×7 header where you can connect the included 8×2 character LCD (or any other LCD with the common HD44780 parallel interface (109k pdf)). You can adjust the LCD contrast with the potentiometer to the left of the LCD connector. We recommend using a 2 mm slotted screwdriver to adjust the contrast.
The Zumo32U4 library provides functions to display data on a connected LCD. It is designed to gracefully handle alternate use of the LCD data lines by only changing pin states when needed for an LCD command, after which it will restore them to their previous states. This allows the LCD data lines to be used for other functions (such as pushbutton inputs and LED drivers).
The buzzer on the Zumo 32U4 can be used to generate simple sounds and music. By default, it is connected to digital pin 6 (which also serves as OC4D, a hardware PWM output from the AVR’s 10-bit Timer4). If you alternate between driving the buzzer pin high and low at a given frequency, the buzzer will produce sound at that frequency. You can play notes and music with the buzzer using functions in the Zumo32U4Buzzer library. If you want to use pin 6 for an alternate purpose, you can disconnect the buzzer circuit by cutting the surface-mount jumper next to the buzzer.