Support » Pololu Zumo Shield for Arduino User’s Guide » 8. Controlling a servo »
8.b. Controlling a servo with an Arduino Leonardo or A-Star 32U4 Prime
It is possible to modify the Servo library that comes with the Arduino IDE to use Timer 3 instead of Timer 1 on the Arduino Leonardo or A-Star 32U4 Prime. The modified Servo library does not interfere with ZumoMotors, making it possible to simultaneously control servos and the motors.
Warning: The modifications described here will affect any sketch for the Arduino Leonardo or A-Star that uses the Servo library.
- First, you will need to locate the Arduino IDE’s Servo library, and find the file inside it named ServoTimers.h. For the 1.6.x versions of the IDE, this file can be found in libraries/Servo/src/avr/ServoTimers.h. If you are using Mac OS X, you will need to right-click on the Arduino IDE icon and select “Show Package Contents” to see the files inside.
- Open ServoTimers.h in a text editor.
- Locate the following lines of code in ServoTimers.h:
#elif defined(__AVR_ATmega32U4__) #define _useTimer1 typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t ;
- The lower two lines of code specify that the library should use Timer 1. To use Timer 3 instead, just change
_useTimer1
to_useTimer3
and_timer1
to_timer3
. - Save the file.
The Arduino IDE will automatically incorporate your modifications to the Servo library. The next time you compile a sketch for the Arduino Leonardo or A-Star that uses the Servo library, it will use Timer 3 instead of Timer 1.