Professional Documents
Culture Documents
1. Introduction
1.1. Features
● Completely eliminates the problem of servo jitter
● Provides 18 servo outputs, occupying only 2 Arduino outputs: SDA and SCL
● A separate power supply for the servos
○ The ability to power Arduino with power of the servo drives
○ The maximum current for servos is 10 A
● 6 three-wire direct connectors with Arduino
● Power supply voltage range
○ 3.3 ... 5.5 V for a digital circuit
○ ≤12 V for a servo power chain
● Range of operating temperature: -40 ° C ... + 85 ° C
● Range of storage temperature: -65 ° C ... + 150 ° C
● Idle current in the control circuit: 15 mA
1.2. Application
● Controlling spider-robots
● Controlling a robotic arm
1.3. Description
Multiservo Shield is an expansion board for Arduino Uno, which allows you to manage 18
servos with just two I²C outputs of the Arduino interface. To control these servo drives, there
is a special controller on the board. This helps to eliminate any servo jitter, which is always
present when the servo is controlled directly from Arduino. The board has a separate power
supply for the servo and the control circuit.
Output Description
multiservo_minimal.ino
#include <Wire.h>
#include <Multiservo.h>
Multiservo servo;
void setup(void)
{
servo.attach(17);
}
void loop(void)
{
servo.write(90);
delay(1000);
}
MultiservoSweep.ino
#include <Wire.h>
#include <Multiservo.h>
Multiservo myservo;
void loop(void)
{
for (pos = 0; pos <= 180; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) // goes from 180 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
multiservo_warduino.ino
#include <Wire.h>
#include <Servo.h>
#include <Multiservo.h>
Servo arduino_servo;
Multiservo multi_servo;
void setup(void)
{
arduino_servo.attach(7);
multi_servo.attach(7);
}
void loop(void)
{
arduino_servo.write(90);
multi_servo.write(90);
delay(1000);
}
4. Detailed description
The result of this approach is the need to resend the command if the Multiservo Shield was
busy during the first transmission of the command. The number of attempts to send data can
be set in a special function of the library.
Multiservo serv;
serv.setSendAttempts(4);// Try to send the command 4 times
The board has 6 connectors to connect in the three-wire interface, and their control lines are
drawn directly from Arduino. These connectors are labeled as “Dn”. Each control terminal on
the “Dn” connector corresponds to the “n” output on the Arduino board (e.g., “D3” → “3”).
5. Power recommendations
Power can be identified by the light of the LEDs. The “μON” LED lights up when power is
applied to the digital section of the module, whereas “PON” lights up when power is applied
to the power section.
6. Specifications
Parameter Min Nom Max Units
Voltage supply of 6 V
the power section
Current 10 13 80 mA
consumed by the
digital part
Current 10 A
consumed by the
power section