The Actobotics Dual Motor Controller (DMC) can control 1 or 2 motors at 4.8–16 volts and deliver 20 amps per motor continuously and up to 30 amps per motor momentarily (peak). There are a number of different ways you could control the DMC, for example: from a RC transmitter & receiver, or a microcontroller or microcomputer, or just a potentiometer.
In this instructable I want to walk through the various ways you can hook up and use the Actobotics Dual Motor Controller. The DMC has 4 modes. The mode is determined by the presence of pin jumpers on the mode pins near the center of the board. The pin jumper need to be in place when the board is powered up for it to know what mode to be in.
Step 1: Mode 1: Digital Speed Control Mode
In this mode the DMC will read a PWM (pulse width modulation) signal that it listens for on the IN1 S and IN2 S pins. It uses the width of the pulses to determine the speed and direction of each motor (IN1 S for Motor 1, IN2 S for Motor 2). The DMC it pretty high resolution, it can detect changes to the pulse width little as 1/3rd of a microsecond. Of course if you are using a source which, for example, only changes 2 microseconds at a time, that will be your limiting factor in resolution.
From a RC Transmitter/Receiver
Simply plug the receiver into the DMC as shown in the diagram and you are good to go. The PWM range the DMC is set to work on should work well with most off-the-shelf transmitters/receivers.
From an Arduino
One source of a PWM signal is a microcontroller such as an Arduino Uno. Below is some example code. Essentially you just need to control it as if you were controlling a servo. One thing I always like to do when controlling a servo with an Arduino is to define the PWM range when attaching the servo object (see lines 23 and 24 below), and this is no exception.
Step 2: Mode 2: Analog Speed Control Mode
In this mode the DMC will read an analog voltage on the P1 P and P2 P pins. The analog voltage need to be between 0 and 3.3v. Much like in digital speed control mode, this spectrum determines the speed and direction of the motors. Zero volts will turn the motor at full speed in one direction, 1.65v will stop the motor and 3.3v will drive it at full speed in the other direction. You can either supply an analog voltage from an external source or use a pot (variable potentiometer) to act as a voltage divider, which will take voltage from the DMC itself, reduce it and pass it back in to be read.
Step 3: Mode 3: Split Mode
In this mode Motor 1 is in Position Control Mode (Mode 4), and Motor 2 is in Digital Speed Control Mode (Mode 1).
Step 4: Mode 4: Position Control Mode (Servo Mode)
Position Control Mode will make the motors act like servos. That's right you can use this to make your own super powerful large servo! Just like in a normal servo you would need to have a potentiometer which is physically linked to the output shaft of the motor. The DMC uses this as a reference to know where the motor is at any given time. And just like a servo it will take a PWM signal to determine where it needs to be. If where it is is not where it needs to be, it will drive the motor until it is.
It is worth noting that before you physically link the pot to the motor, you need to make sure it will be turning in the right direction. There are different ways you could suss this out but I suggest holding it up near where you would mount it in the same orientation and power on the system. When the motor start turning, manually turn the pot by hand in the direction the motor would be turning it. If you can bring the motor to a stop by doing this you've tricked it into thinking it has found the position it is looking for and that means you are connected correctly. If the motor does not stop then you can reverse the polarity of the motor wires or you can reverse the polarity of the + and - wires that connect to the pot. Either way will get you going in the right direction.