16-channel PWM / Servo Controller

HobbyTronics 16-channel PWM / Servo Controller
Click to enlarge
Price: £7.92
(£6.60 + VAT)
Stock Quantity: 12
Model: PWMSERVO
Manufacturer: HobbyTronics
Average Rating: 5 out of 5 Stars!

Quantity Discount:
Order Quantity Price Per Item
10 £8.40
(£7.00 + VAT)
25 £7.20
(£6.00 + VAT)
HobbyTronics

16-channel PWM / Servo Controller

This board allows you to control 16 PWM or Servo channels simultaneously using a simple I2C interface. We have created an easy to use Arduino library which makes it easy to control the 16 servo outputs in a similar way to the standard Arduino Servo Library. The library also includes simple commands for controlling PWM outputs. Compatible with a range of platforms including Arduino, Raspberry Pi and Teensy.

Each pin can either be a servo output or a PWM output so you can mix devices using just one board.

Pulse frequency can be set anywhere between 16Hz and 1500Hz (max 400Hz for servos), making it ideal for motor speed control, LED brightness control and also for generating accurate Servo pulses.

Comes supplied with two strips of 36-way male header pins (unsoldered) for you to make up the pin connections if required. You can also use triple row right angle headers which allow the boards to be stacked.

An Output Enable (OE) pin (active low) allows all outputs to be quickly enabled/disabled. This pin in pulled low on the board so outputs are enabled by default.

Main Features

  • 16 PWM / Servo channels
  • PWM frequency control from 16Hz up to 1500Hz
  • On-board calibrated 16MHz clock for accurate Servo pulse generation
  • 6-bit configurable I2C address allows up to 62 boards on the same I2C bus
  • Operating power supply voltage range of 3.3V to 5.5V
  • 1 MHz Fast-mode Plus compatible I2C-bus interface
  • 12-bit resolution pulse length
  • Each channel has 25 mA current sink capability at 5V or 10 mA source capability at 5V.
  • Board size: 34mm x 32mm (1.35in x 1.25in)

For Controlling Servos

The PCA9685 has an on-board 25MHz clock source, but we found this to be not very accurate (15% error from the stated 25MHz). This doesn't matter when controlling the brightness of an LED, but when you want to generate precise Servo Pulses it is not good enough. To remedy this we added our own calibrated 16MHz clock source on the board which makes sure that the Servo pulses are accurate.

One single board can control 16 servos, and with the ability to define the I2C address of each board you can connect up to 62 boards to a single I2C bus. This means you can control up to 992 servos - more than enough for any robotics project. The Servo frequency is also fully configurable, from the standard frequency of 50Hz right up to 400Hz. This makes the board great for UAV's which require a higher frequency servo output.

We have added a separate power supply input pin for powering the servos. This allows you to supply 5V for the servos yet run the board at a different voltage (i.e 3.3V).

We have an Arduino library for the board which makes it easy to control the 16 servo outputs in a similar way to the standard Arduino Servo Library. The code should be easily transferable to other programming languages.

We also have an example Python program for the Raspberry Pi showing how to use the board to control servos.

Servo Types

There are many different servo's available, and some have different timing requirements to others.

The standard timing for a servo pulse is from 1ms to 2ms which tends to give about 100 degrees of movement. Many servo's can however give a full 180 degrees and require servo pulses from 0.6ms to 2.4ms to produce this (this is the standard timing of the Arduino Servo library). There are other servos that require 0.8ms to 2.2ms pulse lengths.

We have accomodated all these servo types in the library by specifying the type of servo in the call to the servo() function. (See the example code for more details.)

The servo types are defined as

  • 0 - Stardard Servo
  • 1- Extended 0.6ms to 2.4ms
  • 2- Extended 0.8ms to 2.2ms

Using PWM for controlling LED's, Motors

Because of its high PWM frequency and 12-bit resolution, this board is also great for controlling motor speed, LED brightness etc. Again, the Arduino library we have created for this board allows this to be done easily with very few commands. Example sketches are included with the library.

Using Servo outputs and PWM outputs on the same board

The board can be used to provide both Servo outputs and PWM outputs, however there is one condition. The frequency setting cannot be changed for individual output pins. So, if you set the frequency to say 50Hz for standard Servo frequencies, then that is also the frequency for the PWM outputs.

Documents

PCA 9685 Datasheet
Arduino Library and Example programs
Raspberry Pi Python Servo example
Board Schematic

 

Write Review
Your Name:


Your Review: Note: HTML is not translated!

Rating: Bad            Good

Enter the code in the box below:

16-channel PWM / Servo Controller
Click to enlarge
16-channel PWM / Servo Controller
Click to enlarge
16-channel PWM / Servo Controller
Click to enlarge
16-channel PWM / Servo Controller
Click to enlarge
16-channel PWM / Servo Controller
Click to enlarge
16-channel PWM / Servo Controller
Click to enlarge
16-channel PWM / Servo Controller
Click to enlarge
16-channel PWM / Servo Controller
$ 7.92 New In Stock
Shopping Cart
0 items
 
DELIVERY/PAYMENT

Free Delivery Orders over £50

UK - £2.40 orders under £50
Airmail from £2.95 (+VAT)
More Details...

 
Brands
 
 Check out our videos
Follow us on:
acebook