I would like to control 16 motors with a servo shield
The code in loop is called repeatedly. Thus it does this:


Go from SERVOMIN to SERVOMAX very rapidly (I measured 72 ms)
Pause half a second
Repeat the above


To make it pause at SERVOMAX you need to either not repeat the loop, or put it all in setup, eg.

#include &lt;Adafruit_PWMServoDriver.h&gt;
#include &lt;Wire.h&gt;

Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();

#define SERVOMIN  150 // this is the 'minimum' pulse length count (out of 4096)
#define SERVOMAX  600 // this is the 'maximum' pulse length count (out of 4096)
void setup()
{
  pwm.begin();
  pwm.setPWMFreq(60);  // Analog servos run at ~60 Hz updates
  for (uint16_t pulselen = SERVOMIN; pulselen &lt; SERVOMAX; pulselen++)
  {
    pwm.setPWM(0, 0, pulselen);
  }

}

void loop()
{
}