Breadboard for "Motor - Directional"
Fritzing diagram: motor-directional.fzz
Run this example from the command line with:
node eg/motor-directional.js
const {Board, Motor} = require("johnny-five");
const board = new Board();
board.on("ready", () => {
/*
ArduMoto
Motor A
pwm: 3
dir: 12
Motor B
pwm: 11
dir: 13
AdaFruit Motor Shield
Motor A
pwm: ?
dir: ?
Motor B
pwm: ?
dir: ?
Bi-Directional Motors can be initialized by:
new five.Motor([ 3, 12 ]);
...is the same as...
new five.Motor({
pins: [ 3, 12 ]
});
...is the same as...
new five.Motor({
pins: {
pwm: 3,
dir: 12
}
});
*/
const motor = new Motor({
pins: {
pwm: 3,
dir: 12
}
});
board.repl.inject({
motor
});
motor.on("start", () => {
console.log(`start: ${Date.now()}`);
});
motor.on("stop", () => {
console.log(`automated stop on timer: ${Date.now()}`);
});
motor.on("forward", () => {
console.log(`forward: ${Date.now()}`);
// demonstrate switching to reverse after 5 seconds
board.wait(5000, () => motor.reverse(50));
});
motor.on("reverse", () => {
console.log(`reverse: ${Date.now()}`);
// demonstrate stopping after 5 seconds
board.wait(5000, motor.stop);
});
// set the motor going forward full speed
motor.forward(255);
});