servo-pca9685
Version:
Library to run the PCA9685 PWM driver.
40 lines (32 loc) • 1.45 kB
JavaScript
// Any copyright is dedicated to the Public Domain.
// http://creativecommons.org/publicdomain/zero/1.0/
/*********************************************
This servo module demo turns the servo around
1/10 of its full rotation every 500ms, then
resets it after 10 turns, reading out position
to the console at each movement.
*********************************************/
var tessel = require('tessel');
var servolib = require('../'); // Replace '../' with 'servo-pca9685' in your own code
var servo = servolib.use(tessel.port['A']);
var servo1 = 1; // We have a servo plugged in at position 1
servo.on('ready', function () {
var position = 0; // Target position of the servo between 0 (min) and 1 (max).
// Set the minimum and maximum duty cycle for servo 1.
// If the servo doesn't move to its full extent or stalls out
// and gets hot, try tuning these values (0.05 and 0.12).
// Moving them towards each other = less movement range
// Moving them apart = more range, more likely to stall and burn out
servo.configure(servo1, 0.05, 0.12, function () {
setInterval(function () {
console.log('Position (in range 0-1):', position);
// Set servo #1 to position pos.
servo.move(servo1, position);
// Increment by 10% (~18 deg for a normal servo)
position += 0.1;
if (position > 1) {
position = 0; // Reset servo position
}
}, 500); // Every 500 milliseconds
});
});