SALE 5% OFF
Description:
Want to make a hexapod walker? Maybe you’re making a piece of art with tons of moving parts, or you need to drive a ton of LEDs with precise PWM output. Your microcontroller has a limited number of PWM outputs, and you find yourself running out! Not with the Adafruit 16-Channel 12-bit PWM/Servo Driver – I2C interface. With this pwm and servo driver breakout, you can control 16 free-running PWM outputs with just two pins! Need to run more than 16 PWM outputs? No problem. Chain together up to 62 of these beauties for up to an outstanding 992 PWM outputs.
Features:
Dimensions (no headers or terminal block) 2.5″ x 1″ x 0.1″ (62.5mm x 25.4mm x 3mm)
Weight (no headers or terminal block): 5.5grams
Weight (with 3×4 headers and amp; terminal block): 9grams
This board/chip uses I2C 7-bit address between 0x60-0x80, selectable with jumpers
Terminal block for power input (or you can use the 0.1″ breakouts on the side)
Reverse polarity protection on the terminal block input
Green power-good LED
3 pin connectors in groups of 4 so you can plug in 16 servos at once (Servo plugs are slightly wider than 0.1″ so you can only stack 4 next to each other on 0.1″ header
“Chain-able” design
A spot to place a big capacitor on the V+ line (in case you need it)
220 ohm series resistors on all the output lines to protect them, and to make driving LEDs trivial
Solder jumpers for the 6 address select pins
i2c-controlled PWM driver with a built in clock. Unlike the TLC5940 family, you do not need to continuously send it signal tying up your microcontroller, its completely free running!
It is 5V compliant, which means you can control it from a 3.3V microcontroller and still safely drive up to 6V outputs (this is good for when you want to control white or blue LEDs with 3.4+ forward voltages)
6 address select pins so you can wire up to 62 of these on a single i2c bus, a total of 992 outputs – that’s a lot of servos or LEDs
Adjustable frequency PWM up to about 1.6 KHz
12-bit resolution for each output – for servos, that means about 4us resolution at 60Hz update rate
Configurable push-pull or open-drain output
Output enable pin to quickly disable all the outputs
Instructions for use:
(1)Drive board connected to Arduino:
The PWM driver board uses the I2C method, so only four lines can be connected to the Arduino device:
“Classic” Arduino pin mode:
+ 5v – and gt; VCC
GND – and gt; GND
Analog 4 – and gt; SDA
Analog 5 – and gt; SCL
Old Mega pin way:
+ 5v – and gt; VCC
GND – and gt; GND
Digital 20 – and gt; SDA
Digital 21 – and gt; SCL
R3 and later Arduino pin method (Uno, Mega and amp;
Leonardo):
(These boards have dedicated SDA and SCL pins)
+ 5v – and gt; VCC
GND – and gt; GND
SDA – and gt; SDA
SCL – and gt; SCL
VCC pin is only for the chip power supply, if you want to connect the servo or LED lights, use the V + pin power supply, V + pin supports 3.3 ~ 6V power supply (chip safe voltage 5V). It is recommended to connect the external power supply via the power supply terminal.
(2) power supply part:
Most of the servo design voltage is 5 ~ 6V, especially in a number of steering gear at the same time running, with the need for high-power power supply. If you are directly using the Arduino 5V pin to power the servo directly, there are some unpredictable problems, so we recommend that you have a suitable external power supply for the drive board.
(3) Connect the servo:
Most servos are connected using standard 3-wire female plugs, as long as the corresponding pin into the driver board on it. (Ground wire is generally black or brown, the signal line is generally yellow or white)
(4) for the driver board assigned address:
Each drive board of the cascade needs to have a unique access address. The initial I2C address of each driver board is 0 × 40, you can modify the upper right corner of the jumper I2C address. Connect a jumper with solder to indicate a binary number “1”.
Board 0: Address = 0x40
Offset = binary 00000 (default)
Board 1: Address = 0x41 Offset = binary 00001 (as shown above, connected to A0)
Board 2: Address = 0x42 Offset = binary 00010 (connect to A1)
Board 3: Address = 0x43 Offset = binary 00011 (connect A0 and A1)
Board 4: Address = 0x44 Offset = binary 00100 (connect to A2)
And so on. . .
Code example:
#include and lt;Wire.h and gt;
#include
and lt;Adafruit_PWMServoDriver.h and gt;
Adafruit_PWMServoDriver pwm1 =
Adafruit_PWMServoDriver (0 × 40);
Adafruit_PWMServoDriver pwm2 =
Adafruit_PWMServoDriver (0x41);
Void setup () {
Serial.begin (9600);
Serial.println ( “16 channel
PWM test! “);
Pwm1.begin ();
Pwm1.setPWMFreq (1600); //
This is the maximum PWM frequency
Pwm2.begin ();
Pwm2.setPWMFreq (1600); //
This is the maximum PWM frequency